All work

Research-grounded learning · Design · Go

Gribou

Daily reading and spelling training for French-speaking adults with dyslexia. The visible half looks like a game; the invisible half is a 120,497-word lexicon that works out what is hard on its own, and a training protocol taken from the research rather than invented.

01 · Why

Tools for dyslexia stop at the school gate

Dyslexia doesn't go away at eighteen. What goes away is the support: the methods, the speech therapists and the apps all target children, and the adult who still reads slowly at thirty has little left to open in the evening. Gribou is for them: fifteen minutes a day, on a phone or a laptop, with no appointment and without feeling sent back to primary school.

The shape is a game, because consistency is what decides everything: a path of 13 worlds and 72 lessons, a daily streak, a creature that evolves as you progress. But the content isn't improvised exercises — it comes from a measured protocol, and that is the only thing that really separates this from one more learning app. Freemium, €4.99 a month.

02 · The mechanism

The lexicon decides what's hard, so I don't have to

This is the part I'd defend line by line. Nobody hand-judges a word as difficult: seven public French research databases are assembled at build time into a single 120,497-word lexicon, and the data is what rules.

The critical piece is the alignment between letters and sounds, and how consistent it is. The «eau» in chapeau is only spelled that way in 22 % of the cases where you hear the [o] sound: the word is objectively opaque — measured, not estimated. Everything else follows: how hard a word is, the wrong answers offered against it, and the reason shown when the player gets it wrong.

  • Distractors are generated, never hand-written: for chapeau, «chapo», «chapau», «chapô» — each with its own justification (here the [o] sound is written eau, not o). A distractor is never a real word, and never a spelling impossible in French: otherwise the build fails.
  • 30,000 pronounceable pseudo-words are generated, then validated against the letter sequences French actually attests. Without that check you get «tsanchée», which the eye rejects without even decoding it: the exercise then measures nothing.
  • Morphological splits come from a database reviewed by morphologists, then constrained by the grammatical category of each base. Reviewing the common words rejected 336 splits — «mérite» is not «mé + rite». Teaching a mistake costs more than teaching nothing.
  • Every word carries a permanent id in an append-only registry. Rebuilding the lexicon never detaches a player's history from the right word.
03 · The literature

The sources aren't decorating the homepage, they're in the code

A dossier of sources is the product's foundation, and every line in it has an executable consequence. Fast reading takes up half the exercises because that's the proportion in the Vender & Delfitto (2025) protocol, the only published trial of a web-app-delivered intervention for dyslexic adults. Morphology — learning to see the meaning-chunks inside a word — opens the path and fills three worlds because, in French-speaking dyslexic adults, sound-based decoding stays impaired while the processing of those chunks still works (Cavalli et al., 2017). In French that isn't a bonus, it's the main compensation lever.

The fast-reading threshold is a psychophysical staircase: the word is flashed then masked, and the display time drops 1.5 % after a success and climbs 5.8 % after a failure. The ratio between those two numbers mathematically pins the equilibrium near 79 % correct, which matches the protocol's 80 % criterion. So the threshold measures the same thing week after week, and its descent from 1200 ms towards 100 ms is a real fluency gain, not a score inflating.

  • Speed is measured as much as accuracy: every answer is stored with its reaction time, because the deficit that persists into adulthood is mostly about speed (Reis et al., 2020).
  • Letter spacing is widened by default. It's the one display setting with data behind it (Zorzi et al., PNAS 2012), with an immediate effect and no training required.
  • The OpenDyslexic font is offered for comfort, alongside the note that a recent meta-analysis (15 studies, 688 participants) finds it no reliable effect. Selling it as a treatment would be easier to market: I won't.
04 · Stack

The server keeps the answers, and the app outlives its providers

One Go binary serves both the API and the statically exported Next front: one Docker image, one service, one PostgreSQL database. The front holds its fifteen screens in a single route — so changing screen costs nothing on the network — while still writing one HTML file per address, so a refresh, an email verification link or a return from checkout always lands on a real page.

Two decisions matter more than the rest. Exercises reach the browser stripped of their answers: the server keeps the key and grades them itself, so the right answer is never readable in the network traffic and progress stays a measurement rather than a self-reported score. And the core of the lexicon is embedded in the executable: the word packs normally live in remote storage, but the first levels are served from the binary, with an automatic fallback and a thirty-second circuit breaker. If storage goes down, today's session carries on.

05 · Trade-off

No hearts, no lockout

Most learning apps lock you out after five mistakes. On a condition where the mistake is structural, that mechanism punishes the symptom: the dyslexic adult gets stopped for exactly what brought them there. I removed the lockout and kept the cost — an error breaks the combo, drops the multiplier, forfeits the perfect-run bonus, and the exercise returns at the end of the lesson worth nothing the second time. You lose something on every mistake, you're never stopped.

The second departure is deliberate: the reference protocol prescribes three sessions a week, here play is unlimited. Its success criterion stays — 80 % accuracy to clear a tier, and the same for the exam that opens the next world. Experience points unlock no content: you advance by getting things right, not by playing long.

Method

How it's built

I set the architecture, the rules and the sources; the AI writes inside them, under guardrails that reject non-conforming code on every edit. Production is never touched by an agent: migrations, deploys and payments go through me. Everything described above is something I'd defend line by line.

Available · remote

Want the same, shipped and run?

Three lines about your idea is enough. Reply within 24 hours.

Next projectFlowlio