Role-aware guide hub for the docs this user should actually see.
This page is designed to live inside the app and also print cleanly. Use the role switcher before printing so restaurant owners, public reviewers, and admins only receive the right documentation.
Visible guides11
Current roleAdmin
Admin data tools6
PDF-readyYes
Analytics flow1
Guide 1 - Guest or restaurant reviewer
Menu Preview Guide
Use this guide to open a restaurant menu, browse categories, inspect dishes, and return to the restaurant website.
Step 1
Open the menu
Use the restaurant menu link or QR code. If the page is still in private preview, enter the temporary preview password supplied by the platform owner.
Step 2
Browse categories
Use the category cards, search field, or sticky tabs to move through sections such as Appetizers, Mains, Desserts, and Drinks.
Step 3
Open a dish
Select any item to view the cinematic dish slide with image, price, description, ingredients, allergens, nutrition, and navigation controls.
Step 4
Return to the restaurant
Use the Website action when available to go back to the restaurant owner's official website. Other actions may include Call, WhatsApp, Directions, Reserve, or Order.
Guide 2 - Platform admin
Admin Dashboard Guide
Use the admin dashboard to control platform-level limits, prepare subscription tiers, and keep the business model flexible.
Step 1
Open the admin console
Use /admin locally or admin.inviteto.menu in production. This area is for the platform owner, not restaurant clients.
Step 2
Edit subscription limits
Set how many restaurants and menu items each plan can create. Starter, Professional, and Enterprise are controlled from this screen so limits can change without code edits.
Step 3
Save the subscription structure
After changing restaurant or item limits, save the structure. In local demo mode these values stay in browser storage. In Supabase mode they save to the plan_limits table.
Step 4
Use limits as a sales tool
Keep Starter simple, make Professional strong for one serious restaurant, and reserve multi-location scale for Enterprise.
Step 5
Approve allergen reviews
Use each restaurant operations card to review active menu items. Approve allergen information only after the owner has confirmed it, or reopen the review when a dish needs clarification before guests see it as approved.
Guide 3 - Restaurant owner or account manager
Restaurant Owner Guided Setup Guide
Use the guided setup to complete one clear task at a time, then return later to edit the finished restaurant dashboard.
Step 1
Start with the guided setup
On the first visit, the owner sees one setup slide at a time instead of the full dashboard. Each slide explains the current task and keeps the Continue button locked until the required fields are complete.
Step 2
Complete restaurant information
Fill in the restaurant name, slug, tagline, location, market, menu language, currency, price display, owner website backlink, and hero image. These fields build the public identity of the restaurant menu.
Step 3
Upload images first
For hero, category, and dish images, use Upload as the primary action. If an image is already hosted somewhere else, use the image URL field after the word or.
Step 4
Create categories
Add at least three active categories such as Appetizers, Mains, Desserts, or Drinks. Categories control the menu tabs and the category selection experience.
Step 5
Add complete menu items
Add dishes with category, name, slug, description, price, image, ingredients, allergens, calories, protein, carbs, and fat. Item prices automatically use the restaurant currency and the restaurant's chosen price display style.
Step 6
Wait for allergen approval
New, edited, or duplicated items are marked as needing owner allergen confirmation. Confirm the allergens from the Today tab or the item edit form, then wait for the platform admin to approve them.
Step 7
Enable private preview
Set a temporary preview password and expiry date so the owner can review the unpublished menu before it becomes public.
Step 8
Use the dashboard on later visits
After setup is complete, later visits open the real dashboard for edits, adding menu items, previewing, publishing, QR sharing, and quality checks.
Step 9
Use Today for daily service
Open the Today tab when service starts. It gives the owner a simpler view for price tweaks, short description changes, sold-out status, and quick hide/show controls without entering the full menu builder.
Guide 4 - Sales or setup workflow
Prospect Demo & Sales Kit Guide
Use this workflow to create personalized demos for restaurants that currently have weak PDF menus or poor mobile menu presentation.
Step 1
Create a prospect demo
Enter the restaurant name, slug, current menu URL, observed problem, improvement angle, and optional contact links. The app clones the template menu into a ready demo.
Step 2
Document the before/after story
Use the before/after audit fields to write why the demo exists. Example: before is a PDF menu with weak mobile readability; after is a cinematic, QR-ready, allergen-aware mobile menu.
Step 3
Share the demo
Use Copy outreach URL, Copy WhatsApp pitch, Copy email pitch, or the QR code. These links are source-tagged so demo opens can be separated by channel later.
Step 4
Track interest
Use Demo engagement to see menu opens, QR opens, CTA clicks, and the last opened time. Use prospect status to move the restaurant through Draft, Ready, Sent, Interested, Won, or Not interested.
Step 5
Use presentation mode
Open Presentation to show the restaurant owner the demo story, readiness score, QR code, engagement, and notes in one print-friendly surface.
Guide 5 - Owner review workflow
Private Preview Guide
Use private preview when a restaurant page should be temporarily accessible for review without being publicly published.
Step 1
Enable private preview
In the guided setup, open the private preview step. Turn on private preview, set a temporary password, and choose an expiry date.
Step 2
Save preview access
Save the preview settings. The preview password is stored as a hash, and the reviewer must enter the password to open the unpublished menu.
Step 3
Share the preview link
Use Open preview to test the link. In production, the same pattern can work on the restaurant subdomain before public launch.
Step 4
Publish when approved
Once the owner approves the menu, publish the restaurant so the page no longer needs private preview access.
Guide 6 - Launch workflow
Publishing & QR Guide
Use publishing and QR tools to turn a restaurant demo into a shareable public menu page.
Step 1
Check readiness
Before publishing, finish the guided setup: restaurant information, hero image, at least three categories, complete menu items, and private preview approval.
Step 2
Publish the restaurant
Use the final guided setup step or the later dashboard to publish. A published restaurant opens on its hosted restaurant subdomain.
Step 3
Use the hosted URL
The public format is restaurant-slug.inviteto.menu. Use this hosted link for the restaurant website button, QR code, social posts, staff review, and guest sharing.
Step 4
Use QR codes
The QR code points to the hosted menu URL with a source tag. This helps separate QR opens from direct link opens in the engagement panel.
Step 5
Prepare share assets
Use Share Assets to copy the menu URL, website button HTML, social caption, table-card copy, owner handoff note, and QR target from one place.
Step 6
Place QR after approval
Use QR codes on tables, windows, receipts, printed cards, Instagram highlights, Google Business Profile posts, or hotel lobby materials.
Guide 7 - Admin local demo and data movement
Admin Imports & Local Data Guide
Understand admin-only local data tools so demo data, prospect demos, and future Supabase data are not confused.
Step 1
Import demo menu
This creates the built-in Verdant Table sample menu in the current workspace. It is useful for platform testing, demos, publishing, private preview, and QR workflows.
Step 2
Create prospect demo
This is not a generic import. It clones the template menu into a new restaurant slug and adds prospect sales fields such as current menu URL, observed problem, and improvement angle.
Step 3
Export JSON
In local demo mode, Export JSON downloads the whole browser workspace: profile, plan limits, restaurants, categories, items, private preview settings, prospect notes, and local engagement counters. This is an admin/testing utility, not a normal restaurant owner task.
Step 4
Import JSON
Import JSON restores a previously exported local workspace. Use it as an admin backup or to move a local demo between browsers before Supabase is connected.
Step 5
Upload image
In local mode, image upload stores the file as a browser data URL. In Supabase mode, images upload to the menu-images storage bucket and the public URL is saved.
Step 6
Future Supabase import
When live Supabase mode is activated, data should be migrated deliberately into Supabase tables instead of relying on local browser storage.
Guide 8 - Admin and business planning
Subscription Limits Guide
Use plan limits to shape the value ladder without locking the business into hard-coded tier restrictions.
Step 1
Starter
Keep Starter small and useful for evaluation. It can allow one restaurant and a limited number of menu items.
Step 2
Professional
Use Professional for one serious restaurant with a fuller menu, private preview, QR sharing, prospect polish, and analytics.
Step 3
Enterprise
Use Enterprise for multi-location restaurants, hotel groups, agencies, or clients who need several restaurant pages.
Step 4
Change limits from admin
The admin dashboard controls restaurant and menu item limits per plan. This lets the offer evolve after real sales conversations.
Guide 9 - Technical setup
Supabase Activation Guide
Use this guide when moving from local/demo mode to a real Supabase-backed deployment.
Step 1
Create the Supabase project
Create a Supabase project and run the schema.sql file. This creates profiles, plan limits, restaurants, menu categories, menu items, and the preview/tracking fields.
Step 2
Add environment variables
Set NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY for browser access. Set SUPABASE_SECRET_KEY or SUPABASE_SERVICE_ROLE_KEY server-side only for private preview, tracking routes, and smoke tests.
Step 3
Add preview secret
Set PREVIEW_SESSION_SECRET in production so private preview cookies are signed independently from Supabase keys.
Step 4
Create storage bucket
Create the menu-images bucket and configure the upload policy that matches the owner workflow.
Step 5
Test end to end
Test sign-in, create restaurant, import demo, edit category, edit item, enable private preview, publish, open QR URL, and check engagement counters.
Step 6
Check production health
Run pnpm production:check before deployment and use /api/health after deployment for uptime monitoring.
For the first launch, keep WordPress/EasyWP on inviteto.menu and point only owner, admin, and wildcard restaurant subdomains to the app. Move the root domain later only after the app landing page is ready.
Step 2
Create DNS records
In Namecheap DNS, point owner.inviteto.menu, admin.inviteto.menu, and *.inviteto.menu to the VPS or Coolify proxy. Keep @ and www on EasyWP if WordPress remains the public marketing site.
Step 3
Bind Coolify domains
Add owner.inviteto.menu, admin.inviteto.menu, and *.inviteto.menu to the Coolify app and enable HTTPS for each domain.
Step 4
Set production environment
Use NEXT_PUBLIC_PLATFORM_DOMAIN=inviteto.menu, Supabase browser keys, a server-only Supabase secret key, and PREVIEW_SESSION_SECRET in the production app environment.
Step 5
Configure Supabase redirects
Set the production site URL to https://owner.inviteto.menu and allow redirects for /owner, /owner/*, /admin, /admin/*, plus local development owner URLs.
Step 6
Verify tenant routing
Open owner.inviteto.menu, admin.inviteto.menu, and a test restaurant subdomain such as verdant-table.inviteto.menu. Confirm /api/health, private preview, publish, QR, and Share Assets.
Guide 11 - Admin deployment rehearsal
Local Production Simulation Guide
Run the app locally like production before using Supabase billing, Coolify, DNS, or a VPS.
Step 1
Use the simulation env example
Copy .env.production.local.example to .env.production.local only when you want a local production rehearsal. Leave Supabase keys blank to stay in local/demo mode.
Step 2
Start the production runtime
Run pnpm production:simulate. This performs a local-tolerant production check, builds the app, and starts the standalone server on port 3001.
Step 3
Run route checks
In a second terminal, run pnpm production:simulate:check. It checks /api/health, owner.localhost, admin.localhost, the restaurant subdomain, and the path-based menu route.
Step 4
Open browser URLs
Manually open localhost:3001, owner.localhost:3001, admin.localhost:3001, verdant-table.localhost:3001, and localhost:3001/api/health.
Step 5
Confirm share behavior
Share Assets and QR targets should still show inviteto.menu hosted URLs while local preview buttons continue to open localhost URLs.