Giáo Án AI
A lesson plan generator for Vietnamese primary school teachers, designed to replace the two to four hours of nightly paperwork teachers describe with something a teacher can finish before dinner. I built the code, the pricing, and the funnel; when it opens, I am also the support inbox.

1,489
lesson templates
counted from the template files in the product repository, August 2026
13
subjects
Kết Nối Tri Thức curriculum, grades 1 to 5
8
subjects, TT27
TT27 evaluation coverage in Giáo Án AI
docx and xlsx exportCV 2345 and Kết Nối Tri Thức compliant
Problem
Vietnamese primary school teachers write lesson plans to a national curriculum standard, and the paperwork around them is heavy: plans compliant with CV 2345 and Kết Nối Tri Thức, then TT27 evaluations on top of them. Most of it happens at night, after the actual teaching.
The work is highly structured, which is exactly what makes it a good target. The teacher's judgment is the valuable part. The formatting is not.
Constraints
Compliance is not negotiable. A plan that does not match the required structure is worthless to a teacher, no matter how well written it reads, so the output format is a hard requirement rather than a preference.
Teachers need the result in the tools their schools already use, which means docx and xlsx export rather than a web view.
I run this alone. Anything I ship, I will also support, so the failure modes have to be ones I can explain to a teacher over chat.
What I did

Generation starts from a compliant template, chosen by grade, subject, and lesson. Template library
I built a template library covering the curriculum, 1,489 lesson templates across grades 1 to 5 and 13 subjects, so generation starts from a compliant structure instead of trying to reach one by instruction alone.
Server-side normalization
Around the AI providers (Anthropic, Gemini) I put a server side layer that shapes responses and normalizes errors, so the product fails in a small number of predictable ways rather than passing raw model behavior to a teacher.
docx and xlsx output
Output goes out as docx and xlsx, and TT27 evaluations for 8 subjects export to Excel.
Decisions
| Decision | Why | What I rejected | What it cost |
|---|---|---|---|
| Start generation from a compliant template | The plan lands in a shape the teacher already recognizes, so reviewing it is fast and editing it is local. | Reaching compliance by instruction alone. | |
| Normalize provider errors on the server | The product fails in a small number of predictable ways I can explain over chat. | Passing raw model behavior through to a teacher. | |
| Export docx and xlsx | Teachers need the result in the tools their schools already use. | A web view. |
Details that mattered
The interesting decisions are not the model ones. They are about which parts of a teacher's work should stay manual, and how much structure to impose before generation rather than after it.
Starting from a compliant template makes the output boring in the way it needs to be. The generated plan lands in a shape the teacher already recognizes, so reviewing it is fast and editing it is local.
The stack is Next.js 16, React 19, Postgres with Drizzle, and Clerk for auth. I also own positioning, pricing, and the funnel.