Roadmap #5: It Actually Runs Now
Danny de Haas · August 21, 2026
- roadmap

A few weeks ago, the Digital Endurance Championship was a stack of documents. Good documents, but still: paper. Rules nobody had raced under, screens nobody had clicked, a database that existed only as a diagram.
A few weeks ago, the Digital Endurance Championship was a stack of documents. Good documents, but still: paper. Rules nobody had raced under, screens nobody had clicked, a database that existed only as a diagram.
Then on an ordinary evening I filled in a form, clicked publish, opened the public site in a second tab, and there was a championship. Logo, calendar, entry list, and a sign-up button that actually did something when you pressed it.
It is a small thing to look at. It did not feel small.
Thirteen build steps are now complete. In Roadmaps #2 and #3 I described how this platform was going to work. This article is about which of those promises now exist as working software, and what they give you.
Human-Designed, AI-Built
Let me deal with the obvious question first, because you are going to ask it anyway. How does one person, who is not a developer, build a platform this size?
The answer is that I design it and Claude Code builds it.
Before a single line of code existed, I spent weeks on the design work. The complete database structure. Every user flow, screen by screen. The stewarding logic, question by question. The interface texts. All of it written down in a Software Design Specification and a set of flow documents that together describe exactly what this platform is and how it has to behave.
That part is entirely human, and it is the part that matters. It comes from someone who has actually run an endurance championship, made the mistakes, and knows precisely where the pain is: the sign-up spreadsheet, the results copy-paste, the steward decision that contradicts last month's steward decision. You cannot get that from a machine, because a machine has never had to explain a penalty to twenty-four angry team managers.
What I cannot do is write the code. So I hand each part of that specification to Claude Code as a detailed, numbered instruction, it writes the implementation, and I review it, test it, break it, and send it back when it is wrong. If something is not in the specification, it does not get built.
I am telling you this plainly because "AI-built app" has become a warning label, and usually for good reason. The generic ones are generic because nobody actually decided anything. Someone described a vague idea, accepted whatever came back, and shipped it. That is not what this is. Every rule, every screen and every decision here was chosen deliberately by a human being who intends to use it himself, under pressure, at three in the morning.
What the AI genuinely changes is speed. Work that would normally need a development budget I do not have, or three years of evenings, took a couple of days. That is the difference between the DEC launching with a real platform and the DEC launching with a Google Form and good intentions.
Why The First Thing I Built Was Invisible
The very first thing built was not a race page. It was the multi-tenant foundation I described in Roadmap #3: the system that lets many separate organizations run on this platform, with the DEC as the first one.
Building that first, rather than bolting it on in two years when a customer asks, is what turns that strategy from a plan into a fact. And it gives you something immediately: every organization gets its own sealed world of championships, teams, entries and decisions. The app identifies which organization you are visiting from the web address, and every request after that is locked to it. Another competition cannot see your entry list, your penalty history or your team's data, because the code cannot ask for it.
Getting In, And Being Recognised
Logging in works the way I promised in Roadmap #3: Discord first, then your Steam account, and no password to invent or forget.
What is new is how strictly the app holds you to it. Until your Steam account is linked, your profile is deliberately parked on one screen and nothing else opens, because an unverified entry is not an entry. You register under your real first and last name, and your display name must match the name you race under in-game, for the reason explained in Roadmap #3. From there the Discord side runs itself: the correct roles appear in our server without a human noticing you exist and promoting you by hand.
The Split Shell works as described too. The moment you log in, the public top bar is replaced by the sidebar application, with the public pages folded inside it, and that sidebar is assembled from your own permissions. Driver, team manager and steward at once still means one account and one login.
Your Team, Your Entry
You create a team with a name, a logo and up to five preferred car numbers. Your drivers join through an invite link, and if they already have an account, clicking it and logging in is the entire process.
Entering a season runs through a proper checkout. You choose the class, the car model and your number, and the app checks that number against every entry already registered, so two cars can never arrive at the same race wearing the same digits. You pay through Stripe, and your entry becomes verified the moment the payment confirms. No screenshot of a bank transfer, no waiting two days for someone to tick a box.
Drivers are assigned to cars per event rather than per season, which is the detail that will quietly save you the most trouble. Line-ups change, people miss a round, someone jumps into the other car for one race. None of that should mean rebuilding your entry, and now it does not.
When Something Happens On Track
The stewarding flow from Roadmap #2 is built, exactly as described: the objective questions, the calculated penalty, the published decision with its full detailed trace, and the appeal route if you believe the regulations were applied wrongly.
Three things about it are worth adding now that it is real software rather than a diagram.
Your review request does not create a queue of duplicates. The app checks whether an incident already exists at that moment and links your report to it, so five teams reporting the same crash produces one investigation with five reports attached, not five investigations racing each other to different answers.
Starting an investigation locks that incident to one steward. Two officials cannot quietly work the same case and publish two different outcomes.
And every step of it, from your first report to the final appeal decision, is written to an audit trail that nobody can edit afterwards. Transparency in Roadmap #2 was a promise about what we would show you. Now it is a property of the database.
After The Flag
Results land in a staging area first, marked as pending verification. That is where Staff apply the things software cannot judge: a known game glitch, a post-race time penalty, a lap that should never have counted. Only when a human publishes do results become official and the standings recalculate.
The points engine then handles the arithmetic: the right scale for the race duration, the 90% classification rule, bonus points for class pole and class fastest lap, and a red flag multiplier for the day a race cannot be restarted.
For you, that does not mean instant standings, and it is not supposed to. Results become official when a human has checked them and the review requests from that race have been settled, which is the entire reason the staging layer exists. What it does mean is that none of the waiting is administration. Nobody is rebuilding a results page or recalculating points by hand, so the only thing you are ever waiting for is the decision itself. And the moment Staff publish, the results, the standings, your profile and every statistic behind them update together, with nobody retyping a single number.
The Small Things You Will Only Notice If They Are Missing
The article you are reading was published from inside the platform, tagged and scheduled, with the link preview generated automatically so it looks right when it reaches Discord or Reddit.
There is a notification bell for the things that actually need you: a team invitation, an entry fee due, a steward decision, an appeal that moved.
And some work nobody will ever compliment. No text is hard-coded, so the platform can be translated for our non-English drivers later without being rebuilt. Deleting your account replaces your personal details with "Former Driver" rather than erasing race results that other people's championships depend on. Every administrative action is logged permanently.
And Then I Went Looking For Trouble
Thirteen steps in, the platform does the work of the spreadsheets, the sign-up forms, the manual Discord posts and the results tables that sim racing competitions normally run on.
So I stopped building and started testing. I opened the app as a driver, then a team manager, then Staff, then a steward, and clicked everything I could find, specifically trying to break it.
Quite a lot of it broke.
The next two articles are about what I found, and about one confident plan from Roadmap #2 that I have now thrown out entirely.