Royal Catering
A full rebuild of an established Kuwaiti catering brand's online booking experience.

Where they were stuck.
Migrations kill operations. The back-office team had daily Excel workflows they depended on — custom columns, specific formats, muscle-memory shortcuts. Any new system that forced them to relearn would have been rejected regardless of how beautiful it looked. Meanwhile, the four service lines each had their own logic that couldn't be forced into a single generic flow: breakfast uses 6 packages, full buffets use 8, mini buffets use 7, and ready-made packages use 9 — and the price calculation differs across all of them.
How we approached it.
We built one shared booking engine with per-service variation hooks — so the customer flow feels consistent across all four lines but the underlying logic adapts. Then we studied the back-office team's existing spreadsheet templates column by column and replicated them exactly in our XLSX export. On launch day, the team opened the new system, exported their orders, and the spreadsheet looked identical to what they'd been using for years. Admin authentication is Supabase Auth — simple, secure, no custom user management to maintain. End-to-end Zod validation from client to server ensures bad data never enters the database.
Foundations of the brand.
A focused palette and a typographic pair that the storefront, the product page, and the admin dashboard all draw from — so the system reads as one voice across every screen.
Heritage serif anchors the brand; modern sans handles operational UI.
See it running.
An embedded preview of the live site — interact with it directly, or open the full experience in a new tab.
Visit royal-catering.vercel.appLive preview. If the embed is blocked, use the visit button above.
The system, by feature.
4 Service Lines
Packages, full buffets, mini buffets, breakfasts — each with its own step count and validation rules.
Map Location Picker
Leaflet-based map for customers to pin their event location with address lookup.
Excel Export
Bulk order export to XLSX matching existing back-office templates — zero workflow disruption.
Zod Validation
End-to-end type-safe form validation from client to server with clear error messages.
Screen by screen.

How it's built.
A modern, type-safe stack chosen for performance and long-term maintainability.
What it adds up to.
What changed.
Zero-day adoption: the back-office team switched on launch morning with no retraining. The customer-facing site now loads in under 2 seconds (from 8+ seconds on legacy) and supports proper Arabic SEO — which immediately moved organic traffic in the right direction.