Product MVP · Demo stage · Private repo
trucutru
An oral-reading fluency app for my two kids, built to replace a commercial platform when its subscription ends. Local-first: no accounts, no backend, no audio leaving the device.
Demo
Andreu, 10, reads a 200-word text
Real session, recorded with permission — first name only. The reader view shows the text and a timer, never the errors. Scoring happens after he stops.
Demo mode · v0.2
How a local-first app demos on a public URL
The app needs a local Python sidecar for forced alignment. The demo build replays a committed session — audio plus the alignment JSON — through the same UI and scoring code. Same pattern as the visual-diff console.


Decisions
Five product decisions
CWPM as a trajectory, never pass/fail · the reader never sees word-level errors · forced alignment, not transcription · two annotators, inter-annotator agreement as the ceiling · the kids name the themes.


Second app · demo
Multiplication tables: here, right and wrong are said out loud
Same monorepo, same design system, opposite rules. It says right and wrong at once and counts stars, which is exactly what the trucutru reader avoids, so it is a separate app rather than one more activity. It stores no audio: a spoken answer is decided and discarded. In the demo you answer with the keypad.


Status · 24 Sep 2026: live demo at trucutru.carloslima.dev with sample data (no recordings, no real names). The reading flow, the trajectory and the error map all work; the family-view code is 1234. Since 24 Sep, the multiplication tables have a demo too: trucutru-tables.carloslima.dev.
Next
Keep your codebase verifiable. Get your mornings back.
Open to Lead and Senior Full Stack roles and contract work, remote across Europe or hybrid in Barcelona and Madrid. A 30-minute call on your own codebase, no slides.