Skip to main content
A consulting booking app where clients browse available consultants, book time slots through an embedded calendar, pay for premium sessions, and receive email confirmations and reminders. The finished product includes user authentication, consultant profiles, calendar-based scheduling, Stripe payments for paid sessions, transactional email notifications, and one-click deployment to Netlify.By the end of this recipe you will have a production-ready booking platform that you can customize, rebrand, and launch as your own service.

Tech stack

You do not need to understand these technologies. Rocket handles them automatically. This table is for reference.

Architecture overview

Here is how the pieces connect:
  1. A visitor signs up using Supabase Auth (email/password or social login) and creates a client profile.
  2. The client browses consultant profiles stored in Supabase, filtering by specialty, availability, and price.
  3. The client selects a consultant and picks a time slot using an embedded Calendly scheduling widget.
  4. If the session is a paid consultation, the client is redirected to a Stripe Checkout page to complete payment before the booking is confirmed.
  5. Once the booking is confirmed, Resend sends a confirmation email to both the client and the consultant with meeting details and calendar invite.
  6. Before the session, Resend sends a reminder email 24 hours in advance.
  7. The entire app is deployed to Netlify with environment variables configured for each service.

How long does it take?

Step-by-step build

1

Start a new project

Open rocket.new and create a new project. Give Rocket a detailed description of the app so it scaffolds the right pages, layout, and navigation from the start.
Be specific about both the client-facing and consultant-facing pages. Booking apps need views for both sides of the marketplace.
2

Connect Supabase

Go to Integrations in your Rocket project and connect your Supabase account via OAuth. Create a new Supabase project (or select an existing one), then ask Rocket to set up the database schema.
Rocket handles the Supabase connection through OAuth, so you never need to copy API keys manually. Your credentials are encrypted and stored securely.
3

Add user profiles and authentication

Wire up authentication so users can create accounts and sign in, then build profile management for both clients and consultants.
After Rocket builds the auth flow, preview the app and create test accounts for both a client and a consultant. Verify that each role sees the correct dashboard.
4

Integrate calendar scheduling

Connect a scheduling service so clients can see availability and book time slots directly from the consultant’s profile.
Calendly provides a managed service with a generous free tier that works well for embedding scheduling widgets.
5

Add booking management

Build dashboards for both clients and consultants to view and manage their bookings.
6

Connect Stripe for paid sessions

Go to Integrations and connect Stripe using your test mode API keys. Then set up payment processing for paid consultation sessions.
Use Stripe test mode keys during development. The test card number 4242 4242 4242 4242 with any future expiration and any CVC will simulate a successful payment.
7

Add email notifications with Resend

Go to Integrations and connect Resend by pasting your API key. Then set up transactional emails for key booking events.
Resend provides a free tier of 100 emails per day, which is plenty for development and early launch. You can upgrade later as your booking volume grows.
8

Deploy to Netlify

Go to Integrations and connect Netlify, then deploy your app to the web.Use the Launch button in your Rocket project to deploy to the web. Rocket handles the Netlify build configuration automatically. Make sure all required environment variables are set in your project’s integration settings before launching.
After deploying, update your Supabase redirect URLs to include your app’s live URL. Go to your Supabase dashboard, navigate to Authentication > URL Configuration, and add https://your-app.builtwithrocket.new to the allowed redirect URLs.

Customization ideas

Once the base booking platform is running, here are ways to extend it.
Generate unique video meeting links automatically when a booking is confirmed so clients and consultants can meet virtually without any extra setup.
Let consulting firms create a team page where clients can book with any available consultant in the group, or pick a specific team member.
Let clients book a recurring series of sessions (weekly, biweekly, or monthly) with their preferred consultant.
When a consultant’s slots are fully booked, let clients join a waitlist and get notified automatically when a slot opens up.
Let clients rate and review consultants after completed sessions to build trust and help other clients make informed decisions.

Troubleshooting

If the scheduling widget is empty, the consultant may not have availability set up in Calendly. Make sure their calendar link is correct in the database and that they have configured at least one availability window.If the widget loads but bookings do not appear in your app, ask Rocket to debug the sync:
If the client and consultant see different times for the same booking, there may be a timezone issue. Ask Rocket to fix it:
Also check that the consultant’s timezone is set correctly in their Calendly settings.
If you are using Calendly, the scheduling tool should prevent conflicts automatically. Make sure the consultant has only one active event type with the correct duration.If conflicts are still happening, ask Rocket to add a safeguard: