Two things nobody built together: a memorizer that makes you speak, and a read-aloud coach that grades delivery. Masterify does both. Hidden-word recall listens as you say the line back and resurfaces your weak words. Reading practice paces you with a teleprompter, then scores accuracy, WPM, pauses and rhythm, highlighting every word skipped or swapped. All on-device — Whisper for speech, Apple Foundation Models for AI passages — so nothing you record leaves your phone.
I kept trying to memorize things the way everyone tells you to: flashcards, re-reading, apps that quiz you with multiple choice. None of it solved what I actually wanted—to say the words out loud, without hesitating.
Recognition isn't recall. Picking the right answer out of four doesn't tell you whether you can actually deliver the line when it's your turn to speak.
So I built the practice I wanted.
Masterify escalates deliberately: read the line, say it back with a third of the words hidden, type it from scratch, then prove it again. Nothing advances on a single lucky pass.
Then I ran into a second problem: knowing the words and delivering them are different skills.
Some people don't need to memorize anything. They need to stop stumbling, rushing, or reading a page like they're apologizing for it. That's why Reading Practice became its own half of Masterify. A teleprompter sets your pace, you read aloud, and you get scored on accuracy, words per minute, pauses, and rhythm—with every skipped or substituted word compared against the original.
No memory involved. It's a delivery coach.
The two halves share one engine: your voice is transcribed on-device and compared to the text word by word. That's what lets a passage move between them in either direction. But they answer different questions:
Do I know this?
Did I say it well?
A lot changed while building it, mostly by getting less clever.
Speech recognition: I started with Apple's built-in speech APIs. They worked fine until accents became a problem. I moved transcription to Whisper via WhisperKit on Core ML and added an accent picker during onboarding. Apple's system remains as a fallback, so a session never dead-ends because a model isn't available.
AI generation: I initially built a cloud-based path with Gemini and Firebase. Then Apple shipped Foundation Models. I rewrote the generator around the on-device model and shelved the cloud version. Now it's free, offline, and private.
Word hiding: I started with random words, then tried hiding words users had previously missed. That made practice predictable and left the beginning of every line permanently blank. The shipped approach uses weighted randomness: weaker words are more likely to disappear, but nothing is guaranteed.
Chunking: Splitting text at line breaks looked right but practiced terribly. Three-word lyric fragments don't have much connective flow. Short lines now merge toward a ~14-word target while stanza and paragraph breaks remain hard boundaries.
Restraint: Stage 1 asks for one clean pass; later stages ask for two. The voice stage gives you one retry before revealing the word, so you're challenged without getting trapped. The reading-level recommender waits for several sessions before making a suggestion—and it never changes your level automatically.
The through-line stayed simple:
Make the user do the work, and never let the app fake progress on their behalf.**
That's Masterify.