本文へスキップ

Digital Menus

How to Create a Digital Menu for a Restaurant

To create a digital menu, turn your menu into structured data — categories, dishes, descriptions, prices, options and allergens — rather than a picture of a page. Add photos for the dishes guests ask about, choose where the menu will appear (phones via QR code, your website, a kiosk or a screen), make it readable on a small screen, and keep one copy of the data that every version reads from.

Step 1: Decide where the menu will be read

A "digital menu" can mean several things. Most restaurants need more than one of them, and they work best when they all come from the same data.

  • On guests' phones, opened from a QR code at the table.
  • On the restaurant's own website, for people deciding where to eat.
  • On a self-service kiosk or a tablet at the counter.
  • On paper — a printed version generated from the same data, so the two never disagree.

Step 2: Structure the menu as data

A digital menu is easier to keep correct when every dish is its own record rather than a line on a designed page. For each dish, collect:

What to record for each dish
FieldWhy it matters
NameWhat guests search for and what staff call it
Short descriptionExplains unfamiliar dishes; one or two sentences is enough
PriceShown next to the dish; changed in one place
Options and extrasSizes, sides and add-ons with their own prices
Allergens and dietary labelsLets guests decide safely and filter the menu
PhotoHelps with dishes guests do not recognize by name
AvailabilityLets you hide or mark a dish as sold out during service

If your menu exists today as a PDF, a Word document or a printed card, you do not need to type it in from scratch. Start from what you have, as the next step describes, and spend your time checking.

From a paper menu to a draft you check

Menu tools can read the dishes and prices from a photo of a printed menu, from a document or from your website and turn them into a draft. That draft is a starting point, not a finished menu: reading a photo can miss a line, merge two dishes or misread a price, and an AI model that fills in descriptions or allergens is guessing from the dish name. Expect to read every line before guests see it.

  • Photograph one page at a time, straight on, in even light, with the whole page in the frame and no glare on laminated cards.
  • A PDF made from a text document can be read as text. A scanned PDF is only a picture of the page, so import it as a photo instead.
  • If your website shows the menu as text, its link may be enough. A menu shown as an image on the website has to come in as a photo.
  • A spreadsheet with one row per dish (category, name, description, price) is imported as it is, with nothing to interpret.

Whatever the source, check the same things before you publish:

  1. Every price, against your till or your current price list.
  2. That no dish is missing: compare the draft with the paper menu, category by category.
  3. Every allergen, with the person who knows the recipes. A suggested allergen is not a checked one.
  4. Dish names and descriptions, so they match what actually arrives on the plate.

Step 3: Write descriptions and add photos

  • Describe what is on the plate, not how good it is — ingredients, cooking method, and what it comes with.
  • Keep descriptions short enough to read on a phone without scrolling past the dish.
  • Use your own photos of the dish as you serve it; a stock photo that does not match the plate disappoints guests.
  • Shoot in daylight or even light, from the angle a guest sees the plate, and keep the style consistent across the menu.
  • A recent phone is enough. Clean the lens, turn off the flash and photograph the plate on a plain surface.
  • If you do not have your own photo yet, use an image whose license allows commercial use, and credit the photographer when the license asks for it. Do not use a picture just because a web search found it: someone else may own it.

Step 4: Add allergens and languages

In the European Union, allergen information must be made available for food that is not prepacked, which includes dishes served in restaurants. A digital menu can show it next to every dish and let guests filter, which is easier for them than asking about each item.

If you serve visitors or a multilingual neighborhood, add the languages they read. Translate dish names and descriptions carefully — a wrong translation of an ingredient is an allergen risk, not just a style problem — and have someone who reads the language check the result.

Step 5: Make it readable on a small screen

  • Text must stand out from the background. Accessibility guidelines ask for a contrast ratio of at least 4.5:1 for normal text.
  • Avoid text placed over photos, and avoid very thin fonts.
  • Put categories in the order guests eat — starters, mains, desserts, drinks — and keep the number of categories manageable.
  • Check that the menu loads quickly on mobile data, not only on the restaurant Wi-Fi.

