The brief
Brian’s Cocktail Bar — a creative cocktail bar down an alley in Pantai Cenang, Langkawi. Small team, creative menu that changes often: new specials, seasonal rotations, items running out mid-week. The owner was calling someone every time the menu needed an update. Slow, expensive, and the menu online was always two weeks behind the menu on the counter.
What they actually needed was simple: a clean public menu page for customers, and a way for the owner to update it themselves without touching code or paying a developer every time a cocktail came off rotation.
What I built
A minimal two-surface application:
- A public menu page — fast, mobile-first, QR-friendly. Customers scan a code at the table, they see today’s menu. No sign-up, no friction, no 40-second splash screen.
- A private admin panel — the owner’s interface. Add, edit, reorder, hide, or delete menu items. Changes show on the public menu within seconds.
Data lives in Supabase, not in the code. That one decision means the owner can change the menu ten times a day without anyone touching the code, without a redeploy, without a phone call.
What I deliberately did not build
A lot of developers would have pitched online ordering, payment integration, reservation management, loyalty cards, inventory, and a table-booking module. And billed for six months of work the client didn’t need and wouldn’t use.
This build solves the actual pain: the menu goes stale, the owner has to chase someone to update it. Now they don’t. That’s the whole job.
The discipline here is scope, not stack. A cocktail bar in Langkawi doesn’t need a platform. It needs a menu that works.
What the client gets
- The menu they want, always up to date
- A tool simple enough that their manager can use it without training
- No monthly SaaS fees
- No redeploy cycle when they rename a drink
- No vendor lock-in — it’s their data, in their Supabase
This is the kind of project that rarely gets written up in case studies because it isn’t flashy. It’s also the kind of project that keeps small businesses running. Sometimes the right answer isn’t an ambitious platform. It’s a calm, durable tool that does one thing very well.