Tech stack for a booking and scheduling SaaS (2026)
Gym and studio booking SaaS, designed by StackPrism from one sentence: 11 components, a reason for each, and the live checks that watch them.
The stack
Next.js
Node.js
- Inngest
Clerk
SendGrid
Stripe
Twilio
Supabase
PostgreSQL
Redis
Sentry
“A booking SaaS for gyms and fitness studios. Members book classes and pay for memberships, studios manage schedules and instructors, and members get email and SMS reminders.”
Make it yours. Open this stack in the editor to check its health, harden it and hand it to your coding agent. No sign-up, nothing to generate.
Start from this stackSelect a component to see what it does and what it connects to, or pick one above to see what breaks if it goes down. Pinch or use the buttons to zoom.
Why this stack
Members and studio staff use one Next.js app on Vercel, with Clerk keeping member, instructor and admin access apart. The Node.js API owns the booking rules, like seat limits and membership status, in PostgreSQL, and takes short locks in Redis so two people can’t book the last spot. Stripe runs memberships and payments. Inngest schedules the reminders, which go out by SMS through Twilio and by email through SendGrid. Supabase Storage holds studio logos and instructor photos, and Sentry reports errors.
Why each piece
All 11 components on the diagram: what each one does, what it talks to, and what stops if it goes down.
Next.js Web App
In Vercel
Marketing and portal. Calls Node.js API, Sentry (reports) and Supabase Storage (uploads).
Nothing else on the diagram depends on it.
Node.js API
In Vercel
Booking API. Calls Clerk (auth), Inngest (triggers), Sentry (reports), PostgreSQL (reads/writes), Stripe (charges), Supabase Storage (reads) and Redis (locks). Called by Next.js Web App.
If it goes down, 1 of 10 components stops working.
Inngest
In Vercel
Background workflows. Calls Twilio (sends) and SendGrid (sends). Called by Node.js API (triggers).
If it goes down, 1 of 10 components degrades.
Clerk
User authentication. Called by Node.js API (auth).
If it goes down, 2 of 10 components stop working.
SendGrid
In External Services
Email notifications. Called by Inngest (sends).
If it goes down, 1 of 10 components degrades.
Stripe
In External Services
Payments and billing. Called by Node.js API (charges).
If it goes down, 1 of 10 components degrades.
Twilio
In External Services
SMS reminders. Called by Inngest (sends).
If it goes down, 1 of 10 components degrades.
Supabase Storage
In Data & Storage
Media and documents. Called by Next.js Web App (uploads) and Node.js API (reads).
If it goes down, 2 of 10 components degrade.
PostgreSQL
In Data & Storage
Primary database. Called by Node.js API (reads/writes).
If it goes down, 2 of 10 components stop working.
Redis
In Data & Storage
Upstash cache. Called by Node.js API (locks).
If it goes down, 1 of 10 components degrades.
Sentry
In External Services
Error tracking. Called by Node.js API (reports) and Next.js Web App (reports).
If it goes down, 2 of 10 components degrade.
When this stack fits
- Places are limited and a double booking is a real problem, so the last spot is locked in Redis.
- Reminders go out by SMS and email on a schedule.
- Members pay monthly or per class, and studios want it all in one place.
When to pick something else
- You only book one-to-one appointments: an existing scheduling tool with calendar sync may be all you need.
- Studios already run on a booking platform: integrate with it instead of replacing it.
What you need to build this
11 components across 9 areas of the stack.
Build it with your AI agent
Hand the stack to Claude Code, Codex, Cursor or any coding agent as a brief: how it connects, install steps and a build plan.
Frontend1
- Docs
Next.js Web App
Marketing and portal
npm install next
Backend & APIs2
- Docs
Node.js API
Booking API
Inngest
Background workflows
Data1
- Docs
PostgreSQL
Primary database
Cache & queues1
- Docs
Redis
Upstash cache
Auth1
- Docs
Clerk
User authentication
npm install @clerk/nextjs
Payments1
- Docs
Stripe
Payments and billing
npm install stripe
Email & messaging2
Storage & CDN1
- Docs
Supabase Storage
Media and documents
npm install @supabase/supabase-js
Observability1
- Docs
Sentry
Error tracking
npm install @sentry/nextjs
Install
npm install next @clerk/nextjs stripe twilio @sendgrid/mail @supabase/supabase-js @sentry/nextjs
SDKs only. Pick your own database driver or ORM.