Browse documentation
All documentation
Getting started
Screens & scenes
Widgets
Integrations
The assistant
Household & presence
Reception & visitors
Menus, art & broadcast
Account, plans & data
API & self-hosting
Troubleshooting

Menu boards

How to build a menu in Mirra — sections, dishes, prices and photographs — put it on a screen through the menu board widget, and give kitchen staff a sign-in that reaches nothing else.

Menu boards belong to the business plans — Business Starter, Business Pro and Business Enterprise. The Menus page is in the top bar on every plan, but on a home plan it says “Menu boards are a business feature” and offers the business plans instead. The gate is on the kind of plan rather than its position in the list, so the top home plan does not reach menus by being expensive.

What a menu board is

A menu is the content — sections, dishes, prices, descriptions, photographs — held once, in one place. A board is a screen showing that menu through the menu board widget. The two are deliberately separate: one menu can appear on as many screens as you like, each in its own layout and each showing whichever sections you pick. The drinks list behind the bar and the mains above the pass can be one thing to edit and two things to look at.

There is nothing to publish. When you change a price, every paired screen on the account is told to re-read its configuration; the boards showing that menu change within seconds, and the ones that are not showing it read a configuration that has not changed for them and carry on as they were.

MenuSections, dishes, pricesMenu board widgetLayout, sections, columnsA scene on a screenEvery board, inseconds
From a price you typed to the wall it appears on

Creating a menu

Menus is in the top bar, beside Integrations. An owner and a menu-only member of staff both reach it — an owner is not locked out of the menus their staff keep.

  1. Open Menus and press New menu

    You are asked what the menu is called; “Lunch” is offered as a starting point. The menu is created with one section already in it, called Mains, so the editor opens on something you can type a dish into rather than on a blank page with an Add button.

  2. Press Settings beside the menu name

    This opens the currency and the allergen line. Press Done when you have finished.

  3. Rename it whenever you like

    The menu name is the field at the top of the panel. It is saved when you click away from it.

Menu name
What the menu is called in Mirra, and what the board prints across the top if the widget is set to show it. Up to 80 characters.Default: Whatever you typed when you created it
Currency
The symbol printed in front of every price, up to four characters, used exactly as you type it. It is a symbol, not a conversion — a menu priced in euros needs its prices typed in euros.Default: £
Allergen line
One line along the foot of the board rather than beside every dish. It is where “Please tell us about any allergies before ordering” goes, so that the space next to each dish stays readable from across a room. Up to 240 characters.Default: Empty — nothing is printed at the foot
Delete this menu
Removes the menu, every section and dish in it, and every dish photograph. Any board pointed at it goes blank.Default: —

Nothing on this page has a Save button. Text is saved when you leave the field, and toggles are saved when you press them. A board where the prices are right on the laptop and wrong on the wall — because a button went unpressed — is the failure worth designing against in a kitchen.

Sections and dishes

A section is a heading with an optional line under it: Starters, Small plates, “All served with rice and a naan”. A dish belongs to exactly one section and can be dragged to another.

  1. Press + Add a section

    A section called “New section” appears at the bottom. Type over the name, and use the second field for the line under the heading if the section needs one.

  2. Press + Add a dish inside the section

    A dish called “New dish” is added and its editor opens underneath the row, ready for a name and a price.

  3. Put things in order

    Every section and every dish has a drag grip (⠿) and a pair of arrows. Drag is quicker once you trust it; the arrows always work, work on a touchscreen, and cannot be half-completed.

  4. Move a dish to another section

    Drag it onto the section you want — dropping on the section itself puts it at the end, which is how you move the last dish out of one section or anything into an empty one. The Section field in the dish editor does the same thing without dragging.

An account can keep 40 menus, a menu can hold 60 sections, and a section can hold 200 dishes. Deleting a section deletes the dishes in it, and asks first.

Everything you can set on a dish

Open a dish by clicking its name in the list. The editor appears beneath the row, and the preview highlights that dish so a change of two words in a forty-dish list is findable rather than merely present.

