← work

日々

hibi.

designed & built solo · ios · 2026 · shippinghibi · "day after day"

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.

an iphone lockscreen showing せ with the reading se, plus three smaller kana tiles

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.

day 1hiragana · 3 strokes

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.

todayone character. one button. the app is over in two minutes.
practicewatch it draw at 1x, 0.5x, 0.25x, then take the pen yourself.
reviewfsrs picks the queue. what you know comes back rarely.
progressa hundred days, stamped like a hanko at 7, 30 and 100.
step 7 of 11: tick what you already read and the curriculum starts past it. saying you know か can't get か skipped forever, which took two tries to get right.

[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.

the hibi app icon, 日々 in nihon red on bone whitecoming to the app store3-day free trial · $49.99/yr or $6.99/wk

status: in app store connect, waiting on me