Building an F1 app people pay for
KiedyF1.pl and CalendarF1.com. It started as one HTML file in March 2025. Today it is two websites, one app on iOS and Android, a social feed that makes itself, and paying subscribers I have never met. I’m not a developer: the code is written with Claude Code.
- ROLE
- Everything: product, design, distribution. Code with Claude Code.
- SINCE
- March 2025
- STACK
- Claude Code, Astro, Expo / React Native, Node bots, OpenF1, Postiz
- STATUS
- Live, still shipping weekly
Downloads: App Store Connect + Google Play. Visitors: Google Analytics on kiedyf1.pl and calendarf1.com. Updated twice a day; daily numbers on /seen.
01 THE START
A page I wanted for myself
Every race weekend I googled the same thing: what time is qualifying in Poland? So in March 2025 I made a page that answered it. HTML copied back and forth between Claude and Gemini, graphics exported from Figma by hand, uploaded over FTP.
It worked, and then it sat there. Search traffic was a flat line for almost a year. In early 2026 I rebuilt it from scratch with Claude Code in the terminal: a page for every race, driver, team and track, results that update themselves after each session.
20252026
Drag to compare. Left: the first version, made in chat windows. Right: the rebuild, live today.
The rebuild is when Google started sending people. Search visitors per month, both sites:
| Mar | 27 |
| Apr | 67 |
| May | 79 |
| Jun | 259 |
| Jul | 273 |
| Aug | 158 |
| Sep | 193 |
| Oct | 271 |
02 HOW IT GREW
Website, redesign, second language, app, money
- Mar 2025The siteOne static page, Polish times
- Feb–Mar 2026RedesignAstro rebuild, every race, driver and track
- Mar 2026In EnglishCalendarF1.com, your own time zone
- Sep 2026The appiOS and Android in nine days
- Oct 2026First moneyPlus subscriptions, Poland and the US
Every step, with dates
- Mar 2025First KiedyF1.plStatic HTML, one season, made in a chat window, shipped by FTP.
- Feb–Mar 2026Rebuild and redesignAstro and Claude Code. Cockpit look, iCal export, post-race auto-updates.
- Mar 2026CalendarF1.comThe same machine in English. Today 139 pages.
- Jun–Aug 2026Search groundwork, 2027 seasonIndexed pages went from 8 to 38. Multi-season data, so 2027 went live the day the FIA published it.
- 17 Sep 2026iOS app liveStarted on the 13th, in the App Store four days later.
- 22 Sep 2026Android liveBoth brands on Google Play.
- 28 Sep 2026Telegram bot switched offFive subscribers after six months. The app replaced it within a week.
- 11 Oct 2026First paying userPlus on Google Play. The second came four days later from the US App Store.
- 13 Oct 2026One app, two facesApple rejected “F1” in the CalendarF1 name, so iOS became one app: Polish phones see KiedyF1, everyone else CalendarF1.
- Oct 2026iPhone Duo, Sync with TVA two-screen “pit wall” layout and a replay that follows your TV.
03 THE APP
Six months of a website, then two months of an app
Most of the work happened after the app started. September and October hold 636 of the 756 commits across both repos.
| Mar | 9 |
| Apr | 6 |
| May | 0 |
| Jun | 29 |
| Jul | 4 |
| Aug | 37 |
| Sep | 366 |
| Oct | 270 |
The app does one job well: tell you when, and show you what is happening right now. Point at or tap a line to see it in the app.
Downloads follow the calendar. Quiet weeks bring 15 to 25 a day; a race weekend doubles or triples that.
| 3–27 Oct 2026 | 692 downloads |
| Singapore GP weekend (9–11 Oct) | 134 |
| US GP weekend (23–25 Oct) | 154 |
When the iPhone Duo went on sale in October, the app already filled both screens. Then people started sending me photos of it on their own Duos, and Dominik Łada wrote about it in iMagazine.
Photos sent in by people using the app. Each one also showed me something to fix, and the next updates did. Click to enlarge.
iMAGAZINE · 25 OCT 2026 · DOMINIK ŁADA
Kolejny polski program, który zrobił na mnie znakomite wrażenie, to KiedyF1.
“Another Polish app that made a great impression on me is KiedyF1.”
Read on imagazine.pl ↗
04 THE SOCIAL MACHINE
Social media that makes itself. I only press yes
Two brands on X and Instagram would be a full-time job by hand. A year ago it was: every graphic exported from Figma. Now a session ends and the post is waiting for me before I open the app.
- Session endsA bot watches the timing feed
- Results checkedThree sources must agree
- Graphics renderedStatic posts and short animations
- Caption writtenPassed between models, with fallbacks, then reviewed
- Draft in PostizPreview lands in Discord
- I approveYes publishes, no kills it
The hard part was never the graphics. It was keeping publishing stable on cheap or free AI models: captions move from one model to the next when one fails or goes quiet, and the human step stays at the end.
Going forward social becomes mostly a way to promote the app: the weekend schedule, who won, and what is new in the app. The work goes into the app itself.
05 WHERE IT IS
Not a business yet. But strangers paid
As I write this the season has mostly settled itself: Antonelli is world champion. The winter goes into building. A better driver dashboard, probably predictions, and partnerships that could help the app pay for itself.
What I’m happiest about: something I made without spending anything on promotion has over 800 downloads across the App Store and Google Play, and people pay for the part that isn’t free.
06 TRY IT