I got angry at German articles and built an iOS game: ArtikelStreak
Learning a word in German takes twice the effort. First you learn the word — Apfel means apple, fine. Then you have to learn its article: is it der, die, or das? It's der Apfel. Get the article wrong and you only half-know the word.
This is where everything goes off the rails.
Ask any German learner what the worst part is and most of them will say articles. There's no real rule: die Sonne (sun, feminine), der Mond (moon, masculine), das Mädchen (girl, neuter — because German says so). I've been working on my German for three years and I still catch myself attaching the wrong gender mid-sentence.
The existing tools don't fix it
I tried Anki. I tried Duolingo. I tried Babbel. They all have the same problem: no pressure. When you get it wrong, it just goes back into the deck. Easy. Forgiving. But that's not how the language works in practice. Reading, speaking, listening — you have milliseconds to land on the right article. Slow repetition doesn't build that reflex.
One Saturday morning I sat down: what if it were a daily challenge? Twenty words, sixty seconds, three strikes. Wordle-style — everyone in the world plays the same words on the same day. Streaks accumulate. Miss a day and you wait until tomorrow.
Artikel Streak
A few weeks later it was on the App Store.
The loop: every day you get twenty German words. You have thirty seconds to memorize them, then sixty seconds to assign each one its article — der, die, or das. Three wrong answers and the day is over. No replay until tomorrow. The streak — your consecutive-day count — turns out to be the real motivator. Once you've put together a seventeen-day streak you very much don't want to drop it.
A few design decisions, in case you find this kind of thing interesting:
- Deterministic daily word set. A SplitMix64 seed driven by the UTC date plus Fisher-Yates shuffle picks the day's twenty words, so everyone on the planet sees the same set on the same day. The point: you should be able to ask the person next to you, "did you get das Mädchen today?"
- Streak Freeze. Subscribers get one free skip per ISO week. People travel, get sick, forget. A missed day shouldn't nuke three weeks of progress and uninstall the app.
- Hard paywall. No free tier. It's a deliberate, slightly contentious choice — the only reason you should be playing this is that you actually want to learn German, not because there's a free game on your phone.
How it was built
This is probably the most interesting part for readers of this blog: I built ArtikelStreak in about thirty days, almost entirely with Claude Code. I've been working on an agent pipeline I call "iOS Factory" — a nine-stage flow that takes a natural-language prompt and produces a coded, signed, App-Store-ready iOS app.
Stack: SwiftUI + SwiftData on iOS 17+, StoreKit 2, RevenueCat in observer mode, PostHog analytics, content served from a Cloudflare R2 CDN. Solo developer. About thirty days of building. Three App Store rejections along the way (each one educational), one approval, one patch release.
If you want to see where AI tooling has landed for solo product work, this is a small-scale but very real case study: real StoreKit subscriptions, real users, real App Review purgatory, real W-8BEN tax-form pain. Not a synthetic demo.
What's next
1.0.1 went live mid-May. I'm now in marketing mode — running Reddit ads, working on ASO, thinking about organic content. SKAdNetwork attribution is wired in, RevenueCat finally shows real conversion data. The next product step is probably push notifications (streak reminders) and a bundle-based practice mode.
If you're learning German, or you want to follow a small indie iOS journey:
App Store: ArtikelStreak: Der Die Das
First week is free. If your streak breaks, blame me.