Zeka Hub
A bilingual AI planning platform for teachers at an international school, grounded in 2,693 verified Turkish curriculum outcomes.
- Category
- Education, live product
- Status
- Live
- Period
- Apr to Aug 2026
- Role
- Design, build, operate
- Stack
- Next.js 16React 19TypeScriptTailwind CSS 4ClerkTurso (libSQL)Anthropic SDKSentryVitestGitHub ActionsVercel

Context
Teachers at a bilingual international school were writing every lesson plan twice, in Turkish and English, and checking each against the Ministry of National Education curriculum by hand. Ask a model for a curriculum reference and it will always give you one, formatted convincingly, whether or not it exists. Those references end up on school records an inspector may read.
What I built
Zeka Hub is a Next.js application on Vercel where a teacher picks a year, subject and topic and gets a bilingual lesson plan, worksheet, quiz, assessment or phonics lesson, each citing real outcome codes. I extracted 2,693 MEB outcomes and 445 England National Curriculum outcomes from the source PDFs, recorded a SHA-256 for every document they came from, and built a single registry that owns the only valid set of codes in the system. Every generation passes through a verifier that drops any code not in the registry before anything is persisted, and an integrity check in CI fails the build if code and data drift apart.
- Data store
- Model or agent
- Check or gate
- Person
- External service
The same principle runs through phonics: the generator refuses to ask a five-year-old to read a word built from letter-sounds not yet taught that week. After each lesson the teacher confirms which outcomes it covered, and those confirmations, not the generations, drive the coverage dashboards.
Outcome
Live at one school, pre-rollout for the new academic year. Ten subjects across Years 1 to 8, 95 unit tests, a hallucination evaluation of 65 cited codes with none invented, and a measured cost of roughly $15 to $20 a month for twenty teachers. Daily database backups run from GitHub Actions.
What I’d do differently
Set up the production auth instance on day one; swapping after staff have accounts means migrating users. Validate before persisting from the start, because early invented codes were saved, counted, and fed back into the next prompt as context. And never keep two copies of a canonical map. Two subject maps diverged silently and a coverage percentage was wrong without a single error.
Screens
The comparator. Search a topic in English or Turkish and see how each curriculum teaches it, year by year. Lesson planner. Outputs cite real outcome codes, never invented ones. Teacher dashboard with coverage computed from confirmed outcomes only. School MIS module, a static-data demo gated to admins. Register view from the same demo module.