Register · Kitchen

A till that updates itself, carefully

We ship many releases a day; a till is opened once and left for a shift. How the register notices a deploy and reloads, and the six reasons it refuses to.


A till is opened at the start of service and left. A kitchen screen runs for days. On a phone, an app pinned to the home screen can hold the same loaded code for a week. Meanwhile the software behind them moves several times a day. Without help, every fix waits for somebody to think of refreshing a browser — which is not a thing a chef with a pan in each hand will ever think of.

The mechanism is small

The server reports which version it is serving. Once a minute, each open screen compares that against the version it actually loaded — read off its own script tag, so the two cannot drift apart by a forgotten edit. When they differ, the screen announces "new version — reloading" for a couple of seconds, and reloads itself.

The refusals are the feature

A page that reloads itself is a small idea with a large number of ways to be dangerous, so the decision lives in one tested module with its refusals written down. Never with work that has not reached the server — a tick made offline waits in an outbox, and reloading mid-flight risks exactly the loss the outbox exists to prevent. Never under a finger — a sheet open, a tap seconds ago, and the reload waits for quiet. Never during the take-it-back window after finishing a ticket, because those seconds are held on the device and nowhere else. Never on an unreadable answer, so an error page cannot read as "something new". And once per version — a stale cache must not produce a screen that reloads in a loop.

The payoff showed up this week: three till fixes shipped overnight, and every screen that mattered was running them by morning without anybody being asked to do anything. The alternative is a fleet of counters each frozen at whatever day somebody last restarted them — which is the state most of this industry quietly operates in.


Try it on tonight’s service.

Nothing to install, no card. Not better by the weekend? Close the tab.


This is about the register — see how it works.