Software for UK independent gyms
You didn’t open a gym to chase Direct Debits.
You’re the owner of a 24/7 independent gym in a market town, or the principal of a women-only functional-fitness studio, or the operations manager at a CrossFit box that’s outgrown TeamUp but can’t justify Wodify, or the husband-and-wife team behind a martial arts academy with three hundred members and a roster of REPs-registered coaches. Six on a Tuesday morning the 06:00 rush is queueing because someone’s fob isn’t reading and the access integration dropped events again overnight; three Direct Debits failed in the GoCardless retry-window and one of them is the member who’s been swiping in since you opened in 2019. The 7pm spin class is full but you already know two will no-show, and there are four on the waitlist who’d kill for the slot. Mindbody just emailed about a price increase, Glofox doubled its per-seat fee in year two, and you’ve got the same thirty names of might-cancel members sitting in a CRM-shaped tab you keep meaning to ring on a Tuesday - the same thirty names from last Tuesday, and the Tuesday before. The branded member app on the App Store has your competitor’s vendor’s brand on the listing; reviews say “the gym is brilliant, the app keeps crashing” and it’s not even your app.
We make custom software for UK independent gyms - scoped per site, sized to the bit between member swipes in at 06:00 and member is still here in eighteen months telling their friends. Not a Glofox / ClubRight / Gymcatch / Mindbody / TeamUp / Wodify replacement on day one; the gym-management tools work for what they’re for. Not a Kisi / Brivo / Salto / PaxLock / Coram / OpenPath / ButterflyMX replacement; the access hardware sits where it sits. The bit between the access vendor and the billing provider and the lapsed-member spreadsheet and the four-rated app - the attendance-frequency-as-at-risk-signal that catches the Tuesday-twice-a-week-for-eighteen-months member dropping to weekly before she dropped, the failed-DD recovery that doesn’t quietly become a £150-£300 lifetime-value lapse, the access rule engine that suspends the member who hasn’t paid in three weeks at the door not at the renewal, the branded iOS app that’s your gym on the App Store listing - that’s the bit we build. Tell us what your week looks like and we’ll come back with a sketch.
What you spend your week on that you shouldn’t have to
- The 06:00 fob queue when the access integration drops events again - and the GoCardless mandate that should have suspended access overnight didn’t, because nothing reconciles the access vendor with the billing provider on a 15-minute heartbeat.
- The Friday-afternoon ring-round of the thirty lapsed names you mean to win back and never quite get to - same thirty as last Friday, same five at-risk signals you’d ring if you had three quiet hours.
- 7pm spin classes with two no-shows and three on the waitlist who never got the call-up; the native app push notification fires fifteen minutes after class has started, by which point the floor’s empty and the spin instructor’s annoyed.
- Failed Direct Debits at 4-6% per month - each one turns into thirty days of free workouts because nobody chased the “sorry to see your DD bounced, here’s what your training means to us” message, and the GoCardless transactional email isn’t enough to save the relationship.
- A PARQ a new member ticks NO to under your nose at the start of class because she wants to train - and a Health Commitment Statement signed in 2022 that hasn’t been refreshed even though her doctor’s said no overhead loading since June.
- An incident in the free-weights room that needs to be RIDDOR-classified before you forget the time, and a public-liability claim from the same incident three months later asking why the toolbox-talk-on-spotter-protocol from last Monday isn’t logged.
- Five Instagram posts you’ve been meaning to write all month - your competitor down the road posts twice a day and his Hyrox-season content cadence is eating your Q1 sign-ups.
- Member app reviews that say “the gym is brilliant, the app keeps crashing” - except it’s not your app, it’s Glofox’s, and the app-store listing reads someone else’s brand.
- A Mindbody-shaped data-export fee of £400 because you wanted to move CRM, and three weeks of will-they-won’t-they before the export landed in a format your new vendor doesn’t read cleanly.
- An Equality Act 2010 request from a wheelchair-using member who can’t pass your standard turnstile; a REPs / CIMSPA-registered coach whose insurance lapsed in March; an OFSTED-side safeguarding cert for the junior coach who runs Saturday-morning kids’ classes that’s due renewal next month.
These aren’t problems for an off-the-shelf gym platform. They’re the bit between member walks in and member is still here in eighteen months telling their friends. That’s the bit we build.

