Skip to content

About

A restaurant experience platform that is beautiful enough for diners, simple enough for independent restaurant owners, and operationally reliable enough for busy kitchens.

Topics

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Latest commit

Β 

History

1,939 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MenuMinute

The restaurant platform that starts free and grows with you.

Digital menus and permanent QR codes, free forever β€” then live table ordering, a kitchen display and a native POS when you're ready.


Live site Try the demo Docs

CI Next.js React TypeScript Tailwind PostgreSQL Node License: MIT

Why MenuMinute Β· Features Β· Screenshots Β· Plans Β· Quick start Β· Architecture Β· Docs Β· Contributing


MenuMinute owner dashboard

✨ Why MenuMinute

Most restaurant software makes you pay before you see any value. MenuMinute flips that.

πŸ†“ Free forever πŸ“± Mobile-first 🧱 One platform
Build a full menu and print a permanent QR code. Diners scan with zero sign-up. Free menus stay live even after paid access ends. Designed around the phone in a diner's hand and the tablet in the kitchen. Light, dark and system themes everywhere. Menu, QR, orders, kitchen and billing share one tenant-scoped domain β€” no stitching tools together.

🍴 Features

πŸ“‹ Menu Studio

Categories, dishes, variants, add-ons, dietary indicators and reviewed media, with real-time updates. Dish limits depend on the plan: 20 on Free, 200 on Ordering, 2,000 on Kitchen Pro.

Contracts β†’ Β· Studio 2 β†’

πŸ”³ QR Studio

Permanent service-point QR codes with print-ready tabletop layouts and high-density SVG / PNG output.

QR Studio 3 β†’ Β· Connections β†’

πŸ“„ Menu import

Turn an existing PDF or photo of a menu into a reviewed, editable digital one.

Import engine β†’ Β· Review β†’

πŸ›ŽοΈ Live ordering

Dine-in, table and pickup orders with a mobile cart and staff acceptance. Immutable order snapshots.

Order reliability β†’ Β· Counter service β†’

πŸ‘¨β€πŸ³ Kitchen Pro

A tablet-first Kitchen Display System with preparation stages and audible alerts.

Kitchen Pro β†’ Β· Live service β†’

πŸͺ‘ Dining floor

Table and floor view with live service signals so the front of house sees what needs attention.

Dining floor β†’ Β· Scan table β†’

πŸ”₯ Ember assistant

An in-product AI helper for menus and operations with grounded answers and budgeted usage.

AI & media policy β†’ Β· Dish intelligence β†’

🧾 POS & ledger

A working cashier POS with shifts, guest lookup, receipt printing and register closing. Certified statutory invoicing remains separately controlled.

POS overview β†’ Β· Contracts β†’

🌍 Worldwide by design

Multi-outlet scope, independent country, currency, locale and timezone. Platform billing in INR / USD.

Requirements β†’ Β· Launch β†’

Note

Free QR publishing, guest ordering, standard POS and multi-station Kitchen Pro are delivered; the product owner lifted the general Phase 4/5 release blockers on 9 November 2026. Plan entitlement and safe operational checks still apply. AI, legal fiscal issuance, push and Google Play have separate readiness controls. See current release status, roadmap and feature activation.


πŸ–ΌοΈ Take a look

Menu Studio QR Studio
Menu Studio QR Studio
Orders Kitchen display
Orders Kitchen display
Dining floor Reports
Dining floor Reports

What diners see

Public menu

Public menu on mobile Dish detail on mobile Orders on mobile

Want to click around? The public demo is a 236-dish sample restaurant with one-click entry that resets every 30 minutes.


πŸ’³ Plans

Plan Price Limits (per outlet unless noted) Available to buy
Free β‚Ή0 forever 1 outlet, 20 dishes, 2 QR codes, 2 tables, up to 100 guest orders a month Yes. Permanent QR menu, no diner sign-up
Ordering β‚Ή119 / month (also $5) 1 outlet, 200 dishes, 25 QR codes, 10 tables, no order cap Self-service checkout, when the payment switches are on
Kitchen Pro β‚Ή499 / month flat (also $20) Up to 10 outlets, 2,000 dishes, 200 QR codes, kitchen display and stations Self-service with configured provider and entitlement; otherwise by request
Dedicated β‚Ή30,000 / month, or $3,000 on-premise Virtually unlimited; own domain and branding set up with the team By contract (contact)

Free permanent QR menus stay live even after paid access ends, and printed QR links survive every downgrade. Free guest-order intake is subject to the configured owner entitlement and the 100-order monthly cap. Prices and limits are read from src/modules/billing/catalog.ts and src/modules/plans/catalog.ts by the pricing page, billing page and checkout alike.

Whether a plan can be bought is decided at runtime, not in copy. Razorpay checkout is off by default in the code (and for self-hosters), needs verified provider configuration, and Kitchen Pro also needs RAZORPAY_KITCHEN_ENABLED plus the database commercial authority. The general historical Phase 5 issue gate is superseded by the owner; provider-specific authorization is not. The pricing page reads those switches, so it shows "Get Ordering" / "Get Kitchen Pro" only when checkout can complete and otherwise offers "Start free for now" / "Request early access". USD prices are for enquiries only; there is no USD checkout. See commercial availability and plans and limits.


