Screen Builder
Configure the layout of every POS screen from a single settings page. Drag-and-drop button placement, toggle features on/off, and customize grid layouts — all saved per venue.
Navigate to: Settings > Screen Builder
15 Configurable Screens
| Screen | Key Settings |
|---|---|
| Register | 4 button zones (drag-and-drop), check panel width, item display size, quick pay toggles |
| KDS | Columns (1-8), gap spacing, ticket card size, all-day counts, age alert thresholds |
| Tables | Columns, table button size, elapsed timer, revenue display |
| Customer Display | Show modifiers, unit price, font size, idle content (promos/logo/specials/blank) |
| Online Ordering | Grid columns, hero height, AI chat toggle, favorites toggle |
| Menu Board | Columns, font size, show prices, show images |
| Drive-Thru | Columns, card size, vehicle description, elapsed timer |
| Bar Tabs | Columns, card size, show total |
| EOD | Tip pool section, cash denominations, denomination columns |
| Reports | Chart height, labor section visibility |
| Staff | Clock in/out, break tracker, wage info |
| Refunds | Void button, reopen button |
| Inventory | Grid columns, cost column, par levels |
| Reservations | View mode (list/calendar/timeline), notes |
| Handheld | Font size, quick actions |
Register Layout Builder
The register screen has the most configuration options, organized into four button zones:
Quick Pay Zone
One-tap payment buttons in the check panel footer.
Check Footer Zone
Primary action buttons at the bottom of the check panel.
Action Bar Zone
Function buttons in a horizontal bar below the register content (optimized for tablet thumb zone).
Top Bar Zone
Optional buttons above the register content area.
Check Panel Width
Control how much screen space the order panel takes vs. the menu grid:
| Setting | Width | Best for |
|---|---|---|
| Narrow | 320-380px | Maximum menu grid space |
| Standard | 420-480px | Balanced — recommended |
| Wide | 480-540px | Check-centric workflow, large item names |
Item Display Size
Control how items appear in the check panel:
| Setting | Text size | Best for |
|---|---|---|
| Compact | Small (14px) | High item count, experienced staff |
| Comfortable | Medium (16px) | General use — recommended |
| Spacious | Large (18px) | Readability, accessibility, training |
Receipt & Bill
Configure receipt output from Settings > Screen Builder > Register > Receipt & Bill.
Paper Width
Match the setting to your physical receipt roll. The width controls thermal column count, PDF page width, and browser print max-width simultaneously.
| Width | Thermal cols | PDF width | Browser print | Common hardware |
|---|---|---|---|---|
| 80mm (default) | 42 | 80mm | 302px | Epson TM-T88, Star TSP143/TSP654, most desktop receipt printers |
| 58mm | 30 | 58mm | 219px | Mobile printers (Star SM-S, Epson TM-P), small café countertops |
| 76mm | 40 | 76mm | 287px | Impact/dot-matrix kitchen printers (Star SP700), wide legacy units |
80mm is the most common. Choose 58mm for mobile/handheld setups. 76mm is typically only used with older impact printers.
To set paper width: Settings > Screen Builder > Register > Receipt & Bill > Paper Width > Save All
Receipt Sections
Toggle the 13 configurable receipt sections on or off:
| Section | Default | Notes |
|---|---|---|
| Header (venue name) | On | |
| Address | On | |
| Logo | Off | Upload logo in Venue Settings |
| Items | On | |
| Modifiers | On | |
| Qty & unit price | On | |
| Tax breakdown | On | |
| Suggested gratuity | On | 15% / 18% / 20% |
| Tip line | On | Blank line for handwritten tip |
| Signature line | On | |
| QR code | On | Links to tip, order, feedback, or custom URL |
| Barcode | Off | Order ID, order number, or payment ID |
| CC details | On | Last 4 digits and card brand (auto-filled from payment) |
| Footer message | On | Custom text (empty by default) |
Split Check
Split an order across multiple guests with visual paid/unpaid tracking.
Payment Flow
Defaults
Default layouts are automatically seeded when a venue is created. Every screen reads its config from the venue record and falls back to sensible defaults if no configuration has been saved.
Existing venues that were created before the Screen Builder was added are automatically backfilled with default layouts — no manual setup required.
How It Works
Screen layouts are stored in the venue's features.screen_layouts JSON field. Each screen reads its config on load via resolveScreenLayout(), which merges any saved overrides with built-in defaults.
The Screen Builder settings page provides a visual editor with: