Boom Online Ordering · POS · Setup

Dual-screen setup — the customer-facing display

Boom POS runs a second, patron-facing screen that mirrors the order live as your staff ring it — line items, running total, a "thank you" with points earned, and a rewards QR when the counter is idle. It rides on the same device as the register with no pairing and no internet needed. Here's how it works and exactly how to set it up on a dual-screen terminal.

01

How it works

Two browser windows on one machine, talking through the browser's own storage. The register writes the current order; the display window reads it and repaints — instantly, locally, offline-safe.

Primary screen · staff
🧾 The Register
/pos/<slug>

Where staff build the order. On every cart change it publishes the display state — idle, live order, or paid.

localStorage
key: boom-cfd-<slug>
cross-window
storage event
Second screen · customer
👋 The Display
/display/<slug>

Full-screen patron view. Subscribes to the register's updates and repaints the moment an item is added or payment lands.

Why this design
No network round-trip, no device pairing, no QR handshake — the two windows share one browser's storage, so the display keeps working even if the internet drops mid-service. The trade-off: both windows must be the same browser on the same machine, on the same restaurant address (same origin). It's a one-terminal, two-monitor setup — not two separate tablets.
02

What the customer sees

The display has three states and switches between them on its own, driven entirely by the register. Flip through them below — this is a scaled preview of the real rear screen.

idle · welcome + rewards

Idle shows today's specials + a join-rewards QR · Live Order mirrors the cart with a running total · Paid confirms, shows points earned, and a track-your-order QR. Then it returns to idle.

03

Hardware — three ways to get a second screen

Anything that gives the register a second display works. Pick by terminal type.

🖥️

Dual-screen POS terminal

Best · purpose-built

All-in-one units with a built-in customer rear screen (e.g. CLEO / Sunmi / Elo two-sided terminals). The rear screen is already a second display to the OS.

  • One box, no extra cables
  • Rear screen faces the customer by design
  • Cleanest counter footprint
🖥️➕

Tablet/PC + second monitor

Flexible · most common

Any Windows mini-PC or tablet with an HDMI/USB-C output driving a small monitor turned toward the customer.

  • Reuse a spare monitor
  • Set OS to Extend, not Mirror
  • 10–15" monitor is plenty
📱

Pole / rear customer display

Compact counters

A small pole-mounted screen wired as a second display. Same setup — it just lives on a stand instead of a stand-alone monitor.

  • Tiny footprint, eye-level
  • Great for tight counters
  • Must register as a 2nd display (not a USB pole-text unit)
Note
This is a full graphical screen, not a 2-line VFD pole-text display. It needs a real second display the OS can open a browser window on. Classic serial/USB 20×2 character poles won't render it.
04

Setup — step by step

Five minutes on the terminal. Do it once; the browser remembers the window position on most units.

Plug in and extend. Connect the second screen. In Windows display settings choose Extend these displays (not Duplicate/Mirror), and drag the customer screen to the correct side so the mouse flows naturally.
Open the register. On the primary screen, sign into the POS at https://<slug>.boomonlineordering.com/pos as usual.
Open the display in a second window. Open a new browser window (Ctrl+N) and go to https://<slug>.boomonlineordering.com/display. Same browser, same address as the register — that's what lets them talk.
Move it to the customer screen and go full-screen. Drag that window onto the second display and press F11 (fullscreen). The welcome/attract screen appears.
Ring a test order. Add an item on the register — it should appear on the customer screen instantly. Take a test payment and confirm the "thank you" + points screen shows, then returns to idle after a few seconds.
(Optional) Auto-launch. For unattended open, set the terminal's browser to launch both URLs in kiosk mode on boot and pin the display window to the second monitor.
Tip
Log the display window into the browser too if your terminal requires auth to reach the subdomain — but the display page itself is read-only and public (it only shows the order), so it never exposes register controls or totals history.
05

Where the content comes from

The display pulls branding and specials from the restaurant's own settings — nothing to configure separately.

🎨 Name · logo · accent color
The header brand, logo tile, and the warm accent gradient come straight from the restaurant's saved settings.
restaurant_settings → name, logo_url, value_json.site.colors.red
⭐ Idle-screen specials
The attract screen features your active promos — headline + subtitle. No promos? It falls back to a clean welcome + rewards pitch.
promo_deals (active) → title, subtitle
🧾 Live order + totals
Line items, quantities, mods, subtotal, tax and total are pushed live by the register as staff build the check.
POS register → cfdPost(slug, …)
🎁 Rewards QR
Every state shows a QR to the restaurant's ordering site so patrons can join rewards and track the order from their phone.
https://<slug>.boomonlineordering.com
06

Troubleshooting

SymptomCauseFix
Display stuck on welcome, never shows the orderThe two windows aren't the same origin — different subdomain, a www. mismatch, or a different browser/profile.Open both at the exact same <slug>.boomonlineordering.com address in the same browser window session.
Both screens show the registerDisplays are set to Mirror/Duplicate.Switch the OS to Extend these displays, then drag the display window across.
Order appears but is a few items behindRare — a storage write was missed while the tab was backgrounded.The next cart change re-syncs the full order; no action needed. Keep the display window un-minimized.
Wrong logo / colors / no specialsPulled from restaurant settings that aren't filled in.Set the logo, brand color, and active promos in the client portal → Settings.
"Thank you" screen never returns to idleExpected only if the register stays on the paid order.It auto-returns to idle ~9s after payment when the cart is cleared. Start the next order to reset immediately.
Nothing shows on a pole displayIt's a serial/USB character (VFD) pole, not a real second monitor.Use a graphical second screen — this is a full web page, not 2-line pole text.
Roadmap
Today the display is opened by navigating to /display in a second window. A one-tap "Open customer display" button in POS Settings (auto-fullscreen on the second monitor) is a small, worthwhile add — say the word and it goes in PosSettings.tsx.