Hack #6: Zed · Zed
30 Apr, 16:20
MathQuick: audio-first adaptive mental math trainer most math drill apps are broken in the same way. fixed question banks, no memory, same difficulty for everyone. ace multiplication today, come back tomorrow, it starts from scratch. MathQuick is different. questions are read aloud via text-to-speech. you solve them in your head. no peeking at the problem, no reading, just pure mental computation under a countdown. what makes it technically interesting we combined two things that haven't been put together this way before: FSRS (free spaced repetition scheduler, the algorithm now powering Anki) and LLM-based question generation via Venice AI. FSRS decides which skill to drill and when, based on a memory model tracking difficulty, stability, and retrievability per skill. Venice AI writes the actual question, fresh every time, calibrated to the learner's current level. the learner model tracks 6 skill dimensions (addition, subtraction, multiplication, division, percentages, chained operations) across 5 difficulty levels each, unlocking progressively as the learner improves. question generation uses a hybrid approach: a pre-built static bank of ~900 questions ships with the app for zero-latency first sessions, with Venice replenishing buckets in the background. audio is cached in IndexedDB so every question is only synthesized once. the adaptive algorithm - FSRS schedules which skill is most overdue based on predicted retrievability - zone of proximal development targeting: below 60% accuracy drops a level, above 85% for 3 consecutive promotes - promotion thresholds scale with level: level 1 promotes on 3 correct in a row, level 3+ requires 4 of 5 - 20% of questions come from already-mastered skills to prevent fluency decay - full research documentation at mathquick.vercel.app/research stack React, Vite, ElevenLabs TTS, Venice AI (llama-3.3-70b), ts-fsrs, localStorage + IndexedDB for offline-capable persistence. no backend, no account required. the full learner model fits in under 2kb of localStorage. try it mathquick.vercel.app
