Saltbox

The kitchen

Every fridge, every day, written down.

A kitchen this size has to keep a daily record of its temperatures, and produce it when an environmental health officer asks. Saltbox keeps that record on a phone.

The app is Probe. Its rules are a small Kotlin module with no Android in it at all — which is why the same code can run here, in your browser, and tell you exactly what it would tell the chef standing in front of the fridge.

Try it

Type a temperature. The verdict, the limit it quotes, and the instruction underneath are all produced by the app's own rules.

What are you checking?

The law for this is at or below 8°C.

Too warm by 3.2°C.

The law requires at or below 8°C.

How long has it been like this?

There is still time

Use or throw away within 4 hours. Cooling it back down does not reset this.

This reading would be written into the diary, with what you did about it.

The same rules, on the phone

These are rendered from the real app — light and dark, and at twice the default text size, which is where an interface built without thinking about it usually falls apart.

The app's Today screen: a red panel reading 'One thing needs attention', then a list of five appliances with their readings — the under-counter fridge at 11.2°C marked 'Action', the rest marked 'OK'.
The day, in one sentence at the top.
The app's reading screen in dark mode: 11.2°C entered for the under-counter fridge, a red panel reading 'Too warm by 3.2°C — the law requires at or below 8°C', and a field asking what was done about it.
Dark. The entry will not save until the last field is filled.
The same Today screen at twice the text size. Each row has grown to two or three lines, and the list continues below the bottom of the screen.
At 2× text size. Rows grow, text stays whole, the list just gets longer.

How this works

The rules live in one Kotlin module that imports nothing — no Android, no user interface, and no third-party libraries at all. The Android app depends on it. This page imports it compiled to JavaScript. The test suite runs the same file on two different runtimes and checks it answers identically, because 2.0 prints as"2.0" in one and "2" in the other, and an app and a website that quietly disagree about a temperature are worse than either one being wrong on its own.

The figures are law rather than preference: 8°C for chilled food, 63°C for hot holding, and single tolerance periods of four and two hours. They cover England, Wales and Northern Ireland. Scotland's rules differ and are deliberately not modelled — a wrong number would look exactly like an answer.

This is a demonstration, not a compliance product. It has not been reviewed by an environmental health officer, and no automated check makes a kitchen compliant with anything.