Example problems we could solve
Six things we hear most often from independent gym operators - with what the solved version looks like in your week. Three are universal across the trade (access-and-billing reconciliation, the lapsed-member cadence, the waitlist muscle); three are sub-segment-specific where the branded app, the PARQ workflow, or the content cadence genuinely earns the slot. Every build is scoped per gym: a solo women-only studio probably needs the first three; a 24/7 multi-site operation with a roster of REPs-registered PTs and a kids’ programme might want all six. None of it means binning Glofox / ClubRight / Gymcatch / Mindbody / TeamUp / Wodify on day one.
1. Access control that knows when a Direct Debit fails
The 06:30-Tuesday moment: Kisi or Brivo or Salto or PaxLock glitches in the small hours and never fully integrated with your gym-management software anyway - that was the whole point of buying it. The member who hasn’t paid in three weeks is still swiping in at 06:30. By the time someone at reception notices on Wednesday afternoon, she’s worked out twice this week and the renewal conversation is awkward. Multiply by twenty members across the year - the silent leak is real money. Underneath, the 06:00 health-check that would catch the access-vendor drift overnight doesn’t exist, so you find out about the integration drop when the first member rings the doorbell at the locked turnstile.
Solved looks like: a rule engine that sits between your access vendor (Kisi / Brivo / Salto / PaxLock / Coram / OpenPath / ButterflyMX) and your billing (GoCardless / Stripe). Member status, DD status, PARQ status, Health Commitment Statement status, contract status - all reconciled into a single door rule per member, refreshed every fifteen minutes. DD fails → soft warn at the next swipe with a “your DD bounced, here’s a one-tap link to restore” SMS → seven-day grace → access suspended (with a branded SMS explaining why and a one-tap Instant Bank Pay link to restore). A 06:00 daily end-to-end health-check pings the access vendor and the billing provider and pages you if the integration’s dropped events overnight - so you find out before the queue forms, not because of it. Equality Act 2010 paths for wheelchair-using members handled at the rule layer - alternative-entry route auto-provisioned where the standard turnstile isn’t passable. PARQ status sits in the same rule layer - flagged answers gate access and trigger the GP-referral cadence, with the special-category-data handling under UK GDPR Art. 9 and the retention schedule baked in.
2. The lapsed list, on autopilot - with attendance-frequency-as-at-risk-signal
The same thirty names in your CRM you keep meaning to ring on a Tuesday - you know roughly who’s at risk, you never get to them before they cancel. The gym-specific weight is that days-since-last-visit is the wrong signal on its own - the Tuesday-twice-a-week-for-eighteen-months member who drops to weekly is already at risk before she’s missed a week, and the fortnightly-since-she-joined-and-she-likes-it-that-way member isn’t at risk just because she’s not in this week. Attendance-frequency-as-at-risk-signal - the delta against her own pattern, not the absolute days-since-last-swipe - is what catches the relationship before the renewal conversation. The DD-failure-recovery layer that pairs with this is the same conversation from the billing side: a £150-£300 lifetime-value lapse for every silent failed-DD that never got a personal recovery message, across a 4-6% monthly failure rate and a 600-member base.
The full build: Recurring Service Recall - at-risk member detection + failed-DD recovery ladder + Tuesday-morning “five people most likely to come back if you ring them today” digest + consent-as-first-class-object. Referenced across 22 verticals; the gym version’s distinct features are the attendance-frequency-delta-as-at-risk-signal (Tuesday-twice-a-week dropping to weekly is the strongest signal, not the days-since-last-visit threshold), the failed-DD recovery cadence (Instant Bank Pay one-tap restore, with the “sorry to see your DD bounced, here’s what your training means to us” warmer first, the transactional retry second), and the five-to-ring-today Tuesday-morning digest that respects the “this is a relationship, not a transaction” tone the win-back conversation needs to land in.
3. Waitlist and no-show recovery that actually fires
The 7pm-spin moment: another no-show on the 7pm spin. Three people on the waitlist who’d have killed for it. The native app push notification fired fifteen minutes after class started; the spin instructor’s annoyed; the empty bike’s the third empty bike this week. Class-yield on a multi-class-a-day operation is a real revenue layer - a 10% no-show rate across forty classes a week is sixty empty slots a week, and if the waitlist conversion is sub-30% the room’s emptier than the bookings page suggested.
Solved looks like: a class-booking layer that treats the waitlist as a live, time-sensitive queue. Booking made → 48h + 24h reminder cascade (SMS + WhatsApp + push on your branded app). No-show window opens 30 minutes before class → empty slot detected → next person on the waitlist gets an SMS with a 90-second response window → confirmed seat or move to the next person. By the time class starts, the room is as full as it’s going to be. Post-class, a one-tap Google review prompt; positive triages to Google, negative triages to your inbox before it becomes a one-star review. The same pattern works for PT slots, inductions, climbing belay sessions, kids’ classes - anything time-constrained. For the unstaffed-24/7 gyms, the same engine drives the busy-time-heat-map notification - “the floor’s quiet at 11:00 this Tuesday if you can flex your usual 18:00 slot” - which moves load off the 06:00 + 18:00 peaks and improves the lived experience without needing more square-footage.
4. The branded member app that’s actually yours
The four-rated-vendor-app moment: TeamUp’s native app just isn’t good enough - you tell members to use the website. The vendor’s brand on the app-store listing doesn’t help. Member-app reviews say “the gym is brilliant, the app keeps crashing” - except it’s not your app, and the four-rated listing is the first thing a prospect sees when she searches for your gym in the App Store after a friend mentioned it.
Solved looks like: an iOS (and Android, where it earns its place) member app branded as your gym, not the vendor’s. Class booking, door unlock, profile, PARQ refresh, push notifications, payment status, in-app failed-DD restore, the busy-time heat-map - wired into your existing access control (Kisi / Brivo / Salto / PaxLock) and your billing (GoCardless / Stripe). The app-store listing says your gym name; the icon is your logo; the splash screen is your branding. When a member shows their app to a friend, they’re showing your business, not someone else’s. Built on the same pattern Iron Institute is mid-build on - full mobile stack on iOS, the same backend behind the access-and-billing rule engine, no per-seat vendor creep. The Storytimebaker iOS / Android consumer app is the closest reference shape - full mobile-app-plus-server build, scoped to a brand not a platform.
5. PARQ, REPs / CIMSPA-coach insurance, and the incident-evidence trail
The over-60s-deadlift moment: new member ticks NO to a clinical-population question on the day-one PARQ because she wants to train. Two months later her cardiologist says no high-intensity work above 75% MHR and the PARQ that flagged it is buried in a Google Drive. Three weeks after that, she’s in A&E with a non-injurious-but-RIDDOR-territory incident on the deadlift platform and the public-liability claim asks for the PARQ, the toolbox talk on spotter protocol from last Monday, the coach’s REPs / CIMSPA registration evidence, the coach’s first-aid + safeguarding cert, the gym’s risk-assessment for free-weights. Currently three folders across two laptops.
Solved looks like: PARQ + readiness questionnaire on the member’s phone before the first session - branching to flag clinical-population issues (pre/post-natal, over-60s, lower-back history, hypertension, cardiac history). Annual re-tick that auto-prompts. Health Commitment Statement signed at the same flow. Per-member scope-of-practice notes (“doctor-cleared for resistance, no overhead loading”) visible to the coach in-session. Coach-side: REPs / CIMSPA registration evidence, current first-aid, current safeguarding cert (where any members are under 18), professional indemnity + public liability cover, an annual coach-CPD log - all in a structured store with renewal-chase nudges firing two weeks before lapse. Site-wide: incident log with the RIDDOR-classification prompt, toolbox-talk-on-spotter-protocol logged on the tablet at the start of each session, free-weights risk-assessment versioned per equipment change. When the public-liability claim lands three months later, the PARQ + the toolbox talk + the coach’s registration + the risk-assessment-current-on-the-day is one URL, not a forensic-archaeology weekend.
6. The seasonal content cadence for the gym that doesn’t have time to market
The competitor-twice-a-day moment: “I didn’t open a gym to make Reels. My competitor down the road posts twice a day. I haven’t posted since the World Cup.” The seasonal rhythms of independent fitness are real - January joiners, Hyrox season, the post-Christmas DD-failure spike, autumn-return after summer holidays, the half-term family timetable, the new-year-new-you sign-up burst that’s actually closer to the third week of January than the first. Most gym owners know the rhythms; the content cadence to ride them is the Sunday-afternoon job that always loses to a Monday-morning issue.
Solved looks like: a content cadence on top of planpost - our own social-media scheduling SaaS - tuned to gym voice and the rhythms of independent fitness. AI-drafted posts you approve on your phone in sixty seconds, scheduled to Instagram + Facebook + Google Business Profile + TikTok where it fits. The voice stays yours; the volume stops being a Sunday-afternoon job. The seasonal cadence is built-in - January joiners content runs from the 27th of December, the Hyrox-season cadence runs from late summer, the post-Christmas DD-failure-spike content focuses on the “hey, your training matters even when life’s complicated” tone rather than the discount-driven panic the platforms push. The same studio that runs planpost runs this for your gym - when the platform changes, the cadence updates without you noticing.

