Tim KruseSoftware Developer
Projects Startzettel

Startzettel

In progress

An app that replaces the spreadsheet of races: status, deadlines, calendar feed. You can sign up for the waiting list.

The start page of startzettel.de in German: on the left the headline “All your races on one sheet.” with the sign-up field for the waiting list, on the right a sample sheet “My season 2027” with six races, their dates and statuses such as registered, dropped and lottery.
Period
2026
Role
Solo, concept to prototype
Status
In progress, not in production yet
Code
Private repository

My races lived in a spreadsheet, not in my calendar, and that is how I once double-booked myself. Deadlines also get lost in a list like that: when registration opens, when the entry fee goes up, by when you have to apply for a ballot. There are plenty of running apps, but they count training kilometres. I found nothing that really fits, but plenty of people who keep their list by hand and are just as fed up with it.

A race gets onto the sheet through the search or a pasted link, or straight from the old list: text or a screenshot is enough, an AI picks out races and dates, and you check everything once more before it is saved. Every entry has a status, from “maybe” through “lottery” to “finished”, along with the entry fee, a note and the race’s deadlines. For the Berlin Marathon, for example, places are drawn by lottery; Startzettel reminds you before the application window closes. All races and deadlines show up in your own calendar as a subscription, and anyone who wants to know what I am running next gets a link.

So far the landing page and a clickable prototype of the app are done; nothing of the app itself is programmed yet. On startzettel.de you can join the waiting list and get an email when Startzettel opens; the site is in German. How far the build has got can be followed on the roadmap, which the site calls “Die Strecke”, the course: it shows what is already done, what I am working on and what comes next.

Stack
TypeScriptNode.jsFastifyReactVitePWASQLiteMapLibre GL JSProtomaps / PMTilesDockerGitHub Actions

Decisions

Races, not training

Startzettel only knows races. It does not record training runs, write training plans or hand out kudos; Strava and the watches do that already, and one more app for it would not replace the list this is about. You still register with the organiser, and results still come from the timing company. Startzettel links there, reminds you of the deadline and keeps your own time.

A link instead of a screenshot

Among runners the question of what you are running next comes up a lot. The usual answer is a screenshot of the list, and a week later it is out of date. Startzettel answers with a link to your upcoming races, readable without an account and always current. It only shows what you have shared, never finishing times, and it can be withdrawn. That is why it arrives with the app’s launch and not later with the other features for friends.

Races from the organisers, not from other people’s calendars

The quickest way to fill the database would be to read out the big race calendars. laufen.de, a large German one, forbids that in its terms, and databases have their own legal protection in Germany (§ 87b of the copyright act). So the races come one by one from the organisers’ own pages, starting with the north around Bremen and Hamburg and the big marathons, plus any link someone pastes. Results work the same way: automatic only where the timing company allows it, elsewhere only once it agrees.

Open to everyone instead of invitation waves

The obvious route would be to let the waiting list in waves, with invitation links for everyone already inside. Instead, a few people I unlock by hand test it before launch; after that sign-up is open to everyone, and anyone who wants to bring others just sends the address. The waiting list gets one email and is then deleted; no accounts are created from it.

This site in a different design

Same content, different look. You start on its home page, and every link stays in the chosen design.

What is this? About this site →