Building a Preorder Link for Home Bakers in Pakistan
I'm building Dabba, a preorder link for home bakers in Pakistan. This post covers what I built, why, and what I'm still figuring out. The problem Home bakers take most of their orders in Instagram DMs and Wha
I'm building Dabba, a preorder link for home bakers in Pakistan. This post covers what I built, why, and what I'm still figuring out.
The problem
Home bakers take most of their orders in Instagram DMs and WhatsApp threads. When a weekend fills up, the details get scattered: flavours, addresses, dates, and payment screenshots are buried in chats. Customers keep asking "price?" and bakers end up overbooking because nothing enforces a daily limit.
What Dabba does
A baker shares one link. Customers:
- see the menu with prices and options
- pick an open day
- pay an advance and upload the screenshot
- get an order code and a tracking page
The baker gets one order list, a daily baking list, and one-tap WhatsApp messages for each step. When a day is full, it closes by itself.
The stack
- Frontend: React 18 with Vite, deployed on Vercel
- Backend: Supabase (Postgres, auth, storage)
- Business rules in the database: prices, dates, and daily capacity are re-checked in Postgres security-definer functions, so the browser can't fake them
- Rate limiting on the public functions
- Demo mode that runs fully in the browser when Supabase isn't configured
One decision I'm happy with: customers never read the orders table directly. Every write goes through a function that re-checks the rules on the server.
What's still rough
This is in beta. Order alerts only play while the dashboard is open, the address check depends on a map lookup that isn't always accurate for Pakistani addresses, and I haven't yet got payment or billing live. Those are the next things I'm working on.
What I'd like to hear
If you've built a booking or preorder flow, how did you handle capacity and payment proof? And if you bake, what would make a tool like this worth using?
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.