This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
Moye is a free learning app for kids with ADHD, dyslexia, or neither. My friend Ayodeji, who shares my name, is 4 and finds the traditional way of learning boring. Most learning apps run on a clock and a scoreboard. When a child stalls, they get a red flash, a buzzer, and a streak that starts punishing them.
Moye does the opposite:
- One question at a time, read aloud on request.
- No timers anywhere.
- A wrong answer gets a hint and a patient honey badger mascot, Moyin. The score never drops.
- Any lesson can be stopped, and the honey you earned is still there afterward.
- A comfort panel for OpenDyslexic font, letter spacing, text size, calm motion, and voice speed.
- Voices in English, Nigerian Pidgin, Yoruba, Hausa, and Igbo.
- A plain-language weekly summary for grown-ups.
It works with Wi-Fi off and installs to a phone's home screen.
Demo
Live: https://moye-bay.vercel.app
There's no sign-up, and it works on a phone. Answer the question on the home page, and the card below shows what Moye decided and why.
Video: https://youtu.be/Hp7FgtXbPpc
Code
https://github/ayodejiades/moye
How I Built It
Next.js 16, React 19, TypeScript, and Tailwind. Progress lives in local storage, so no account or database is needed. A service worker precaches the screens, and Lexend and OpenDyslexic are self-hosted, so there are zero third-party requests.
The part I'm proudest of is that no model runs inside the app. What happens next is decided by small, readable functions:
-
lib/mastery.tsis Bayesian Knowledge Tracing. It updates how likely a child is to know a skill after each answer, then moves them to an easier or harder tier. -
lib/honey.tsdoes seeded reward drops and the 50-drop daily cap. -
lib/streak.tsdoes timezone-safe streaks with automatic rest tokens.
The 90 questions are validated as JSON by zod. A test renders every question across all themes and locales, and 159 tests pass.
I built it with an AI coding agent on opencode, which I used for implementation, and kept a WHAT_IS_REAL.md that says what is and isn't done. For example, there is no efficacy claim. We have no study showing it improves learning.
Why Does Open Innovation Matter?
A closed API wouldn't have fit this app. A child's attempts and reading struggles are sensitive, and I didn't want them sent to a third party. The app also has to work offline, with no API key and no per-child cost, because that's the only way a free app for families stays free.
Everything it stands on is open: Next.js and React, the OpenDyslexic font (SIL OFL), the browser's Web Speech API, and Bayesian Knowledge Tracing, a published method anyone can inspect. Because the decisions are plain code, a parent or teacher can read exactly why a child was moved up or down. A model's say-so couldn't offer that.
Top comments (0)