Name
What the board calls it. Up to 90 characters, on one line.Default: New dish
Description
A line about the dish, shown by the layouts that carry descriptions. Up to 400 characters, and it may hold a line break.Default: Empty
Price
Typed in pounds and pence with the menu's symbol beside the field. “12.50”, “12,50”, “£12.50” and “12” all mean the same thing. Anything the field cannot read becomes blank, which the board treats as no fixed price rather than as an error.Default: Empty
Instead of a price
Replaces the figure entirely when it is filled in — “market price”, “from 5.95”, “½ 4.25”. Up to 40 characters.Default: Empty
Calories
A whole number, printed as “kcal” beside the dish where the widget is set to show them. Boards hide calories unless you ask for them.Default: Empty
Section
Which section the dish sits in. Changing it moves the dish to the end of the section you choose.Default: The section it was created in
Dietary marks
Short marks beside the dish name: VE vegan, V vegetarian, GF gluten free, DF dairy free, N contains nuts, 🌶 spicy, H halal, NEW new. They are always drawn in this order, so two dishes never show the same marks in a different sequence.Default: None
Photograph
One image per dish — Upload, then Replace or Remove. JPEG, PNG or WebP, up to 8 MB. Only the photo grid and single-dish layouts use it; the two list layouts ignore it entirely.Default: None
On / Sold out
The button on the dish row rather than in the editor, because it is pressed mid-service. A sold-out dish is greyed and labelled on the board rather than removed, so the board does not silently reflow and leave regulars hunting for something that was there at lunchtime.Default: On

The preview beside the form

The preview sits next to the editor rather than behind a button. The whole reason to put a menu on a screen instead of printing it is that you can see what you changed — a description that runs long, a section nobody meant to include, a photograph that turns out to be of the car park.

Above it is a layout switcher with the same four layouts the widget offers, and below it are five tick boxes. All of them change only the picture in front of you.

MenusLunch · Dinner · Drinksone tab per menuMenu name · SettingsOn a screenlive preview, 16:9Startersgrip · name · note · ↑ ↓ · DeleteDishesname · marks · price · On / Sold outPrice list · With descriptions · Photo gri…+ Add a dish · + Add a sectionPhotographs · Descriptions · Marks · Calor…
The menu editor, with the board it describes beside it
Photographs
Draws dish photographs in the preview, where the layout uses them.Default: Ticked
Descriptions
Shows the line under each dish.Default: Ticked
Dietary marks
Shows VE, GF and the rest beside each dish name.Default: Ticked
Calories
Shows kcal where a dish has a figure.Default: Unticked
Menu name
Prints the menu's name across the top of the preview.Default: Ticked — note that the widget hides it by default

A preview, not a setting. Each board chooses its own layout and its own sections where the widget is added to a screen, which is how one screen shows the drinks while another shows the same menu's mains.

Putting a menu on a screen

A menu on its own shows nothing. A screen shows it through the menu board widget, which is added to a scene like any other widget.

  1. Open Screens and pick the screen

    Then choose the scene you want the board to appear in.

  2. Under Add widget, find Information and press + Menu board

    It arrives six columns wide and six rows tall. A menu board that is legible across a room needs most of a panel; dropping one into a corner and shrinking it is a choice you can still make, but it is not the starting point.

  3. Choose the menu

    The Menu field lists the menus on this account. The remaining fields wake up once one is chosen — the sections and the featured dish are drawn from the menu you picked.

  4. Pick the sections this board should show

    Leave every section unticked to show the whole menu. Ticking a few is how one board shows drinks while another shows mains.

  5. Choose a layout and save the scene

    The screen picks the change up without being restarted.

What the menu board widget can be set to

