Want one of these for your team?
30-min scope call. By the end you'll know what we'd build, in what order, what it costs.
Conversational document agent over student coursework with auto-generated practice questions. A Tier B engagement — owned codebase, MVP shipped on day 30, real students by week 6.
The client is an edtech founder who'd validated demand: students preparing for professional exams wanted a tool that could read their coursework PDFs and answer questions, then quiz them on what they'd just learned. The market signals were clear; what was missing was a working product to put in front of paying users.
They'd spent three months on contractor-built prototypes that demoed well in 30-second clips and broke the moment a student uploaded a 400-page textbook. The retrieval was naive, the conversation lost context after a few turns, and the auto-generated questions skewed either too easy or factually wrong.
This is a textbook Tier B fit. The founder needed an MVP fast, owned in their repo, ready for real users to push on. Not a prototype. Not a "platform." A product.
The student uploads their coursework PDFs. The indexer chunks each document with overlap, embeds the chunks, and stores them in Supabase's pgvector — one library per student so retrieval can't bleed between users. Indexing finishes in seconds for typical textbook chapters.
Two agents run on top of the vector store. The chat agent answers questions in the student's library, citing the source page on every claim. The quiz agent generates multiple-choice questions from a passage the student picks (or a chapter the chat agent surfaces), with answer explanations grounded in the source text.
Both agents share retrieval logic. The chat agent feeds its retrieval context into the quiz agent when a student says "quiz me on what we just covered" — that handoff is the difference between a chatbot and a study tool. The whole UI is a Next.js app the founder owns end-to-end.
Walked through the existing prototype, identified the failures, agreed on the smallest possible MVP that would pass real-student testing. Cut three "nice to have" features in the first hour.
Days 1 — 2Built the upload, chunking, embedding, and chat path end-to-end first. No quiz, no auth flourishes. Got document chat working before anything else.
Weeks 1 — 2Quiz agent landed in week 3. First iteration round used founder feedback on 50 generated questions. Second round used real beta-student feedback in week 4.
Weeks 3 — 4Deployed to production on the founder's domain, MVP shipped on day 30. Loom walkthrough, runbook, 30-day support tail. Two iteration rounds inside the SOW, one held in reserve in case the launch surfaced a regression.
Week 5Next.js for the app. The founder wanted a single deploy target, server components for the data-heavy library views, and a stack their next hire could pick up. OpenAI for the agents — at MVP scale, the latency and cost story were better than alternatives we tested, and function-calling on the quiz-generation rubric was reliable from day one.
Supabase as the everything-else layer: auth, Postgres, pgvector, file storage, edge functions. One vendor, one dashboard, one set of secrets. For a Tier B MVP this consolidation was the right call — the founder didn't need a polyglot infra story for 100 beta users.
Considered and rejected: a separate vector DB like Pinecone (extra service for no measurable retrieval gain at this scale), Anthropic Claude for the agents (similar quality on this workload, OpenAI's structured-output reliability won the bake-off), and a fully serverless agent layer on Cloudflare Workers (good idea, would have added a week we didn't have).
Illustrative ranges. Specific client metrics are confirmed under NDA. Numbers shown reflect reported outcomes at handover.
30-min scope call. By the end you'll know what we'd build, in what order, what it costs.