Turn a plain-text menu into a professionally designed, print-ready menu with AI food photography — in minutes. No designer, no Photoshop.
🌐 Live demo · ⚡ Self-host · 🧠 How it works
PlateAI is an open-source restaurant menu maker and AI menu generator. Paste your dishes and the AI writes appetizing descriptions, generates realistic AI food photography for each plate, and lays out a dense, print-ready menu — handling categories, columns and pagination automatically. Export a print-ready PDF, or run the whole thing yourself for free.
Great for restaurants, cafes, coffee shops, bars, bakeries and food trucks that want a beautiful menu without hiring a designer.
- 🧠 AI menu parser & copywriter — structures any plain-text menu and writes gourmet descriptions.
- 📸 AI food photography — realistic dish photos via Google Gemini / Imagen, with style presets and prompt-based edits.
- 🎨 AI layout engine — the AI designs a full print-ready menu (categories, two columns, pagination) — 60 dishes fit on ~3 pages, not 25.
- 🗂️ Page composer — compose pages yourself: pick which sections go on each page, add a cover page, even generate an AI cover background image.
- ✍️ Refine by sentence — “put desserts on their own page”, “use two columns”, “make descriptions smaller”.
- 🖨️ Print-ready PDF — server-side rendering (real Chromium) → crisp A4 / US Letter PDF.
- 💳 Optional paywall — a one-time Stripe payment to download (skip it entirely when self-hosting).
- 🔓 Open source & self-hostable — bring your own Google Gemini key, deploy anywhere Node runs.
- Parse — paste or upload your menu as plain text; the AI extracts dishes, categories, prices and writes descriptions.
- Photograph — generate realistic AI photos of each dish (optional), with style presets.
- Design — the AI lays out the whole menu in a print-ready style of your choice; compose pages or let it auto-flow.
- Refine — tweak it with a sentence, or edit text directly.
- Export — download a print-ready PDF (A4 / US Letter) or a ZIP of images + data.
Prerequisites: Node.js 20+ and a free Google Gemini API key — https://aistudio.google.com/apikey
git clone https://github.com/arturayupov/PlateAI.git
cd PlateAI
npm install
cp .env.example .env.local # then set GEMINI_API_KEY
npm run dev # → http://localhost:3000Production:
npm run build
NODE_ENV=production node dist/server.cjs💡 When self-hosting, the only required value is
GEMINI_API_KEY. The Stripe paywall is optional — if you don't setSTRIPE_SECRET_KEY, downloads are simply free.
See .env.example. Secrets never live in the repo — keep them in .env.local
locally and in your host's secret manager in production.
| Variable | Required | Purpose |
|---|---|---|
GEMINI_API_KEY |
✅ | Google Gemini key (text + image models) |
APP_URL |
for payments | Public URL for Stripe redirects |
STRIPE_SECRET_KEY |
optional | Enables the one-time download paywall |
STRIPE_PRICE_ID |
optional | The one-time price to charge |
ENTITLEMENT_SECRET |
optional | Signs download tokens (use a long random string) |
FREE_GENERATION_LIMIT |
optional | Free AI photos per visitor (default 6) |
PlateAI is a standard Node server and ships with a Dockerfile (with Chromium for PDF rendering).
It runs on Google Cloud Run, Render, Railway, Fly.io, or any VPS.
Google Cloud Run:
gcloud run deploy plateai --source . --region us-central1 --allow-unauthenticated \
--set-env-vars APP_URL=https://YOUR_URL,FREE_GENERATION_LIMIT=6 \
--set-secrets GEMINI_API_KEY=GEMINI_API_KEY:latestNo accounts, no logins. Free visitors get a limited number of watermarked AI photo previews
(FREE_GENERATION_LIMIT per IP); the clean originals stay on the server. A one-time Stripe Checkout
payment issues a short-lived, signed entitlement token that releases the clean, watermark-free
images and the print-ready PDF. This bounds API cost (rate limit) and prevents free clean downloads.
React 19 · TypeScript · Vite 6 · Tailwind v4 · Node/Express · Google Gemini (@google/genai) ·
Puppeteer (PDF) · jsPDF/JSZip (client export) · Stripe (optional).
- “Refine in Canva” export
- More menu styles & fonts
- Multi-language menus
- QR / digital menu output
Contributions are welcome! See CONTRIBUTING.md. Please open an issue to discuss significant changes first.
Found a vulnerability? See SECURITY.md. Never commit secrets — .env* is gitignored.
MIT © Artur Ayupov
Keywords: restaurant menu maker, AI menu generator, AI food photography, menu design software, menu maker, cafe menu maker, restaurant menu template, print-ready menu PDF, menu engineering, open-source menu designer.



