✍️ Article

A Basketball Stat Tracker With No Account and No Signal

Half the gyms in this country have concrete walls, a roof full of steel, and one bar of signal if you stand near the fire door. Tip-off is in four minutes. The app you downloaded last night is showing a spinner and a message about checking your connection.

This post is about the design choice that makes that scene impossible.

The problem with the standard setup

The normal shape of a sports app is: you make an account, your data lives on somebody’s server, and you pay a monthly fee for the privilege. There are real advantages — syncing between devices, sharing with parents, recovery if you lose your phone. For a club with twelve teams and three people entering stats, that architecture makes sense.

For one coach, one volunteer or one parent, it brings three costs that nobody mentions in the app store listing.

It needs a connection at the exact moment you have none. Sports halls are famously bad for signal. Tracking a game is the one activity where a five-second delay is genuinely expensive, because the game does not pause while your phone reconnects.

It rents rather than sells. Trackers in this category commonly run somewhere between four and fifteen euro or dollars a month. Over a three-year junior career that is a real number, and at the end of it you own nothing.

It puts children’s data on somebody else’s computer. This is the one people think about least and should probably think about most. A youth roster is a list of minors with names, numbers, birth years and performance history. Every server it sits on is a server you are trusting.

The other way to build it

There is an older approach that fits this problem better than it has any right to: put the whole thing in one file.

Not an app you install. A single .html file you download and open. Everything inside it — the interface, the maths, the charts, the two languages — arrives in that one file, and the browser you already have runs it.

It sounds primitive. In practice it produces properties that are hard to get any other way.

It works with the aeroplane on. There is no request to make, so there is nothing to fail. Signal in the gym stops being a question you ask.

There is no account, because there is nothing to log into. No sign-up, no password reset, no email in a marketing list. You open a file.

Your data cannot leak from a server, because there is no server. Everything is saved in your own browser’s storage on your own device. That is not a privacy policy — policies can change. It is a property of the architecture.

It does not rot. A single file with no dependencies will open in five years, on a device that does not exist yet, with no internet connection. Apps get pulled from stores. Subscriptions lapse. Companies shut down. A file on your drive does not care.

You own it. One payment, or none at all if it is a free tool. There is no month in which it stops working.

The honest trade-offs

Anyone selling you a design without its downsides is selling you something. Here are ours.

Nothing syncs on its own. Track on a phone and the tablet knows nothing about it. Moving data between devices means exporting a backup file and importing it on the other side. Two taps, but you have to remember to do it.

Browser storage is not permanent. Clearing your browsing data wipes the season. This is why the app nags you to export a backup after every few games, and why that button is the first thing on the Data tab.

Storage is per-address. Games recorded in the copy you opened from a website live at that website; games recorded in a copy you downloaded live in that file. Same app, two drawers. Export and import moves them, but nobody expects it the first time.

No automatic sharing. There is no link to send parents. There is print, PDF, HTML and CSV export — which most people find is what they actually wanted anyway — but there is no live feed.

If syncing across a coaching staff in real time is your core requirement, use a cloud tracker. That is what they are good at. If you are one person tracking one team or one child, the trade goes the other way, and it is not close.

What this looks like in practice

Two things live at this address, and both are built the same way.

The shot chart tool is free. Ten players with their own jersey numbers, tap the floor to record a shot, automatic zone and points-per-shot breakdown, awards at the end, and a scoring toggle for street rules where a bucket is one and a long one is two. Print it or save a PDF. It costs nothing and asks for nothing.

HoopNest is the full thing. Live game tracking with a game clock, full box scores, season history, shot charts, Four Factors and per-possession metrics, badges, notes, and a one-player mode for parents watching a single child. Nine euro ninety-nine, once. There is a free trial that records five complete games with nothing hidden, and both PDF manuals are free to download before you decide anything.

Neither one asks for an email address.

The point

There is a version of technology that treats a Tuesday-night junior game as an opportunity to acquire a user. Account, subscription, notifications, a dashboard somebody else owns.

And there is a version that treats it as a Tuesday-night junior game — where a coach wants to know if the offence worked, and a parent wants to remember the night their kid finally shot from the corner without looking at the bench first.

The second version fits in one file. It turns out that is all it ever needed.


Both tools work offline, store nothing on a server, and have no accounts. Try the shot chart free or see what HoopNest does.