Digital menu boards replace static printed menus with dynamic screens that update automatically from data sources — Google Sheets, POS systems, or inventory databases. SpinetiX powers menu boards with data-driven templates: design the layout once, connect to your data source, and prices, items, and images update without touching the screen. Daypart scheduling switches menus automatically by time of day.
When to Use This Guide
- Restaurants and cafés — daily specials, seasonal menus, price updates across multiple locations
- Quick-service restaurants (QSR) — high-volume menu boards with breakfast/lunch/dinner dayparts
- Corporate cafeterias — weekly rotating menus from catering companies
- Hotel dining — room service menus, restaurant boards, conference catering displays
How to Build a Menu Board
Step 1: Structure Your Data
Create a Google Sheet (or CSV/JSON source) with columns: Category, Item Name, Description, Price, Image URL, Available (TRUE/FALSE). This spreadsheet becomes the single source of truth. Staff update it from any device — the menu board reflects changes automatically.
Step 2: Design the Template
In Elementi, create a menu layout. Use the Table widget or custom list widget to map spreadsheet columns to visual elements. Design categories as sections with headers. Add item images, prices, and descriptions.
Key design principles for readability:
- Large item names — readable from 3–5 meters
- Prominent prices — high contrast, bold weight
- Minimal descriptions — 10 words max per item
- Category grouping — visual separation with color or dividers
Step 3: Add Daypart Scheduling
Use Elementi's playlist scheduler to show different menus at different times. Create separate playlist entries for breakfast, lunch, and dinner — each pointing to the same template but filtered by a "Daypart" column in your spreadsheet, or use entirely separate data sheets.
Step 4: Handle Edge Cases
Real menus have quirks. Build your template to handle them:
- Sold-out items — filter by the "Available" column; hide FALSE rows
- Currency symbols — include in the template, not the data (AED, SAR, USD)
- Long item names — set max-width with text truncation or auto-font-scaling
- Missing images — show a placeholder when Image URL is empty
Step 5: Publish and Automate
Publish to your SpinetiX players. Set data refresh to 1–5 minutes. From this point, the menu board runs autonomously. Update the spreadsheet → screens update. No walking to each screen. No USB sticks.
Key Parameters
| Parameter | Value | Why It Matters |
|---|---|---|
| Data Source | Google Sheets, CSV, REST API, POS | Flexible integration with existing tools |
| Refresh Rate | 1–5 minutes typical | Near-real-time price updates |
| Daypart Support | Time-based playlist switching | Automatic breakfast/lunch/dinner rotation |
| Multi-Location | Same template, different data per location | Chain consistency with local flexibility |
| Offline Mode | Last-known-good data | Menu stays visible during connectivity issues |
Common Mistakes
- Using video for menu boards. Video requires re-rendering every time a price changes. A data-driven template updates prices from a spreadsheet in minutes. Templates scale across 100 locations. Videos don't.
- Font size too small. Menu boards are read from 3–5 meters. Minimum font size for item names: 36px at 1080p. Prices should be even larger. Test readability from the actual viewing distance, not your desk.
- Not testing with real data volume. A demo with 10 items looks perfect. A real menu with 60 items overflows the screen. Design for your actual menu size — use scrolling or multiple pages for large menus.
- Hardcoding prices. Every price should come from the data source. Hardcoded prices become stale, create mismatches between screens, and require republishing for every change.