Client taknak keluarkan duit banyak dekat website tapi nak custom landing page with booking. He dont want any commitment in domain and hosting/server because its just a seasonal event(For Raya 2026 only)
Check this out : My suggestion FLOW + STACK to client. Need any suggestion/enhancement/advice from you guys. (❌ No admin dashboard)
***Question: Is the stack or integration are okay? Ada any bad side tak if using this stack/integration yg free. Plus client cakap audience biasa2 je. Tak ramai tak sikit. From my experience free version should be okay right? ***
P/s: Tanya sebab first time dapat job yang nak all free hahah client just nak bayar development cost saja. Client punya studio setup dekat rumah je. So he just want to test market first.
1) Landing → Package & Add-ons
Customer:
Open landing page
1 package (base)
Select add-ons:
Physical photo
Frame
etc
Click Book Now
System:
Calculates displayed total (client-side)
Server will re-calc final amount on submit (security)
2) Select Date
Customer selects date.
System:
Calls availability API (server)
Server fetches Google Calendar events for that date range
Generates available slots (15-min windows with gaps like 10:00–10:15, 10:30–10:45, etc.)
3) Select Time
Customer picks a slot.
System:
Shows only available slots (exclude busy events + pending bookings)
On submit later, re-check availability to prevent race condition/double-booking
4) Customer Details
Customer fills:
Name
Phone
Email
Notes (optional)
etc
5) Payment Choice
Customer chooses:
Deposit / Full payment
System:
Shows QR/transfer details + exact amount to pay
6) Upload Receipt
Customer uploads proof (PDF/image).
System:
Upload to Supabase Storage
Locks file (immutable)
Saves receipt URL to DB
7) Submit Booking (Atomic Server Action)
Server does (in order):
Re-calc price server-side
Re-check slot availability
Create Google Calendar event as PENDING
Save booking in DB:
status = PENDING_PAYMENT
Write/Update Google Sheet row (1 booking = 1 row)
Send emails via Resend:
Customer: “Booking received (pending verification)”
Client (to Personal Gmail): “Verify payment” + receipt link + action buttons
Looks good so far tbh👍🏻, if they want to add on more feature components can try to meet up/discuss with the client how much the additional cost & complexity will add up
1 comment