Full disclosure: I'm a regular at The Busy Bean. It's a real coworking café in Dasmariñas, Cavite, and it's where a lot of my work — including parts of this portfolio — actually gets written, one iced latte at a time. So when the café needed a website, I wasn't guessing at requirements. I was the requirements.
The result is their marketing and operations site: a menu showcase, Mailchimp email subscriptions, and a password-protected admin dashboard on Supabase that lets the owners run everything themselves — no developer required after handoff.








The regular's brief
Being a customer first changed what got built. I knew the menu items people photograph, the questions first-timers ask, and the fact that the owners would rather update a price from their phone than message a developer. The site leads with what sells the place — the food, the space, the vibe — and buries nothing behind a contact form.

A menu that stays true
Café menus drift — prices move, items sell out, seasonal drinks appear. A static site goes stale in a month. Here the menu is data, rendered live, and owned by the people behind the counter.

Owners edit, nobody calls a developer
The whole point of the build is the password-protected admin dashboard. Behind a custom auth gate, the owners can:
Add an item, change a price, upload a new photo — it's on the live site the moment they hit save, backed by Supabase.
Mailchimp signups land in a list the owners actually control: CSV export for records, one-click Gmail blast for announcements.
Visit counts are tracked and visible in the dashboard, so promo days and slow weeks show up in numbers, not vibes.

The stack is deliberately boring in the best way — React 18 + Vite, plain CSS, Supabase, Mailchimp, and Vercel serverless functions. A café website should be cheap to run and impossible to break.
What comes next
The site is live and self-sustaining — which is the entire success metric. My ongoing involvement is strictly as a customer. If you're ever in Dasmariñas: the iced latte on the slate coaster is the correct order.