Written scope, visible previews and a price agreed before work starts.
Product project
Van Lavino
Multi-tenant ordering for restaurants and cafes
A clear build, with a person accountable for every detail.
Every page has a job: call, book, order, visit or start a conversation.
Fast loading, mobile-first layouts and direct replies from Saad.

What it is
A multi-tenant ordering system for restaurants and cafes, with QR table ordering and a live kitchen screen.
The problem
Waiters carry orders between table and kitchen, mistakes happen at the handoff, and customers wait to pay. Aggregators solve it but take a cut and own the customer.
What I built
- QR table ordering from the customer's phone
- Razorpay payments with HMAC signature verification
- Real-time kitchen dashboard
- Four user roles
- Multi-tenant data isolation using Supabase row level security
Design and engineering decisions
- Payments are verified server-side with HMAC signatures, because a client-side paid flag can be forged and the kitchen would cook an unpaid order.
- Row level security rather than application-level filtering, so one venue can never read another venue's data even if a query is wrong.
- Separate roles for owner, manager, kitchen and waiter, because a kitchen screen should not expose revenue.
Verifiable proof
Built with
React · TypeScript · Supabase · Razorpay
Selected views
Screens







You never have to guess the next step.
Send a short note. I will ask the useful questions, share a direction and make the decision easy.
Tell me what is stuck
Share your business, your audience and the action you want more people to take.
See the direction first
Your homepage concept comes before payment, so the fit is clear before the build.
Launch with ownership
I build in checkpoints, then hand over the domain, code and logins in your name.
Have a business in mind?
Want to see what your new website could look like?
Send me your business name. I will design your homepage for free, then explain the next step clearly.
Working hours 10 am to 8 pm IST (UTC+5:30), Monday to Saturday. Replies within one working day.