An AI teaching workspace that carries a lesson from standards through Google Classroom to returned grades.
I designed and built VeraTeach end to end — the product strategy, the AI architecture, and the systems underneath. It started as lesson generation and became something larger: an integrated workspace spanning planning, standards alignment, assessment creation, classroom publishing, and grading, with the teacher in control at every step.
The short version
Generating a lesson is one step. The product is the workflow around it — grounding, materials, publishing, and grading — collapsed into one workspace, with AI doing the drafting and the teacher keeping the decisions.

The workflow became the product.
Lesson generation is one step. What makes the product is the sequence around it — each stage a deliberate decision about where AI helps and where the teacher stays in control.
- 01
Planning
A lesson starts inside real structure — course, class, standards — not a blank prompt box. Teachers can write guidance that shapes generation before it runs, or import material they already have.
- 02
Grounding in standards
Hybrid retrieval grounds the lesson in a 100,000-record corpus of state standards, so alignment is verifiable rather than asserted.
- 03
Review & adaptation
Standards-aware review checks the lesson before it's taught, and one lesson adapts — shortened block, substitute, ELL — without losing its objective.
- 04
Materials
Quizzes, tests, worksheets, study guides, exit tickets and handouts generate from the lesson as editable assets the teacher can rewrite.
- 05
Publishing
A material publishes into Google Classroom — as a native Google Form where it's an assessment, or as a Doc or live link where it isn't.
- 06
Grading
Submissions come back into a grading workspace. Objective questions score automatically; written answers get AI-drafted suggestions the teacher accepts, edits, or ignores.
- 07
Returning grades
Approved scores go back to Google Classroom, closing the loop inside the tool the school already runs on.

AI as orchestration, not a single call.
The interesting decisions aren't which model to call. They're how retrieval, generation, routing, and approval fit together so the system stays correct, affordable, and accountable at every step.
One orchestration layer
Every AI capability — retrieval, generation, review, adaptation, material creation, grading suggestions — runs through a single execution seam with retry, timeout, and validation. That seam is where model routing, cost accounting, and evaluation hooks live, so the system improves in one place instead of feature by feature.
A standards corpus worth retrieving from
Alignment is only as good as what you can search. I built and maintain the corpus itself — 144 frameworks across 13 states, 103,934 records, with all 94,036 coded standards embedded for semantic retrieval — from authoritative state sources, each with its own document format and its own parsing failures. Retrieval then filters hard on jurisdiction and grade, ranks by vector similarity, and reranks, so the model reasons over candidates it cannot cross-contaminate across states.
Assessment as a round trip, not an export
Publishing a quiz means creating a real Google Form in the teacher's own Classroom, mapping every question so responses can be read back, matching submissions to students, and returning grades. Getting that loop to close — rather than stopping at 'export to Google' — is most of what separates a demo from a tool a teacher uses on a Tuesday.
Structured, teacher-approved outputs
Every call returns schema-validated output the rest of the system can trust, and every AI change is preview-first — engines persist nothing until a teacher approves. Immutable, trigger-written version history makes each change reversible and attributable.


The loop closes back inside Classroom
Publishing creates a real Google Form in the teacher's own Classroom and keeps the link to it, so submissions come back per class and each one hands off to grading on its own. That round trip — not the export — is what makes this usable on a Tuesday.
You can't ship AI you can't measure.
Evaluation is the part most AI products skip and the part I lean on hardest. Shipping AI teachers can trust means measuring quality deliberately — not eyeballing a few good demos.
Rubric evaluation
Lessons are scored against explicit, evidence-grounded criteria, so “is this good?” has a repeatable answer.
Regression harness
A library of scripted checks runs against real models, catching quality regressions when a prompt or model changes.
Model comparison
Model and prompt variants are compared on quality, latency, and cost — and the results drive the routing policy. One migration cut a workflow from 74s to 18s by measuring rather than assuming.
Corpus verification
Every standards framework is gated by coverage checks before teachers see it — counts, grade spans, and sampled text read back from the database against the source.
The tradeoffs I made on purpose.
AI suggests the grade; the teacher gives it
Objective questions score themselves. For written work the model drafts a score and a rationale, and stops there — the teacher accepts, edits, or ignores it. Grading is a professional judgment a teacher answers for, so automating the judgment would move accountability to something that cannot hold it.
AI as orchestration, not autonomy
The model drafts; the teacher decides. Preview-first isn't a UX nicety — it's how the product keeps professional accountability with the human who owns the classroom.
Correctness over coverage
Retrieval is bounded to a filtered candidate set even though a broader search would surface more. In a standards-aligned product, a confidently wrong suggestion is worse than a narrower right one.
Own the corpus rather than the integration
Licensing a standards API would have been faster. Building the ingestion meant meeting each state's own PDFs, spreadsheets and quirks — but it means alignment is verifiable, additions cost days rather than negotiations, and no vendor sits between a teacher and whether their lesson is correct.

Shipped, not staged.
VeraTeach is a deployed product, not a prototype. A teacher can sign up, subscribe, and use it without talking to me.
- Authentication with self-serve account recovery
- Stripe subscriptions and usage entitlements
- Managed Postgres with pgvector, migrations, and row-level security
- Google OAuth verified for production use
- Error monitoring and coverage checks over the standards corpus
A real system, built deliberately.
Every layer serves the product decisions above — grounding, evaluation, and teacher control. The stack supports the story; it isn't the story.
- Stack
- Next.js 16React 19TypeScriptSupabase / PostgresVercel
- Data & standards
- pgvectorMulti-state standardsAuthoritative ingestImmutable trigger-based versioning
- AI orchestration
- One orchestration layer across all AI stagesModel-agnostic routing via AI GatewayCost / stakes-based model routingRetrieval where correctness mattersPreview-first, teacher-approved writes
- Google Classroom
- Verified OAuth with encrypted tokensPersistent period → course mappingNative Google Forms quiz creationPublishing as Docs · Forms · live linksIdempotent re-publishGrades returned to Classroom
- Production
- Stripe subscriptionsUsage entitlementsAuthentication & account recoveryError monitoring
- Key Systems
- Hybrid standards retrieval (filter + vector + rerank)AI orchestration across stagesInstructional material generationAssessment → publish → grade → return loopAutomatic objective scoringAI-assisted free-response suggestionsLesson import from existing materialCopy-on-write scheduled instancesDestination-abstracted publishing
Generating a lesson was never the hard part; a model does that in seconds. The product is everything around it — the standards corpus, the assessment loop, the grading round trip — orchestrated so AI stays useful and the teacher stays accountable.