Product project

Van Lavino

Multi-tenant ordering for restaurants and cafes

The BrassNorth standard

A clear build, with a person accountable for every detail.

Nothing hidden

Written scope, visible previews and a price agreed before work starts.

Useful from day one

Every page has a job: call, book, order, visit or start a conversation.

Responsive by default

Fast loading, mobile-first layouts and direct replies from Saad.

Van Lavino, the top of the page as a visitor first sees it.

Product · Multi-tenant ordering for restaurants and cafes

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

Open the Van Lavino demo

Built with

React · TypeScript · Supabase · Razorpay

Selected views

Screens

The Van Lavino homepage hero, "Where Every Crumb Tells a Story", beside a live order card showing items, the total and preparation progress.
The Van Lavino homepage hero, "Where Every Crumb Tells a Story", beside a live order card showing items, the total and preparation progress.
The Dine Different section, explaining the three steps: scan the table's QR code, build the order, then pay and be served.
The Dine Different section, explaining the three steps: scan the table's QR code, build the order, then pay and be served.
The Baked with Soul menu rail, with cards for baguette, sourdough, bagels, brown bread, focaccia and garlic bread.
The Baked with Soul menu rail, with cards for baguette, sourdough, bagels, brown bread, focaccia and garlic bread.
Three branch cards for Jubilee Hills, Financial District and Nalagandla, each with a phone number, opening hours and directions.
Three branch cards for Jubilee Hills, Financial District and Nalagandla, each with a phone number, opening hours and directions.
The journal section, with three posts on celebration cakes and summer mango drinks.
The journal section, with three posts on celebration cakes and summer mango drinks.
Customer reviews in a carousel under the heading What They're Saying.
Customer reviews in a carousel under the heading What They're Saying.
The site footer, with navigation, each branch's phone number and social links.
The site footer, with navigation, each branch's phone number and social links.
What happens next

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.

01

Tell me what is stuck

Share your business, your audience and the action you want more people to take.

02

See the direction first

Your homepage concept comes before payment, so the fit is clear before the build.

03

Launch with ownership

I build in checkpoints, then hand over the domain, code and logins in your name.

BRASSNORTH

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.