Menu
Which of the account's menus this board shows.Default: None until you pick one
Sections
Which sections appear. Leaving all unticked shows the whole menu.Default: All sections
Layout
Price list — name and price, fitting the most on a screen. With descriptions — a line about each dish under its name. Photo grid — cards with a picture and a price badge. Single dish — one item filling the panel, which is what a specials board wants.Default: Price list
Columns
How many columns the board uses — automatic, or one to four. Automatic adds a column only when doing so makes the type bigger.Default: Automatic
Featured dish
The single-dish layout only. Left empty it shows the first dish that is on.Default: Empty
Photographs
Show a picture where a dish has one, or hide them.Default: Show
Descriptions
Show or hide the line under each dish. Ignored by the price-list layout, which is names and prices by definition.Default: Show
Dietary marks
Show V, VE, GF and the rest beside a dish, or hide them.Default: Show
Calories
Show kcal where a dish has a figure.Default: Hide
Menu name
Print the menu's name across the top. Hidden by default because the wall usually says it already.Default: Hide

The board sizes itself to its panel. Eight dishes on a large screen grow until they fill it; forty shrink until they fit. When shrinking runs out of room the board takes another column, and when columns run out it pages — about eleven seconds a page, with an indicator — so a reader can see there is more rather than believing the kitchen stopped after the eleventh dish. Nothing is silently cut off.

During service, and afterwards

Marking a dish sold out and putting it back are one press each, and both reach the screens on their own. Changing a price is the same: leave the field and the wall follows within seconds.

If you run a till or a stock system, one dish can be changed over the REST API as well — the API is available on the higher plans and needs an API key. It accepts the same fields the editor writes, including availability, so a kitchen tablet greying out a dish at eight o'clock is a plausible thing to build.

  • Editing a menu never needs a screen to be restarted or re-paired.
  • A screen that is switched off or off the network picks up the change when it next reaches the server.
  • Sold out is a property of the dish, so it greys out on every board showing that dish at once.

Deleting a menu deletes every section, dish and photograph in it, and any board pointed at it goes blank. There is a confirmation, and there is no undo.

A sign-in for the kitchen

A restaurant usually wants the person running the pass to change tonight's prices without also handing them the screens, the billing and the emergency broadcast. That is what the menus-only role is for.

There is no email invitation. An owner sets an initial password and passes it on; the new account changes it from their own page.

  1. Open Account and find “Who can sign in”

    From the account menu. It sits beside Change password, because they are the same question asked twice: who gets in, and with what. This is separate from Household, which is about faces the screens recognise — these are accounts with a password.

  2. Press Add a sign-in

    Fill in a name, an email address and an initial password of at least eight characters. The password is shown as you type it so you can read it out.

  3. Set “What they can reach” to Menus only

    The hint under the field says what that means: signs in, edits menus, and sees nothing else.

  4. Press Create sign-in and pass the password on

    They can change it from their own account page once they are in.

  • A menus-only account can reach the Menus page, its own account page, support and the policy pages. Everything else redirects back to Menus.
  • The refusal is enforced by the server, not by hiding buttons — a request to any other part of Mirra is declined with an explanation.
  • Changing somebody's role signs out any session they had.
  • You cannot change your own role or remove yourself, and neither control is offered for a super admin.

Related

  • Screen types, and what a screen can doWhat hardware can act as a Mirra screen, what each display reports about itself, and exactly what the capability record does and does not cover.
  • The scene editorThe scene editor is where you arrange a screen's widgets on a twelve-column grid, watch the real widgets render behind them, and push the result to the wall.
  • Every widget there isThe complete list of widgets Mirra ships with, grouped the way the scene editor groups them, with what each one shows and what it needs before it will show anything.
  • Sign-ins and rolesHow to give somebody their own password for your Mirra account, and exactly what each of the two roles — full access and menus only — can reach.
  • Plans and allowancesWhat each Mirra plan includes — screens, household members and assistant credits — how credits are metered, and what happens when you reach a limit.
  • The REST API and your keysHow to create an API key, what a single key is allowed to reach, and every endpoint the public v1 API exposes.
  • Emergency broadcastHow to take every screen on the account at once with one message, using a template and a two-step confirmation — and how to wire a physical button to a screen to do the same thing.