Coaching Booking & Payments Platform
- Client
- Life & Mindset Coaching Practice
- Duration
- Ongoing / Production
- Built with
- Next.js 15, React 19, TypeScript, App Router, Route Handlers, PostgreSQL, Prisma, Tailwind CSS, Payment Gateway Integration, OpenAI API

A booking system for coaches and influencers is a scheduling and payments platform where the person selling their time controls their own availability, pricing, and client list instead of renting a slot on someone else's marketplace. This one was built for a coaching practice: clients pick a session package, choose a date and time from real open availability, pay through an integrated payment gateway, and get confirmed — while the coach runs the whole business from an admin dashboard covering clients, bookings, services, payments, and revenue.
The problem it solves
Coaches, consultants, and creators selling sessions usually end up stitching together three or four tools — a calendar link here, a payment link there, a spreadsheet of clients, and a mailbox full of reschedule requests. Every tool takes a cut or a monthly fee, and none of them talk to each other.
This platform collapses that into one system the coach owns. Availability, payment, client history, and reporting live in the same database, so a paid booking updates the calendar, the client record, and the revenue chart in a single transaction.
The booking flow
The public side is a deliberate four-step wizard — Date, Time, Details, Confirm — rather than one long form. Each step only asks for what it needs, and the step indicator stays visible so the client always knows how much is left.
- Date — a month calendar where only days with genuinely open slots are selectable. Past dates and fully-booked days are visually dimmed and non-clickable, so a client can't start down a path that ends in an error.
- Time — slots generated from the coach's own availability rules minus anything already booked, in the client's local timezone.
- Details — client name, contact, and anything the session needs up front.
- Confirm — a summary, then gateway checkout.
Each service page carries its own duration, price, and terms — a 4-session package shows "4 hrs total" and its package rate, with reschedule and cancellation policy stated before payment, not buried after it.
Payments
Payments run through a directly integrated payment gateway, not a rented checkout page:
- Checkout — a one-time payment captured at booking, tied to the booking record so an unpaid slot never blocks the calendar
- Webhooks — the gateway pushes payment status changes to a route handler that reconciles the booking state, so the source of truth is the payment processor, not a hopeful client-side redirect
- Refunds — issued from the admin dashboard, and handled properly in reporting
That last point matters more than it sounds. A refunded payment is excluded from the month it was originally paid in, not subtracted from the month the refund happened. Most homegrown dashboards get this backwards and quietly overstate a past month's revenue forever.
Admin dashboard
The coach's side is a full operations console, not a settings page:
- Overview — total clients, bookings this month, revenue this month, upcoming sessions, plus a six-month revenue trend and the day's schedule at a glance
- Clients — client records with booking and payment history attached
- Bookings — the full schedule, with reschedule and cancellation handling
- Services — session types, durations, pricing, and package definitions, editable without a deploy
- Availability — the rules that drive which slots ever appear on the public calendar
- Payments — gateway transaction history, including refunds
- Inbox — client messages in one place
- Blog — a built-in CMS, so content marketing doesn't need a second platform
- Analytics and Settings
AI assistant
An AI assistant sits on the client-facing side to answer pre-booking questions — what a package includes, how rescheduling works, which service fits what someone is trying to do — so a prospective client gets an answer at the moment of hesitation instead of dropping off or waiting on an email reply.
Engineering notes
- Next.js App Router, Server Components by default — the booking pages render server-side, with client components scoped to the parts that genuinely need interaction (the calendar, the step wizard, the dashboard charts)
- Route handlers as the whole backend — no separate API service to deploy or keep in sync
- Strict TypeScript end to end, Prisma over PostgreSQL
- Light and dark themes across both the public site and the admin dashboard
- Payment state driven by webhooks, so a closed browser tab mid-checkout doesn't desync a booking
What is a booking system for coaches and influencers?
It's a scheduling and payments platform where a coach, consultant, or creator sells their own sessions directly — controlling availability, pricing, packages, and client data themselves instead of listing on a marketplace that takes a cut. It combines a public booking flow with an admin dashboard for bookings, clients, payments, and revenue.
Why build a custom booking system instead of using Calendly or Acuity?
Off-the-shelf tools charge per month and per booking, and stop at scheduling. A custom platform owns the client list, the payment data, and the reporting, and can add whatever the business actually needs — packages, tiered pricing, a content CMS, an AI assistant — without waiting for a vendor roadmap or paying for a higher plan tier.
How are payments handled in a custom booking system?
Through a payment gateway integrated directly into the booking flow — one-time session checkout captured at booking, webhooks reconciling payment status server-side so a closed tab cannot desync a booking, and refunds issued from the admin dashboard. The gateway is chosen to match whatever the business already uses for in-person payments, so all revenue lands in one account.
Is a custom platform a good Calendly alternative for a coaching business?
It becomes one when the business logic outgrows scheduling. This platform replaced a stack of separate tools with one system handling packages, availability rules, client records, payments, and reporting together — the parts a scheduling tool like Calendly or Acuity leaves to a spreadsheet and the coach's memory.
How does the booking system prevent double bookings?
Availability is computed server-side at request time — existing bookings, buffers, and blackout dates are subtracted before any slot reaches the client — and the booking write re-checks the slot is still free before committing. Two people clicking the same time simultaneously cannot both succeed.
How long does it take to build a custom booking platform?
It depends on scope — a single-service booking flow with payments is materially smaller than a full platform with packages, availability rules, a client CRM, refund-aware reporting, and a CMS. Timelines and pricing are scoped per project rather than quoted off a template.
