The antennas get a page
The aircraft you catch in Skydex are real, and they are real because somewhere a volunteer has a stick in a USB port and an antenna on a windowsill. That has been true since the feeder network opened. What has not been true, until this week, is that we could tell you anything about those receivers. The database stored one fact per station: the timestamp of its most recent packet. Whether it had been running flawlessly for three months or had come back from the dead an hour ago looked identical.
So we started writing things down. Once a minute the backend already asks the ingest who is connected, and it already receives everything worth knowing — how long each connection has been up, how much it is delivering, its round-trip time. All of it was being read and thrown away. Now it lands in a row per receiver per day: minutes connected, positions delivered, reconnects, peak link rate, best latency.
That sounds like bookkeeping, and it is, but it is the one part of this that could not be postponed. A page can be built whenever we get to it. Yesterday's uptime, if nobody wrote it down, is gone for good.
A page per station
Every receiver that has actually delivered packets now has a public page, and the network has a list at /stations. You get the status, how long it has been feeding, its streak of unbroken days, its uptime over the last month, and a bar per day.
The list is ordered by how steadily a station runs rather than by how much traffic flies over it. This is deliberate. A receiver under a busy approach path hears ten times what a rural one does, and that is an accident of geography, not an achievement. Keeping a box alive through a summer is an achievement.
You will notice there is no score out of a hundred. There is a design for one — six components, published constants, a dated changelog for every change to the formula — but four of those components need to know which station heard which aircraft, and our ingest does not currently record that. We could publish a number built from the two components we can compute and call it a score. We would rather publish nothing than publish a number pretending to be one.
New stations say "collecting data" instead of showing zeros, and their uptime reads as a dash. A zero would claim we measured and it came out worst, which is not what happened.
Your box died and nobody told you
The most useful thing here is also the least glamorous. If a station goes quiet for twelve hours, its owner now gets a notification, and another when it comes back. Until now the way you discovered your receiver had stopped was wandering onto the map weeks later and not finding yourself — by which point most people have stopped thinking of themselves as feeders at all.
Twelve hours rather than one, because the Mac app only feeds while the Mac is awake, and an hourly threshold would page those owners every single night until they muted us for good.
An address that cannot be taken away
Stations now have three separate things: a permanent number, an editable address, and a name. The name identifies nothing — change it as often as you like, or leave it blank and be listed by number. The address is yours to change too; the old one keeps redirecting for thirty days, after which anyone may take it. The number never moves, which is why it is the one to put in a badge or a forum signature.
What is not on any of this is the uuid from your config line. That string is credentials, not identity: anyone holding it can feed as your station.
The promise we had to rewrite
Both the landing page and the registration page said uptime-based perks would ship in September, and that uptime counted from your first packet. The second half was impossible — nothing recorded uptime, so there was no history to count from — and the first was a week away.
We have changed the wording rather than let the date slide past quietly. Uptime measurement starts now, and the clock starts on the same day for every station, however long it has been feeding. That is less than the original promise. It has the advantage of being true.