Pick a crate of lager, shandy or cider and we will knock 50% off a box of crisps. Take the crate
The reference

Five inputs, five sources, five failure modes.

This is the reference page. Every live input on this site, where it comes from, how long it is held, what it changes, and precisely what the visitor sees when it is not there.

Live

The five, as they are right now.

Key, current reading, source and time to live. The readings are seeded placeholders in this build.

Right now at OX7

Watching the wheat

Harvest is coming

  • Date and season Autumn · day 242 System clock, server-sideno TTL
  • Weather at OX7 14°C, light rain Met Office DataPoint or equivalent15 min
  • Crop growth stage Winter barley, BBCH 92 Farm ops entry24 h
  • Live yield 4.9 t/ha Weighbridge, or an ops entry when the bridge is down1 h
  • Series window Closed · series six in production Manual flagno TTL

20°C at the farm shop, and dry for now

Winter barley running at 4.1 tonnes the hectare

Chapter 41 is open. Forty came before it

All five are produced by one PHP function. Making them real means replacing that function and nothing else, which was the point of writing it that way.

All five

Every input, in full.

InputSourceTTLWhat it changesWithout it
Date and season System clock, server-side no TTL Field palette and illustration set swap Cannot fail — it is the server clock
Weather at OX7 Met Office DataPoint or equivalent 15 min Sky treatment and the ambient copy line Seasonal sky treatment and the seasonal ambient line
Crop growth stage Farm ops entry 24 h Beast and crop illustration stage, and Plotting status The seasonal default illustration stage
Live yield Weighbridge, or an ops entry when the bridge is down 1 h The ambient ticker in the header rail That ticker line is omitted entirely, not blanked
Series window Manual flag no TTL Second-screen mode activates Defaults to closed
The rules

The contract every feed is held to.

Before first paint

May a feed be fetched
No
May a feed block rendering
No
May a feed decide layout
No
What is rendered instead
The seasonal default, computed server-side

After first paint

Fetch
Yes, with a two-second timeout
Replace
In place, in the same box, with no reflow
Retry
Once, then stopA retry storm is worse than a missing temperature
Log
Yes. Surface to the visitor, no

Never, under any circumstances

A spinner
There is nothing worth waiting for
An error state
Nothing has failed from the visitor’s point of view
A stale value presented as current
This is the one that actually misleads people
A price, stock level or legal statement from a feed
Not one, anywhere
Seasoning

The layer, in four numbers.

5 live inputs And no plans for a sixth
1 function reads them all The entire integration surface
2s timeout, then silence No retry storm
0 things that break without them Not one
The shortlist

Why five and not fifteen.

Every additional live input is a new way for the site to be wrong, a new cache to reason about, and a new thing somebody has to notice has stopped working.

These five earn their place because each one changes something a visitor can actually feel: the colour of the page, the sky in the picture, what the crop is doing, a number that moved this morning, and whether it is television night. Nothing else on the shortlist passed that test.

Soil moisture, stock levels, social follower counts, a live queue length at the shop — all of them were considered and all of them were either dull, misleading or load-bearing. Load-bearing was the disqualifier every time.

Every live number is a new way to be wrong in public.

One rule governs all five

Live data must never block first paint. The seasonal default renders at build time and is always correct; live values hydrate afterwards or they do not. If the weather API is down, the site simply looks like the season it is.

How it works

The feeds, in four lines

Five inputs

And no plans for a sixth.

Four TTLs

Fifteen minutes, an hour, a day, and never.

One rule

Nothing live blocks first paint.

One function

The whole integration surface.

Next along the route

Seasoning

Carry on
Basket Book the pub Plot a field Join the list Bother us

Snooping, briefly.

We use a small number of cookies to keep your basket upright and to work out which pages people actually read. We do not sell anything about you to anyone, because that would be a rotten way to behave.

Read the detail