DEV Community

Ayodeji Adesegun
Ayodeji Adesegun

Posted on

Hacktoberfest Weekend Challenge: Build for a Friend

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.ts is 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.ts does seeded reward drops and the 50-drop daily cap.
  • lib/streak.ts does 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)