Two paths, one menu: photograph a stack of printed pages and let TableSpark read the sections, dishes and prices, or build the same structure by hand, dish by dish. Both land on the same live Menu page, and neither one has a separate publish step — save a change and it is on the site.
Sidebar → MenuMedia library included
Check the languages, dishes and prices
If your files use more than one language, a Menu languages picker appears first — choose up to two locales actually printed on the menu and set a Primary language. The product’s own line here is exact: “No translation is added.” TableSpark transcribes what is printed; it does not invent a translation for you.
Below that, every section the scan detected becomes its own editable card: a Section name field, then one row per dish with Dish name, Printed description, and Price — or, for a dish sold in more than one size, a separate price field per size. Every one of those fields is a live input, so fixing a misread name or a smudged price is a click, not a re-scan. Anything the scan was not confident about carries a visible “Review needed” flag naming the reason.
Once everything reads correctly, click “I reviewed the text and prices.” Saving the review keeps it on your account, so it survives a page refresh and stays ready for either action in the next step.
Apply the scan — to your menu, or your website
A completed review gives you two separate actions, deliberately kept on two separate cards so one click never changes more than you meant.
- Apply to menu — pick an Import mode, either “Add to current menu” or “Replace current menu contents,” then click Apply to menu. This only changes the sections and dishes on the Menu page; your website pages are untouched.
- Build my website — click Design my website to generate a full first-draft site — pages, layout, an opening story — from the reviewed menu, then preview it. Click “Use this design and build my site” to apply the website and the menu together in one step. Your own copy, photos and page addresses are kept.
Once a website is applied this way, TableSpark says so plainly: open the builder to check the AI-written copy before publishing. That review-and-publish step lives in Build a restaurant website.
Build and rearrange your menu by hand
Everything the scan gives you, you can also build with your own hands, on the same page. Click Add a section at the foot of the menu to start a new one. Every section card carries a grip handle for drag-reordering (or use the arrow keys), plus Channels…, Rename and Delete buttons. Channels… sets which order channels — Dine in, Collection, Delivery — a section is offered on by default; any dish can still override its section’s setting on its own. Inside a section, + Add dish adds a new dish, and the Edit or trash icon on any existing row opens it or removes it. Dish rows drag-reorder the same way, with their own grip handle.
Everything one dish can carry
Opened by Edit on any dish row, or by + Add dish, the dish editor is where the real detail lives. Fields appear top to bottom:
- Name, Price — and an optional Unit food cost (£), “used for private operating margin reports; guests never see it.”
- Description — the write-up guests see on the site.
- Options & extras — sizes, paid add-ons, required choices; this unlocks once the dish is saved once, so a brand-new dish needs that first save before sizes and extras can be added.
- Dietary — Vegetarian, Vegan, Gluten-free and Dairy-free toggle chips.
- Available for — Dine in, Collection, Delivery toggle chips; “all channels are open by default,” untick one to stop offering the dish there.
- Age restriction — “Age-restricted (18+)”; collection and delivery orders carrying the dish require photo ID (Challenge 25) at handover.
- Allergens — the 14 UK-regulated allergens as toggle chips, “shown on your live menu and on the service Menu board.”
- VAT — separate eat-in and takeaway rates, each defaulting to your restaurant’s standard rate from Settings; the price a guest pays is the same either way — VAT comes out of it, never on top.
- Tags, Spice level, Availability — custom tags, a 0–3 chilli-icon spice scale, and “Available” or “Sold out”, which still shows the dish on your site, struck through, but stops it being ordered.
- Feature on homepage — puts the dish on your homepage’s “Featured / Specials” board, once that board is set to show featured dishes.
- Photos — the first photo becomes the cover; add up to eight more and your site rotates through them. Add a photo two ways: Upload photo from your device, or From Media, which reuses an asset already in the Media library with no second upload.
Save the dish and it is live on the menu immediately — the same rule as everything else on this page.
Use the Media library
Every photo behind a dish, a page block or a gallery lives in one shared store: open Media in the sidebar — the address is /app/media. Drag images or video onto the drop zone, or click Upload — TableSpark accepts “JPG, PNG, WEBP, GIF, MP4 · up to 50 MB each.” Every uploaded asset appears in a grid with its filename or caption and a Delete action of its own.
The reciprocal link back to the dish editor is what makes this genuinely useful day to day: the “From Media” button in the dish photo picker reads from this same library, so one upload covers a dish, a page and a gallery without you ever uploading it twice.
Generate QR codes for your tables
TableSpark generates a scannable QR code for every dine-in table, and each one opens straight to your live ordering page — so a printed table-tent code doubles as a menu and an ordering entry point in one. This lives on the Dashboard — the address is /app/dashboard — inside the Tables card, not the Menu page.
Add table numbers or names as chips, and once at least one table exists, a Table QR codes block appears beneath them, stating something like “25 codes · scan straight to Order.” Click ▸ Preview the codes to expand the full grid in place, Export all to download every code, and Print sheet to open a print-ready sheet for the whole floor. A “Show the links as text” disclosure lists the raw URL behind each table’s code, for anyone who wants to embed the link somewhere other than a printed code.
Every code is resolved to whichever page on your site actually carries the ordering block — not guessed — so switching ordering on is what makes the codes work end to end; see Take online orders for turning it on and the guest side of the widget these codes open.
However the menu started — scanned from a stack of printed pages or built dish by dish — it lives in one place, updates the live site the moment you save, and prints a QR code for every table the moment you add one.
Next · hours and booking
Next: set your opening hours
With the menu live, set the hours, sittings and party rules that decide when guests can actually book a table.