I've spent the last 7+ days training school teachers in Mirpurkhas, Pakistan, on using AI in their classrooms. Three weeks in, a teacher asked me something I didn't have an answer for: "If 40 students use this activity, how do I actually see what they answered?"

I'd been handing teachers a Claude Artifact, a Google Form, a Sheet, and an n8n workflow taped together. It worked, barely, and only because I was standing next to them. The moment I left the room, it fell apart.

That question is the whole product.

What it does

Sabaq turns a topic or a photo of a textbook page into a bilingual quiz in about a minute. A teacher publishes it, projects a QR code, and students answer from any phone. No account, no app, first name only. The teacher watches responses land in real time. Then one button does the part no spreadsheet can: it reads every wrong answer across the whole class and explains why students got it wrong, not just that they did with a five-minute re-teach plan and a WhatsApp-ready note home to parents, in Urdu and English.

I tested it end-to-end on a quiz about AI myths (recursive, since the tool teaching people about AI was itself built with AI) and watched three people's answers land live. The class average came out to 53%. The AI's first insight was not "question 2 was hard." It was that all three of us struggled to infer an article's purpose from its title alone. A score alone can't do that. As its something a teacher can act on Monday morning.

How I built it

Every line came out of Codex, running on GPT-5.6. Before writing any code I wrote the whole product as a spec first. A locked stack, a full API contract, a design system, a database schema and handed it to Codex as one long build instead of a string of small prompts. That's the difference between "AI wrote some code" and building with an agent. Codex owned the architecture decisions inside guardrails I set, not the other way around.

At runtime the app doesn't touch GPT-5.6 at all. It calls Gemini 2.5 Flash and Flash-Lite through OpenRouter, which puts the cost of a full classroom session under a cent. A teacher in Mirpurkhas can't afford a SaaS subscription. If Sabaq only worked because I was paying for GPT-5.6 tokens out of pocket, it wouldn't survive contact with the people it's actually for.

Challenges

Urdu broke my first layout on contact. Nastaliq script clips at normal line-height and runs longer than the English it's paired with, so every card had to be built for the longer, taller string first, not the English one. The bigger challenge was scope: three days and a real classroom deadline meant "no accounts, no realtime infrastructure" wasn't a limitation but survival. Every feature I didn't build is one less thing that could break on stage.

What I learned

The hardest part of building an education product is the classroom instead of the model. A teacher with a projector and forty kids on cheap Androids and patchy 3G doesn't care about my architecture. She cares whether the QR code scans on the first try.

What's next

Real teachers are already asking for it. Grading handwritten answer sheets from a photo is the obvious next step. I scoped it out of this build on purpose, because it's a harder, riskier problem than I had time to get right this week.

Built With

Share this project:

Updates

Submission history