Marta's website is live. People find her, scroll through her photos of dogs in Madrid, and want to book a session. Today we will show you how to give them a way to do it.
A form connected to Supabase, a database where every submission gets stored automatically. Someone fills in their name, their pet's name, and a preferred date. Every submission goes straight to Marta. She can check whenever she wants. No email chains, no third-party booking tool, no monthly fee. Just a form that works.
-
SupabaseSupabase is a database, a place where your project stores information. Think of it as a spreadsheet that lives on the internet and that your website can write to automatically. Every time someone submits the booking form, that information goes to Supabase. The free plan is more than enough to start.
A booking form on Marta's landing page with five fields. When someone submits it, the data goes directly to Supabase and Marta can see it in her dashboard.
Email: so Marta can get back to them
Pet's name: because Marta loves knowing who she is going to meet
Preferred date: a rough idea of when they want the session
Message: anything else they want to add
bookings. Add five columns: name, email, pet_name, preferred_date, and message, all as text type. Supabase adds an ID and timestamps automatically. Save the table.SUPABASE_URL and SUPABASE_ANON_KEY. Your code will read them from there.Most issues here come from permissions or environment variables. Both are easy to fix once you know where to look.
-
The form submits but nothing appears in SupabaseCheck your table policies. If there is no policy that allows anonymous inserts, Supabase silently rejects the submission without showing an error. Go to Authentication, then Policies, and confirm the bookings table has an insert policy for anonymous users.
-
The form works locally but not on the live siteThe environment variables are probably missing in Vercel. Go to your Vercel project settings, confirm
SUPABASE_URLandSUPABASE_ANON_KEYare there, and trigger a new deployment. -
The AI put the keys directly in the codeThis happens. Before you save your changes to GitHub, look through the code for anything that looks like a long web address or a string of random characters. Those are your credentials sitting exposed in the code. If you find them, delete them, add them to Vercel as environment variables following the steps above, and tell the AI to read them from there instead.
Marta's site now does something. It is not just a portfolio anymore. It is a tool that works for her while she is out photographing dogs in the park.
Create your Supabase project, build the bookings table, store your keys safely in Vercel, and ask your AI assistant to wire it all together. Do not move on until you see a real submission appear in your Supabase dashboard.