The trigger: every small studio owner I know (pilates, yoga, pottery,
even a dog trainer) runs the operational side of their business on
WhatsApp + a Google Sheet, or on one of the expensive incumbents
(Mindbody/Glofox) they actively dislike. The single biggest leak is
last-minute cancellations: someone bails at 6am and the seat just
goes empty, because there's no fast way to notify a waitlist.
ClassKeep tries to remove that end-to-end:
- Public booking page on a free *.classkeep.app slug (custom domain
optional), with a drag-and-drop page builder so it doesn't look
like a generic SaaS template.
- Credits, drop-ins, and recurring subscription plans, all via
Stripe Connect — the studio gets paid directly, I never touch
the money.
- A waitlist that auto-notifies via email + web push + SMS the
instant a seat opens; first tap wins. This is the part most
studios told me they'd pay for on its own.
- 1-tap tablet check-in for instructors so they're not fumbling
with a clipboard between classes.
- Bilingual (EN + pt-BR) with LGPD/GDPR self-serve export & delete.
Stack, for the curious:
- Next.js 15 App Router, Server Actions for every mutation (no
REST except the two auth route handlers and the Stripe webhook).
- Drizzle ORM on Postgres.
- Two separate Better-Auth instances — one for studio operators,
one for students — so cookies and sessions don't collide on the
same domain.
- Stripe Connect (webhook-authoritative fulfillment), Twilio for
SMS, OneSignal for push.
- Tailwind v4 with a Material 3 token system.
Pricing: free for every studio during early access — no card, no
per-student fees. Early signups get a permanent discount when paid
tiers ship.
Genuine asks:
1. Try creating a studio and booking a class on it — does the
flow feel less painful than Mindbody/Glofox if you've used them?
2. Does the waitlist mechanic feel different enough to matter, or
is it table stakes by now?
3. If you run a studio (or know someone who does), I'd love to
talk — email in profile.
Happy to go deep on any of the architecture (Server Actions +
Stripe webhook reconciliation was the trickiest part).
The trigger: every small studio owner I know (pilates, yoga, pottery, even a dog trainer) runs the operational side of their business on WhatsApp + a Google Sheet, or on one of the expensive incumbents (Mindbody/Glofox) they actively dislike. The single biggest leak is last-minute cancellations: someone bails at 6am and the seat just goes empty, because there's no fast way to notify a waitlist.
ClassKeep tries to remove that end-to-end:
- Public booking page on a free *.classkeep.app slug (custom domain optional), with a drag-and-drop page builder so it doesn't look like a generic SaaS template. - Credits, drop-ins, and recurring subscription plans, all via Stripe Connect — the studio gets paid directly, I never touch the money. - A waitlist that auto-notifies via email + web push + SMS the instant a seat opens; first tap wins. This is the part most studios told me they'd pay for on its own. - 1-tap tablet check-in for instructors so they're not fumbling with a clipboard between classes. - Bilingual (EN + pt-BR) with LGPD/GDPR self-serve export & delete.
Stack, for the curious: - Next.js 15 App Router, Server Actions for every mutation (no REST except the two auth route handlers and the Stripe webhook). - Drizzle ORM on Postgres. - Two separate Better-Auth instances — one for studio operators, one for students — so cookies and sessions don't collide on the same domain. - Stripe Connect (webhook-authoritative fulfillment), Twilio for SMS, OneSignal for push. - Tailwind v4 with a Material 3 token system.
Pricing: free for every studio during early access — no card, no per-student fees. Early signups get a permanent discount when paid tiers ship.
Genuine asks: 1. Try creating a studio and booking a class on it — does the flow feel less painful than Mindbody/Glofox if you've used them? 2. Does the waitlist mechanic feel different enough to matter, or is it table stakes by now? 3. If you run a studio (or know someone who does), I'd love to talk — email in profile.
Happy to go deep on any of the architecture (Server Actions + Stripe webhook reconciliation was the trickiest part).