日々
hibi.
a japanese app that teaches you one character a day on the screen you already check a hundred times. hiragana, then katakana, then the sound rules that turn them into real words. 106 days, two minutes each.
the pitch: your lockscreen teaches you japanese.
every morning
your lockscreen teaches you japanese.
day 13. no notification, no app to open.

106
days, start to finish
92
kana, in gojūon order
536
tests, green
0
accounts, ever
[01] the story
[01]the itch
i kept restarting japanese. every app i tried either opened with kanji and let me drown by week two, or turned the whole thing into a chore with a mascot. after three attempts i still couldn't read hiragana, which is the alphabet. the motivation was never the problem. the order was.
[02]the wedge
the japanese widget apps already on the store all assume you know kana. hibi refuses to skip it: 46 days of hiragana, 46 of katakana, then 14 days of the sound rules. finish only the 92 base characters and you still can't read がっこう, because it needs a dakuten and a small つ. those last fourteen days are what make the promise honest.
[03]the appointment
the lockscreen is the product. it doesn't buzz, it doesn't beg, it doesn't guilt you at 9pm. today's character is simply there when you pick up your phone, and you pick up your phone constantly. the decision has to be small enough that willpower stops being the variable.
[04]the craft
every character draws itself in the order it's taught in japan, then you trace it with your finger. wrong stroke order is prevented, not corrected: only the pending stroke accepts ink, so there's no red x, no score, nothing to fail. reviews are scheduled by fsrs. the tracing never touches it.
[05]the boring part
the curriculum lives in json with a manifest version, because a typo on day 99 has to reach phones that already installed. progress lives in a sqlite file inside an app group so the widget reads the same truth the app does. five separate bugs in this codebase were one function quietly defaulting a parameter nobody passed. that default is now a compile error.
[02] the alphabet
every character in the app, in the order it's taught. tap one and it draws itself, stroke by stroke, off the same data the app uses.
a
the vowel in "father", cut short and held flat
A capital A tangled in a looping ribbon.
stroke paths on this page come from kanjivg by ulrich apel, CC BY-SA 3.0.
hiragana days 1 to 46 · tap any character
katakana days 47 to 92
the sound rules days 93 to 106
then fourteen days of the rules that turn kana into japanese.
- がvoiced かかがみ mirror93
- ざvoiced さひざ knee94
- だvoiced たからだ body95
- ばvoiced はそば buckwheat noodles96
- ぱは row with a circleかんぱい cheers, a toast97
- きゃき plus small ゃきゃく guest, customer98
- しゃし plus small ゃかいしゃ company99
- ちゃち plus small ゃおちゃ tea100
- ひゃひ plus small ゃひゃく hundred101
- りょり plus small ょりょかん a traditional Japanese inn102
- じゃじ plus small ゃじゃがいも potato103
- びょび plus small ょびょうき illness104
- っdouble the next consonantがっこう school105
- ーhold the vowelラーメン ramen106
[03] the app
bone white paper, sumi black, one red. it's a japanese book that happens to run on a phone.
[04] under it
what's actually under it.
- curriculum
- 106 days of json, versioned so edits reach phones that already installed
- scheduling
- fsrs, the open algorithm, inside a fixed teaching order
- stroke data
- kanjivg, all 92 characters, animated by path not by video
- audio
- on device ja-jp, every character and every example word
- storage
- one sqlite file in an app group. no account server, no sync, no us
- surfaces
- lockscreen widget, home widget, four tabs: 今 復 続 設
- tests
- 536 across 83 suites, green at the last commit
- type
- noto serif jp for japanese, inter for latin, exactly one accent
[05] the uncomfortable part
hibi has a hard paywall. no free tier, three day trial, then $49.99 a year. i read about 67 one star reviews across four competing apps before setting it: zero of them complained about running out of content, and 18 of one app's 22 negatives were the paywall. so the price is said out loud on the third onboarding screen, before anyone is asked for an apple id, and the store screenshots have to do the job the free tier usually does.
v1 ships no kanji. it's coming as a free content update, and the listing says exactly that, because promising kanji today is how you earn those one stars yourself.
status: in app store connect, waiting on me