Three ways to sell a membership
Recurring, with an optional signup fee added as a one-time line on the same checkout. Paid-in-full with a term, which expires on its own date. Or packs and passes for people who aren't members.
Solution — Gyms
A gym runs three businesses at once: a funnel turning walk-ins into members, a billing engine that has to survive declined cards, and a door that decides who gets in. Most software is strong at one and a form for the other two. This is the studio system — schedule, packs, memberships, payroll, reports — plus the parts a staffed gym floor actually needs: leads, membership shapes, dunning, and a door check-in that shows you a face before it says yes.
01 — The funnel
A lead capture form lives on a public URL — put it on your site, in an ad, on the QR by the door — with a honeypot on it so bots don't fill your pipeline. Leads land on a funnel board the desk works through by stage, and converting one turns it into a member record in place, so the trial, the first class, and the first charge are all the same person's history instead of three.
The growth report is the scoreboard for it: joins, leavers, and where the movement came from, exported as CSV like every other report here. Fourteen reports ship with the platform, including an attendance heatmap by weekday and hour — which is how you find the 5:30pm class that needs a second coach and the Sunday slot that should not exist.
02 — Memberships and billing
Payments run on Stripe Connect against your own Stripe account. Your money, your rates — and the billing engine's job is the unglamorous half: what happens on the fourth of the month when nine cards decline.
Recurring, with an optional signup fee added as a one-time line on the same checkout. Paid-in-full with a term, which expires on its own date. Or packs and passes for people who aren't members.
Failed invoices mirror back from Stripe into a payment schedule, and dunning runs at most once a day per member. Late fees apply once — marked before the charge, so a retry can't double-bill a late fee.
The billing tab is three buckets and the actions you need on each: retry, cancel, mark paid by hand when someone pays cash, or schedule a one-off charge from a drawer.
A PIF membership writes its own renewal row when it's fulfilled, and a renewal email goes out a week before the term ends — the moment that revenue is still cheap to keep.
Class packs are a real credit ledger with expiry, shared family wallets, refunds capped at what was granted, and a computed liability figure so you know what you actually owe.
Sell at the counter with Stripe Terminal, then reconcile: expected cash = float plus cash sales minus cash refunds. Off by four dollars is a conversation, not a mystery.
03 — The door
This is the section every gym platform is vague about, so here it is with the status on each line.
Every member carries a QR code in the Me tab of the member app. A twenty-dollar USB handheld scanner at the desk reads it — the portal listens for the scanner's keystroke burst anywhere in the app, so whoever is at the desk doesn't have to be on the right screen. Forgot the phone? The same endpoint takes a four-digit code or a member id.
Each scan pops a door toast: photo, name, standing, and notes. Good standing clears in a second. A red one sticks on screen until a human decides, with an explicit "let them in anyway" — because the person at the desk should overrule the software, on the record. The feed also polls for kiosk check-ins so a member who tapped in at the kiosk still shows up at the door.
Someone on a 10-pack isn't a member and isn't a stranger. They're flagged as a visitor, countable and filterable in the member list, and badged on the door toast, so the desk knows the difference between "no membership" and "shouldn't be here".
There's a Kisi integration in the code — API key, access group, an hourly reconcile of who should have access — but it has never been tested against a real Kisi organization, so we call it experimental and we won't sell it as shipped. If you have Kisi hardware, tell us on the demo and we'll pilot it with you honestly. Tablet-camera QR scanning isn't built either; a handheld scanner beats it at counter distance anyway.
04 — Opening shift
05 — Everything else, included
Every capability on the fitness studio page applies here and is the same code: the schedule materializer, waitlists that charge at promotion, standing reservations, 24-hour and 2-hour class reminders, appointments, instructor payroll on tiered rates with a Gusto-shaped CSV, waivers with live merge fields, kiosk-mode sign-up forms with photo capture, and lifecycle emails that ledger before they send. Members get the same phone-OTP app, the crawlable public schedule page, and the embeddable schedule widget for the website you already have.
If you also sell supplements at the front counter, that's not a second system — it's the points and rewards engine the supplement stores on this platform run every day, on the same member record. And if your gym is one of several sites with staff paperwork, schedules and time clocks to run, look at workforce and store ops. The full tour is on the platform page.
06 — Switching
The built-in importer reads MindBody Online and Marketing Suite exports — clients, account balances, and the class schedule — and every run can be a dry run, so you see the exact rows before anything is written. There is no GymDesk CSV importer yet; that one is hands-on work during setup and we'd rather say so now than after you've signed. Belt and rank tracking for martial-arts programs isn't built either.
Imported SMS consent always arrives as pending, never as opted in, no matter what the old system's column says. A spreadsheet is not consent and carriers agree — your members opt in again themselves, with a source and a timestamp you could show someone. Setup and migration is a one-time $500; the platform is $200/mo with 5,000 texts included, 2¢ after, and no contract. It's all on pricing, and what's shipped versus early access is on the public roadmap — including the Kisi line above.
07 — Questions
What is built and running is a desk flow: every member carries a QR code in the Me tab of the member app, a cheap USB handheld scanner at the front desk reads it, and a door toast pops up across the whole portal with the member's photo, name, standing, and notes. A member in good standing clears in a second; a red one sticks on screen until someone decides, with an explicit "let them in anyway" button. Four-digit lookup and a bare member id work at the same endpoint for a forgotten phone. Tablet-camera scanning is not built — a handheld scanner is faster and about twenty dollars.
Not yet, honestly. There is a Kisi integration in the codebase — API key, access group, an hourly reconcile of who should have access — but it is experimental and has never been tested against a real Kisi organization. We will treat it as early access on a call and will not sell it as shipped. The QR-plus-desk-scanner flow above is what works today.
Three, on your own Stripe account. Recurring memberships with an optional signup fee charged as a one-time line on the same checkout. Paid-in-full plans with a term — checkout runs in payment mode and the membership carries an end date that expires on its own. And class packs or passes for people who are not members at all.
There is no GymDesk CSV importer built yet — that migration is hands-on work during setup, and we will say so on the call rather than after you have signed. The importer that does exist covers MindBody Online and Marketing Suite exports: clients, balances, and the class schedule, with a dry-run mode. Belt or rank tracking for martial-arts programs is also not built.
08 — Next step
Twenty minutes: a lead captured and converted, a membership with a signup fee sold, a declined card walked through dunning, and the door flow on a real scanner.
$200/mo platform · 5,000 texts included · $500 one-time setup & migration · no contracts