The closest things we’ve already built
- Iron Institute24/7 independent gym, mid-build by mmitech. Scope in flight: 24/7 access control, member + gym management, access-billing rule engine, retention + outbound-marketing automation, branded iOS app on the same shape problem 4 describes. The closest live reference for an independent gym that wants the full stack built by one studio rather than five SaaS subscriptions stitched together. (Named pull-quote and final outcome figures hold until the permission checklist clears - full case study at Iron Institute.)
- mendbuddyour own multi-channel AI agent platform behind the inbound-enquiry triage (the “can I come for a trial session” DM at 21:00 Sunday that needs a reply before the prospect’s lost interest) and the lapsed-member win-back cadence in problem 2. SMS + WhatsApp + Facebook DM + Instagram + web chat + inbound + outbound voice. Trained on your gym’s own knowledge, your trial-class policy, and your membership pricing. See Mendbuddy.
- Storytimebakerour consumer iOS / Android app + backend. Proof we ship the full mobile stack - the closest shape as the branded member app in problem 4. Built end-to-end as a brand-led app, not a vendor-built skin. See Storytimebaker.
- planpostour own social-media scheduling SaaS. Used as the layer for the content-cadence solution in problem 6 and as the proof that we ship marketing-software, not just marketing-as-a-service. See Planpost.
If your week’s narrower than the whole of the above
One sub-audience whose week looks different enough that it has its own page:
- Personal trainers and PT studios → - if your business is built around a solo or small PT roster rather than a member base, the buyer mode is different enough to warrant its own scope. Pack-based booking with drawdown, the qualification agent that refuses the “lose 20kg in 8 weeks” enquiry as politely as it takes the genuine prospect, the branded coaching app, the transformation-programme check-in cadence - all sit on the personal-trainer page rather than this one.
Boutique studios (yoga, pilates, dance), climbing walls, and martial arts academies share most of the hub above; the bits that differ (instructor-sub cover, belay-competency tracking, junior safeguarding under the Children Act 2004) are best scoped in the discovery conversation rather than presented as standalone pages.
Adjacent verticals
- Hospitalitythe booking + no-show + waitlist pattern reappears for restaurants, gastropubs, B&Bs, and event venues; cross-pollination on the same inbound stack. The midnight-DM first-reply shape on the hospitality side is the structural cousin of the “can I come for a trial session” enquiry triage on the gym side.
- Device repairthe same job-tracking + customer-status-SMS shape that drives the inspection-round flow lives behind RepairMinder; useful comparator for the engineering side of a gym build that takes equipment service in-house.
- Pet servicesboarding intake and recurring-service ledgers share the operational backbone of a gym membership engine.
- Clinics (private GP)the PARQ + scope-of-practice + clinical-population workflow on the gym side is the structural cousin of the patient-intake + records-request flow on the private-GP side; cross-pollination worth a read if your gym is moving toward GP-referred clinical exercise as a revenue line.
FAQ
Will this replace Glofox / ClubRight / Gymcatch / Mindbody / TeamUp / Wodify?
Usually not all at once, and usually not on day one. We sit on top, replace the bits that hurt - the access-billing rule engine, the lapsed-list cadence with the attendance-frequency-delta signal, the failed-DD recovery, the branded member app, the content cadence - and migrate the rest as it makes sense. The point is your data, your stack - when the build is done, it sits in your accounts, your GoCardless, your Kisi (or Brivo, or Salto, or PaxLock), your iOS developer account. No vendor hostage; no per-seat creep; no Mindbody-shaped data-export fee next time you want to move.
Do you integrate with Kisi / Brivo / Salto / PaxLock?
Yes, all four, plus Coram, OpenPath, and ButterflyMX. The 06:00 daily end-to-end health-check is what stops the access-vendor drift from becoming a 06:30 queue. The rule engine reconciles access-vendor state with billing-provider state every fifteen minutes; the integration is a structured one-way reconciliation, not a fragile event-driven chain that breaks at the first vendor-side maintenance window.
Can you handle GoCardless Indemnity Claims and Instant Bank Pay?
Yes - both are first-class objects in the billing rule engine. Failed-DD recovery via Instant Bank Pay is one of the highest-ROI bits of a gym build - a 4-6% monthly failure rate across a 600-member base is forty members a year quietly lapsing, and a one-tap Instant Bank Pay restore saves the relationship that the GoCardless transactional retry doesn’t. Indemnity Claim handling sits alongside, with the dispute-evidence pack assembling from the membership-agreement-on-signing.
My PTs are technically self-employed. Will the software respect IR35?
The software doesn’t determine status - your contracts and your CEST assessments do - but the comms layer is built to address self-employed PTs differently from PAYE staff, and the booking flow keeps PT-renting clearly distinct from PT-employment. The PT-side spoke (see personal trainers) goes deeper on this. We make sure the data doesn’t quietly contradict your status determination.
REPs and CIMSPA - does the system handle dual-registration coaches?
Yes. Coach-side registration evidence is structured per scheme - REPs Level 2 / 3 / 4, CIMSPA Practitioner / Advanced Practitioner / Specialist - with renewal-chase nudges per scheme. Dual-registration is a first-class state; coaches working across both schemes get one record, two registration-state fields, two renewal calendars.
What about junior coaches working with kids’ classes under the Children Act 2004?
Safeguarding-cert evidence is captured per coach, with the “this coach is cleared to work with under-18s” flag as a structured field that gates which classes she can be timetabled to. Enhanced DBS expiry sits on the same renewal calendar. Where the gym runs a junior programme, the junior-class waiver flow and the parental-consent layer sit alongside the standard PARQ flow.
What does it cost?
Every build is scoped per gym - depends on member count, what’s getting replaced, whether the branded app is in scope, how many integrations need wiring, whether multi-site is part of the brief. We talk it through, agree scope and price in writing, then build. See pricing for how we work.
How long until something’s live?
The lapsed-list cadence and the content cadence can be live in a few weeks. The access-billing rule engine takes longer - typically four to eight weeks depending on which access vendor you’re on and whether they expose the API we need or whether we’re scraping the management portal. The branded mobile app is its own scope, usually a few months of build plus a few weeks of App Store / Play Store review.
What about the Mindbody data-export fee?
Painful but routine. We include the migration work in the scope and price; in our experience the fee gets paid back inside a year on the seats and integrations you stop paying for. The export typically lands in a format that needs reshaping before it imports cleanly into the new stack - we handle that as part of the migration rather than asking you to sit in front of a CSV at the kitchen table on a Sunday evening.

Tell us what your week looks like
Send an enquiry - what kind of gym (24/7 unstaffed / staffed / boutique studio / CrossFit box / climbing wall / martial arts academy / dance / yoga / pilates), what’s running today (Glofox / ClubRight / Gymcatch / Mindbody / TeamUp / Wodify / paper-and-WhatsApp), which access vendor, which billing provider, what’s slowing you down - the 06:00 queue, the lapsed-list ring-round, the failed-DD silent leak, the four-rated vendor app, the seasonal content cadence. We’ll come back with a sketch of what we’d build and what it would cost. No calendar widget, no demo to sit through. Email reply, scoped sketch, you decide.