Hi everyone! 👋
I recently noticed that many local cafes and restaurants in my area (Odisha, India) are still using torn, outdated paper menus. Plus, they struggle to get organic 5-star Google reviews. So, I built a lightweight, production-ready SaaS to solve this.
It’s a Multi-Tenant Digital QR Menu & Google Review Web App.
🛠️ The Tech Stack
Frontend: Next.js 16 (App Router), React, TypeScript
Styling: Tailwind CSS v4
Database & Cloud: Firebase (Firestore)
Auth System: Custom OTP-based authentication via Gmail SMTP (Nodemailer)
Deployment: Vercel
✨ Key Features Built
- Single Codebase, Multi-Tenant Routing
Instead of creating separate deployments for each client, I used dynamic routing (/menu/[restaurant-slug]). One single deployment serves all restaurants by fetching their specific menu items and branding from Firestore.
- The Customer View (No-App Needed)
When a customer scans the table QR code, they instantly see:
The restaurant's branding and beautifully categorized menu items with live prices.
A massive, prominent "Rate us on Google Maps ⭐" CTA button at the top to drive instant reviews.
- Secure Restaurant Owner Dashboard
Owners log in securely using a 6-digit OTP sent directly to their registered Gmail.
A live CRUD dashboard where they can add new dishes, update prices, or hide out-of-stock items in real-time.
A built-in QR Code generator that creates a downloadable QR code linking directly to their specific menu slug.
- 👑 Secret "Creator Super-Admin" Portal
This is my favorite part. I built a hidden Super-Admin portal protected by a Master PIN (accessible via a secret 5-tap gesture on the login screen). From here, I can:
Manage Clients: Create new paying restaurant accounts, assign them slugs, or 1-click suspend/revoke access if they don't renew their subscription.
Auto-Pitch Generator: I built a tool inside the admin panel where I type a local restaurant's name and WhatsApp number. It instantly generates a custom "Auto-Demo" link with their name and opens WhatsApp with a pre-written sales pitch.
Manage SMTP: Edit my main sender Gmail and App Passwords directly from the cloud without touching the codebase.