πŸš€ Quick start

You'll need: Node.js 24 LTS (pinned in .nvmrc), pnpm 11 (pinned via packageManager), and Docker (for the isolated PostgreSQL + Redis test stack).

git clone https://github.com/baba-dev/menuminute.git
cd menuminute
pnpm install --frozen-lockfile
cp .env.example .env.local

Start the dependencies, load your environment and apply the reviewed migrations:

pnpm infra:test:up
set -a && source .env.local && set +a
NODE_ENV=test pnpm exec tsx scripts/test-bootstrap.ts
pnpm db:migrate

Optionally seed a non-production sample restaurant, then run the app:

ALLOW_DEMO_SEED=true DEMO_PASSWORD="choose-a-unique-12+-char-password" pnpm db:seed
pnpm dev

Open http://localhost:3000.

πŸ”‘ Local demo access

The seed creates one sample restaurant for local use only. Never run it against production.

Login http://localhost:3000/login
Email demo@menuminute.com
Password the DEMO_PASSWORD you passed to the seed
Sample restaurant Spice Route Kitchen (one dish)
Public menu http://localhost:3000/m/demo-spice-route-kitchen-v1
πŸ§ͺ Testing and quality checks
pnpm test         # unit + integration (Vitest)
pnpm typecheck    # strict TypeScript
pnpm lint         # ESLint, zero warnings
pnpm test:e2e     # Playwright browser tests

Strategy and conventions: testing strategy Β· development workflow Β· environment variables.


πŸ—οΈ Architecture

Layer Technology
Framework Next.js App Router, React 19
Language TypeScript (strict)
Styling Tailwind CSS v4 with custom design tokens
Database PostgreSQL via pg, tenant-scoped transactions
ORM / migrations Drizzle ORM, versioned append-only SQL
Queues / cache Redis + BullMQ durable jobs
Auth Better Auth database sessions
Validation Zod v4
QR qrcode β€” SVG and PNG output
Images Sharp
Testing Vitest, React Testing Library, Playwright
Delivery Native ARM64 CI, immutable releases, Nginx + systemd
src/
β”œβ”€β”€ app/            # App Router pages and route handlers
β”‚   β”œβ”€β”€ (dashboard)/    # Restaurant management portal
β”‚   β”œβ”€β”€ (public-menu)/  # Mobile-first diner menu
β”‚   └── api/            # Menu, auth and ordering endpoints
β”œβ”€β”€ components/     # UI and marketing components
β”œβ”€β”€ db/             # Schema, migrations, scoped transactions
β”œβ”€β”€ lib/            # Config, errors, utilities
└── modules/        # Business services: menus, orders, qr, media, billing, ai …

Go deeper: architecture guide Β· database Β· decisions (ADRs) Β· security.

🎨 Design language: Ink & Ember

Vivid colour on white, gold and orange on charcoal, expressive restaurant typography and selective chef's-note details. Light, dark and system modes apply across marketing, auth, guest, owner and kitchen surfaces.

Design system Β· Buttons Β· Feedback and motion Β· Brand assets

🚒 Deployment and release safety

Merges to main flow through native ARM64 CI (quality, TypeScript, isolated PostgreSQL/Redis integration, production build and browser checks), a single aggregate gate on the same SHA, an immutable published release and a gated production activation that verifies the public SHA. Releases that change the schema first create and verify an encrypted off-host backup. Runtime media is private local storage; backups go to object storage.

Start with the production runbook, then deployment, CI/CD 2.0 and automatic migrations. Don't follow first-install examples on an already-live host.


πŸ“š Documentation

🧭 Start here

πŸ› οΈ Build

🎨 Design

🍽️ Product

πŸ” Security and trust

🚒 Operations

πŸ—‚οΈ Delivery phases
Phase Focus Reference
1 PostgreSQL, Better Auth, scoped tenancy Foundation
2 Organizations, outlets, roles, durable jobs, billing entitlements Core domains Β· Operations
3 Menu Studio, reviewed media, permanent QR, public menu Contracts Β· Operations
4 Merchant readiness Plan Β· Acceptance Β· Ops evidence
5 Kitchen and ordering Plan Β· Acceptance

🀝 Contributing

Contributions are welcome.

  1. Read AGENTS.md and the development workflow.
  2. Open or pick up an issue.
  3. Branch from main, keep changes focused, and run pnpm lint, pnpm typecheck and pnpm test before opening a PR.
  4. Fill in the pull request template.

Found a security issue? Please report it privately rather than in a public issue β€” see security.


πŸ“„ License

Released under the MIT License.


Built for restaurants that want to start small and grow without replatforming.

🌐 food.bababuilds.com Β· ⭐ Star this repo Β· πŸ› Report a bug

About

A restaurant experience platform that is beautiful enough for diners, simple enough for independent restaurant owners, and operationally reliable enough for busy kitchens.

Topics

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages