Inspiration The best way to learn something is to teach it. Psychologists call it the protégé effect: people who tutor someone else understand the material more deeply than people who study just for themselves. But kids almost never get someone to teach. Most AI learning apps do the one thing that quietly ends curiosity. They hand over the answer. The child asks, the AI explains, and the thinking stops. So I flipped the roles. What if the child is the teacher, and the AI is a confused little student that never gives answers but just gets curious in the right places? That became Mentio.

What it does Mentio is a mobile app where your child teaches a friendly, confused robot. You enter a name, pick an age group, and choose a subject to teach. You explain a topic to Mentio in plain language. Mentio reacts to what you actually said and asks one naive follow-up question that nudges you to think a bit deeper. "Wait, but why does that work?" Mentio never corrects, grades, or gives the answer. Its confusion is the only feedback. No scores, no red marks, no failure states. Just a robot that gets less confused as your explanation gets clearer. When it finally clicks, Mentio lights up and celebrates. You can upload your own study material, a PDF, a Word document, or notes, and Mentio reads it and builds its questions around your actual content. "The part where it says that, what does it mean?" Mentio grows up with the learner across three versions of the character, each with its own look, voice, and style of confusion. Ages 5 to 9 get a playful kid robot full of "but why?" wonder. Ages 10 to 15 get a curious classmate that asks "but why does that actually work?" Ages 15 to 20 get a calm Socratic thinker that probes definitions, edge cases, and assumptions.

How we built it React Native and Expo SDK 54 with expo-router for navigation, the new architecture on the Hermes engine, written in TypeScript. Mentio is a real-time 3D robot built with Three.js via react-three-fiber and expo-gl. It has mood states including curious, nodding, and celebrating that animate live as the conversation goes. Three distinct age personas are built as separate meshes so the character visibly matures with the learner. Every line Mentio says is generated by the DeepSeek API. There are no scripted or hardcoded responses anywhere in the app. A strict system prompt enforces the protégé effect rules: react to the learner's own words, ask exactly one question, rotate how it gets confused by asking for an example, poking at a contradiction, trying a what-if edge case, or questioning a word's meaning, and never explain, define, grade, or answer. Voice and temperature are tuned per age band with frequency and presence penalties to keep responses fresh. Document understanding runs fully on-device with no backend. Plain text and Markdown are read directly. PDFs are parsed with pdf.js and Word docs with JSZip. The extracted text is injected into Mentio's prompt so its questions revolve around what the learner actually uploaded. A three-dot typing indicator and a short thinking beat make Mentio feel like it is genuinely puzzling over your answer instead of snapping back instantly. Onboarding preferences persist locally with AsyncStorage. One example of the pedagogy in action: if a child teaching fractions says "half is when you cut a cookie," Mentio does not define the fraction. It asks "but the cookie didn't get smaller when you cut it, so what does the half actually measure?"

Challenges we ran into Designing an AI that is helpful by being wrong was the core challenge. Getting a model to consistently withhold the answer and stay a curious student without slipping into teacher mode took heavy prompt iteration. What finally worked was forcing it to react to the learner's exact words, ask only one question, and pull from an explicit rotating set of confusion moves. Running pdf.js inside Expo Go with zero native modules was the hardest technical problem by far. The current pdf.js embeds a multi-megabyte WASM blob that the Metro bundler refused to parse, so I pinned a pure-JS build. Then Hermes turned out to be missing a pile of web APIs that pdf.js assumes exist including DOMException, ReadableStream, structuredClone, and TextDecoder, one of which crashed at import time with a cryptic error. I wrote a focused polyfill layer and forced pdf.js to run its parser on the main thread since React Native has no Web Workers. DeepSeek occasionally returns empty or malformed replies under rapid calls. Instead of faking a response I added retry-with-backoff and a salvage JSON parser. When the model truly cannot be reached the app says so honestly and shows a tap to retry button rather than inventing a line. I also deliberately moved the whole visual theme away from the purple-gradient AI cliché toward something warmer and more human.

Accomplishments that we're proud of A complete protégé effect loop that actually works. A child can teach a real topic and feel the robot understand them with zero grading or pressure. Reading the learner's own PDFs and Word docs entirely on-device in Expo Go with no server and no native code, something most people assume is not possible in React Native. A 3D character that grows up across three distinct ages instead of one size fits all. Every response is generated and in-character with no canned lines, yet the app still degrades gracefully when the network drops.

What we learned The pedagogy of restraint. An AI that asks instead of answers can teach more than one that explains everything. A deep tour of React Native, Hermes, and Metro internals: what the engine is missing and how to polyfill a heavy browser library so it runs on a phone. Prompt engineering for character consistency: how voice, temperature, and explicit behavioral moves keep a model reliably in role. How much emotional design matters. A typing pause, a celebration, a confused tilt of the head. These small things make learning feel safe and fun.

What's next for Mentio OCR so Mentio can read scanned worksheets and photos of notes, not just text-based files. A lightweight backend to proxy the AI, keep the API key off-device, and sync progress across sessions. Accounts and a parent and teacher view to see which topics a child has taught and where their understanding grew. Voice mode so younger kids can teach Mentio by speaking. More subjects and languages, plus gentle streaks that reward consistency without ever introducing grades.

Built With

Share this project:

Updates