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:- A visitor signs up using Supabase Auth (email/password or social login) and creates a client profile.
- The client browses consultant profiles stored in Supabase, filtering by specialty, availability, and price.
- The client selects a consultant and picks a time slot using an embedded Calendly scheduling widget.
- If the session is a paid consultation, the client is redirected to a Stripe Checkout page to complete payment before the booking is confirmed.
- Once the booking is confirmed, Resend sends a confirmation email to both the client and the consultant with meeting details and calendar invite.
- Before the session, Resend sends a reminder email 24 hours in advance.
- 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.
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.
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.
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.
Customization ideas
Once the base booking platform is running, here are ways to extend it.Add video call integration
Add video call integration
Generate unique video meeting links automatically when a booking is confirmed so clients and consultants can meet virtually without any extra setup.
Add team scheduling
Add team scheduling
Let consulting firms create a team page where clients can book with any available consultant in the group, or pick a specific team member.
Add recurring appointments
Add recurring appointments
Let clients book a recurring series of sessions (weekly, biweekly, or monthly) with their preferred consultant.
Add a waitlist
Add a waitlist
When a consultant’s slots are fully booked, let clients join a waitlist and get notified automatically when a slot opens up.
Add reviews and ratings
Add reviews and ratings
Let clients rate and review consultants after completed sessions to build trust and help other clients make informed decisions.
Troubleshooting
Calendar widget shows no available slots
Calendar widget shows no available slots
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:
Bookings show the wrong time for one party
Bookings show the wrong time for one party
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.
Two clients booked the same time slot
Two clients booked the same time slot
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:

