ai · July 2026
AI Academy
A Georgian-native AI e-learning platform: upload a syllabus PDF and it becomes a full interactive course — structured lessons, quizzes, and a Socratic AI tutor that only teaches from the lesson's own material. Spaced repetition closes the retention loop; Bank of Georgia checkout sells the courses.
Tornike Kalandadze — software engineer & technical lead, client delivery since 2019 · Tbilisi (GMT+4)

Problem
Georgian students had video libraries, not teachers: nothing personalized, nothing patient, nothing in native Georgian. And building courses by hand doesn't scale — a syllabus is where most course ideas die.
Approach
A three-stage LLM pipeline (Gemini parses and expands, a second review pass gates quality) turns any syllabus into a coherent course, each generation step carrying a distilled summary of earlier lessons so the course builds on itself. Claude tutors from a per-lesson system prompt rebuilt from that lesson's own content — grounded by construction, with prompt-injection filters at the API boundary. Every LLM response is Zod-validated before it touches Postgres, and the whole pipeline is abortable: stop it and the partial course is deleted, no orphaned token spend.
Impact
A working business, not a portfolio piece: real students, real Bank of Georgia payments with reconciliation and refunds, anti-sharing IP limits on accounts, and an admin panel that knows what every AI call cost. The retention loop is measurable — SM-2 re-queues what each student got wrong and a daily five-minute review closes it.
Through every lens
01 · Full-stack
Next.js 16 App Router over Supabase Postgres with RLS, 30+ route handlers, SSR auth, an enrollments table as the source of truth, and Bank of Georgia server callbacks. Prices always read from the DB, never from the client.
02 · Mobile
Students learn on phones: paged lesson views, streak-driven daily sessions, and a five-minute /review loop sized for a bus ride.
03 · Frontend
Bilingual by architecture, not translation buttons: locale-routed /[locale] pages, natively-written Georgian content with cached AI translation for English mode, rich markdown lesson rendering.
04 · Automation
The product IS the pipeline: syllabus in, full course out — parse, expand, generate, review-gate, persist. Abortable at every stage with cost-aware token budgeting and per-call usage logging.
05 · Security
Defense-in-depth around the LLMs: central prompt-injection filters and rate limits before input reaches a model, Zod at every LLM boundary, server-gated admin, anti-sharing guard (warn at 5 IPs/30 days, block past 7), and a written threat model in SECURITY_REVIEW.md.
06 · AI
Two providers behind one abstraction — Gemini 2.5 generates, Claude Sonnet 4.5 tutors and grades. The tutor is grounded per-lesson and refuses off-topic questions rather than hallucinate; SM-2 spaced repetition (implemented from scratch) decides what it re-teaches.
Built with
Next.js · React · TypeScript · Tailwind CSS · Supabase · Claude Sonnet 4.5 · Gemini 2.5 · Zod · Vercel
Notes
An end-to-end product, not a demo. A teacher uploads a syllabus (PDF/DOCX/Markdown) and a three-stage LLM pipeline — parse, expand, generate — turns it into 10–15 minute sub-lessons with key concepts, inline checks, and a graded quiz, all in native Georgian. Claude Sonnet 4.5 streams the tutoring, strictly grounded per-lesson so it refuses to hallucinate beyond the material. Wrong answers re-surface on an SM-2 spaced-repetition schedule; XP, streaks, and badges keep students coming back; parents watch progress through revocable share-token dashboards. Payments run through Bank of Georgia hosted checkout with promo codes and one-click admin refunds, and a server-gated admin panel tracks per-call AI token cost.