PrepAtlas
AI learning + career platform — tutor, adaptive practice, exam engine, role tracks
The problem. Exam prep is sold as content — a fixed syllabus, recorded lectures, one generic question bank. None of it knows which topic a particular student is actually weak at, so everyone practises the same things and revises what they already know.
The approach. Close the loop: teach, practise, measure, adapt. An AI tutor teaches over chat, voice, and generated video; an exam engine runs real timed attempts with mark-for-review, negative marking, and auto-submit; and what a student gets wrong feeds the next plan. Thirteen role-based career tracks sit on the same engine, with mock interviews, JD analysis, and resume review for students on the way out.
The engineering. Every model call is grounded in structured records, not recall. Profile, active path, and prior tasks load from PocketBase and go in as explicit context; the model is routed to Claude or NVIDIA behind one provider interface; responses are schema-validated before they persist, so off-syllabus output is rejected rather than rendered. Each call is metered against a per-user daily token budget so cost can't run away.
The outcome. 20+ paying users in beta on a $35/month AWS stack. Sub-200KB JS on critical paths, an offline-capable PWA via Serwist, and the same Next.js bundle wrapped as an Android TWA with Bubblewrap — one codebase, Play Store install, works on a weak connection.
Natural-language question entered in the Next.js client. Tokenised, normalised.
Daily token spend is checked before any model call. Over-budget requests are refused outright — cost can't run away on a $35/mo box.
Profile, active learning path, chapter set, and prior daily tasks are read from the self-hosted PocketBase collections and passed as explicit context.
Anthropic Claude or NVIDIA behind one provider interface, prompted with the loaded records plus Indian-curriculum constraints (NCERT, JEE/NEET/UPSC).
Response is parsed against a schema before persisting. Invalid or off-syllabus output is rejected, never rendered to the student.
- BackendSelf-hosted PocketBase over hosted Supabase — auth, records, rules, and file storage in one binary on the box already being paid for, with no per-row quota to grow into.
- Mobile shippingBubblewrap TWA over React Native — same Next.js bundle, no duplicate codebase, Play Store install in under a week.
- Hosting$35/mo AWS EC2 + nginx + pm2 — predictable cost, no surprise bills, easy to step up to ECS if traffic warrants it.
- Performance budgetSub-200KB JS on critical paths — measurable, enforceable, falls straight out of Next.js bundle analysis.
- OfflineSerwist service worker over a native rewrite — the students who need this most are on entry-level Android and patchy data.