JSON files rather than a database
Trade-off: No service to run or back up. Downside: disk writes are on me. I've already added a retry on failure and a refusal to start if the file is corrupted.
Live GPS tracking of a foot race: my loved ones follow me on a map, with nothing to install.

Zotracker was born for the Lille marathon: my parents, family and friends wanted to follow me live. It runs in the browser, with no app to install, and I plan to reuse it on other races.
Trade-off: No service to run or back up. Downside: disk writes are on me. I've already added a retry on failure and a refusal to start if the file is corrupted.
Trade-off: No build step. Downside: duplicated code between server and browser. Statistics are computed twice, and the two results already diverge on the estimated finish time before the start.
Trade-off: Distance follows the official course, without the GPS zigzag. Points more than 100 m away are ignored, and a gap above 150 m shows "off route". Without a GPX file, the server falls back to raw points, which are less accurate.
On race day, anything can give out: the network drops, the browser GPS shuts off when the screen locks (on iPhone), and safety alerts must still go out. Points are queued when the network drops; the rest of that reliability is still to be built.
An app used on race day isn't judged by its demo: it's judged at the worst moment of the race. Hence the simulation mode, to test without running.