Codex
Codex is the builder. It writes code, fixes bugs, runs commands, commits files, and helps push to GitHub.
This guide explains the BookMyClean project at a 7th grade level. The goal is simple: understand what each platform does, why we used it, and the exact steps to build another SaaS faster next time.
Think of each platform like a worker on the team. Each worker has one main job.
Codex is the builder. It writes code, fixes bugs, runs commands, commits files, and helps push to GitHub.
GitHub is the online folder where your project code lives. Vercel reads from GitHub to deploy the app.
Vercel takes the code from GitHub and turns it into a real website people can visit.
Supabase is the database. It stores businesses, customers, bookings, prices, and booking status.
Stripe collects money safely. Later, it will collect the 50% cleaning deposit and update the booking.
GHL sends follow-up messages, creates contacts, and runs automations after important events.
This is how the system works when a customer books a cleaning.
Example: /jocleaning or /modamaid. The slug tells the app which cleaning business to load.
The customer selects the cleaning package, bedrooms, bathrooms, add-ons, and frequency.
The schedule step lets them choose when they want the cleaner to arrive.
The app sends the booking to Supabase. Supabase saves the customer and booking data.
Stripe will collect the 50% deposit and update the booking from pending_payment to deposit_paid.
After the important event happens, GHL can create the contact and send follow-up messages.
Use this exact order next time you build another SaaS.
Write down who uses it, what problem it solves, what data it saves, and how money will be collected.
Do not start from a messy old project. A clean repo prevents confusion.
Local Codex uses your Mac and internet connection, so it can install packages, build, commit, and push.
Ask Codex for the Next.js app, TypeScript, Tailwind, routes, components, and basic project structure.
GitHub must show the real files before Vercel can deploy.
Import the GitHub repo into Vercel. Vercel builds the app and gives you a live link.
Supabase gives the app a real database so bookings can be saved.
Environment variables are special settings that let Vercel and the app connect to Supabase safely.
Submit a booking and check Supabase. If the row appears, your backend is real.
After booking save works, add Stripe deposit payment. Do not add too many features before money works.
Supabase is the memory of the app. Without it, bookings disappear.
Supabase stores tenants, customers, bookings, services, prices, payment status, and webhook logs.
Customers enter names, phone numbers, emails, addresses, and schedules. That data must be protected.
These are the three main settings your app needs.
Never expose the service role key in frontend code. Never commit .env.local to GitHub.
Vercel is how people visit your app online.
Vercel takes your GitHub code, builds it, and gives you a live website link.
Stripe is the money part. It should come after the booking saves correctly.
The customer books, then Stripe collects the 50% deposit. After payment, the booking status changes.
If each cleaning business needs its own Stripe account, use Stripe Connect. That lets each business receive its own payments.
Payment affects trust and money. First make sure booking data saves correctly. Then add Stripe.
GHL should help with follow-up, but it should not run on every small click.
GHL can create contacts, send SMS/email, update pipelines, and notify the business.
Because webhook executions can cost money, only send webhooks on important events.
For ModaMaid, the webhook URL is the destination. The location ID is included inside the payload.
These are the problems that slowed us down. Avoid them in the next SaaS build.
Check these items whenever you build another system.
Move in the right order: idea β repo β app files β deploy β database β payment β automation β dashboard.
This is the sequence to follow so you do not get stuck.