02
Naan Cafe
- Work
- Client work · Website and loyalty product
- Role
- Design and development. Rewards built with AI coding agents.
- Status
- Website live · Rewards built, launch on the owner’s schedule
It started as a WordPress website for a two-store restaurant in Fontana and Redlands, California. Then came the harder question: how do you bring regulars back without asking them to install an app?
01 The website
A WordPress site that gets people from hungry to a menu, a location or an order quickly, with mobile ordering flows and the restaurant’s own photography doing the selling.
02 The rewards card
Naan Cafe Rewards is a loyalty card with no app. A guest scans a code at the counter, joins in seconds with a name and a phone number, and gets a stamp before being asked anything else. Stamp four is a Mango Lassi or Samosas; stamp eight is a free combo.
03 Designed for the rush
The counter tablet shows a code that rotates every minute, so a screenshot can’t be reused. Staff never type during lunch: anything they do is one tap. Every stamp and redemption is an entry in an append-only ledger, reversible but never edited.
04 Run by the owner
Card size, rewards, cooldowns and approval rules are data the owner edits, not code. A dashboard shows visits, repeat rate and what rewards actually cost, per store.







What I cut
An app to install.The card lives in the browser.Verification before the first stamp.It waits until a reward.Points.Built, then switched off: stamps first.The Clover POS integration, for version one.
What’s built
- WordPress website for both locations
- Next.js, TypeScript and Postgres rewards platform
- Rotating counter QR with per-location cooldowns
- Append-only stamp and redemption ledger
- Owner dashboard with store, staff and tablet settings
- Light and dark themes, offline state, account deletion
Dashboard figures in these screens are seeded demo data, not the restaurant’s results.
Work with me
Have a project in mind?
Tell me what you’re building, what needs to work better and when you’d like to start.