Step 6: Test, publish and keep it current

  1. Ask two or three people who do not know the menu to find a specific dish and an allergen on their own phones.
  2. Check every price against the till.
  3. Publish the QR codes and the website link only after the menu is complete.
  4. Make updating part of the routine: prices when they change, availability during service, seasonal dishes at the start of each season.

For the QR code itself, see how to create a QR code menu.

Doing it with Thmenu

In Thmenu you build the menu on the AI Menu Generator page of the panel. You can start from the menu you already have, check the draft there, and add it to one of your menus only when you are satisfied with it.

Import the menu you already have

  • From a photo: take or choose one clear photo of a menu page, up to 6 MB. Your browser scales it down before it is sent. Each import reads one photo, so a menu with several pages comes in page by page, and each import adds to the menu you choose and skips dishes that are already on it.
  • From a PDF or Word file: a PDF, a Word document (.docx) or a text file is read in your browser, and the panel shows the text it found before anything is generated. A scanned PDF has no text to read; the panel says so and points you to the photo option.
  • From your website: paste the link to your menu page. The page is fetched on Thmenu's server, and only public web addresses are accepted. If the menu on the page is an image, use the photo option.
  • From a spreadsheet: save it as a CSV file with the columns category, name, description and price, or start from the template the page offers. This import is mapped row by row, without AI.

Photo, document and website imports run as a background job. You can close the page; the draft is waiting when you come back. If the AI service is busy, the job pauses and continues on its own, and a job that keeps failing is tried up to three times before the page marks it as failed. A restaurant can make up to five AI menu requests a day, typed descriptions included, and only one job runs at a time. A request turned away because another job is still running also counts toward the five, so let the current job finish before you start the next one.

Check the draft before it goes on the menu

Nothing reaches your menu until you press Add to Menu. The draft lists the categories and dishes it found, and you can edit names, prices and descriptions or delete what you do not want.

  • If the AI response reached its size limit, the page warns that your menu may not have been read in full. Compare the draft with your menu and add what is missing by hand, or import the menu in smaller parts.
  • Allergens in the draft are suggestions. A draft that contains allergens can only be added after you tick the box confirming you have checked them, and changing an allergen clears that tick.
  • Prices are read from your menu, not checked against your till. Compare them before you add the draft.
  • When the menu already has translations, the new dishes are queued for translation into those languages after you add them.

Add dish photos

  • Upload your own JPG, PNG or WebP photos on the Products page, up to five per dish. A full-size phone photo is resized in your browser before upload, so you do not have to shrink it first.
  • Before uploading, the photo adjuster can set brightness, contrast and vibrance automatically; it runs in your browser, and what you see is what gets uploaded.
  • If you do not have a photo yet, the licensed image search shows results from Openverse and Wikimedia Commons whose licenses allow commercial use. When a license asks for credit, the guest menu shows the photographer's name.
  • After an import, dishes without a picture get a matching licensed picture from Thmenu's shared image pool when one exists, and the page tells you how many dishes still have none.

You can adjust colors and fonts in the theme editor. The same data drives every version: the menu guests open from the table QR code, a full-screen kiosk on a tablet, and a printable menu with allergens and a QR code back to the digital menu.

See how the Thmenu digital menu works.

Sources

  1. Regulation (EU) No 1169/2011 on the provision of food information to consumers — Article 44 (non-prepacked food) (accessed 7 October 2026)
  2. W3C — Web Content Accessibility Guidelines (WCAG) 2.1, Success Criterion 1.4.3 Contrast (Minimum) (accessed 7 October 2026)

About the author

Thmenu Team — Product team at Synaltix LLC, the company that builds Thmenu. The Thmenu team builds menus, ordering and payment tools for restaurants and cafés. Articles describe how things work in practice and, where Thmenu is mentioned, what the product does today.