How it works
101 Build: six-week map
Course title. Build: from never used AI to a live product someone else can use.
Who. A non-technologist. Email, documents, maybe a ChatGPT conversation. Has never shipped software. Laptop and a Cursor subscription (Premium floor) in hand.
Shape (Joel, 2026-10-26). Start local: learn the workbench and set the agent up properly before anything goes online. Then move to GitHub and Vercel, draw the three-box map and write deterministic checks before building data and login, wire in secrets + an LLM API + email + Sentry, work inside someone else's project, and ship.
Course objective. In six weeks they can set up an AI agent with rules, commands, and skills, direct it to build a web product with login, data, an AI feature with human approval, and email, check it with tests that do not lie, deploy it, and put it in front of a stranger. They return able to prototype, design an AI workflow with a spend cap, and pick up someone else's project.
What "capable" means (not a quiz). A stranger used a thing they built. A classmate got their project running from the docs alone. The record (repo + transcripts) is intact. They can name, in their own words, what the machine is, how it lies, and what they check before they believe it.
Core talking objectives (what they can say to a manager by week 6).
- An LLM predicts the next word. Fluent and wrong is normal. "Done" is its favorite word.
- I set the agent's rules in files, not in chat: rules, commands, skills.
- The rendered page and the dashboard are the truth. The chat is a guess. A check that runs the same every time beats both.
- I keep the record in GitHub. If it is not pushed, it did not happen.
- Keys never go in chat. The database refuses the wrong person, not the page. When it breaks in production, I hear about it first.
- I can pick up someone else's project, run it from its docs, and improve it. Mine can be picked up the same way.
- I know when to build, when to buy, when to automate, and when a prompt is enough.
How every Monday works (90 minutes, same ritual from week 2).
| Min | Beat |
|---|---|
| 0–15 | The lie of the week: a live demo of one fail mode, named in the room. |
| 15–40 | The idea, in plain language. No slides past a three-box drawing. |
| 40–75 | Hands on. Everyone does the thing. Instructor walks the stuck. |
| 75–90 | Buddy duty starts in the room. Habits restated as rules, not theory. |
Week 1 runs its own shape (install, tour, first conversation). Two 30-minute office hours mid-week. 8–15 hours including the session. Success is the Friday gate, signed by someone other than the author.
The six weeks
| Week | Title | Learning objective | They can say | Friday success |
|---|---|---|---|---|
| 0 | Before Session 1 (bring list only) | Nothing to learn. A laptop that can install software, a phone, an inbox, two hours. | — | Session 1 link received. |
| 1 | Cursor and the IDE, locally | The workbench (@file, diff, checkpoints); what an LLM is and how it lies; AGENTS.md (with ask-it-to-ask), commands, skills. | "I caught it wrong. My rules live in AGENTS.md. I run /done-check before I accept anything." | Buddy watches on a call: page on localhost, a rule obeyed, /done-check run, two-run table. |
| 2 | Off local: GitHub, Vercel, the build loop | Sign up, publish the local project, host it. Progress lives in PRs; the preview is the truth. | "It is live. I work in small asks, I look at the preview, I merge on purpose." | Live URL on the buddy's phone. 5 PRs with buddy preview comments. Transcripts in the repo. |
| 3 | Plan before you build: three boxes, checks, data, login | Three-box map (Browser → Server → DB), test vs real user data (PII), deterministic CI checks, two tables, login + RLS. | "I planned the three boxes before I built. A check, not the agent, tells me the refusal works." | PLAN.md first. Buddy refused the partner's rows. Refusal check green in CI. |
| 4 | Secrets, an AI feature, email, and Sentry | Keys in env, rotation, spend cap. Server-side LLM API call (system prompt, structured output, human approval) → Resend email. Sentry alerts. | "My keys are in env, my LLM call has a spend cap and human approval, my app sends email, and Sentry alerts me when it breaks." | Scan clean. Rotation witnessed. Spend cap set. Approved AI draft received via Resend. Sentry error caught and fixed. |
| 5 | Someone else's project | Run a classmate's project from its docs, ship to it, evaluate it, fix your own. | "I got someone else's project running without asking them, and I shipped to it." | PR merged in a classmate's repo. Evaluation filed. Own handoff gaps fixed. |
| 6 | Capstone | Product live; brief to classmates; exam. | "Someone who is not me used this. I briefed it with the product on screen. I sat the exam." | Domain live. Outside user row. Brief delivered. Scan clean, CI green. Exam sat. |
Teaching objectives and competencies by week
Competency ids match program.json and learning-record.md. Draft for weeks 2–6; firm once each session is written.
| Week | Teaching objective (what I must make happen) | Competencies |
|---|---|---|
| 1 | Install and tour Cursor (@file, checkpoints). Have them catch the AI wrong. Show chat rules fading and AGENTS.md (incl. ask-it-to-ask) holding. Build /done-check together. | C1, C2, C4 |
| 2 | Sign everyone up and get the local project live. Show declared-done live. Make small PRs and checking the preview the default loop. | C3, C4, C8 |
| 3 | Draw Browser → Server → DB and test vs real data (PII). Make planning come before building. Show an agent's claim failing a deterministic check. Get data, login, and RLS live. | C1, C2, C5, C7 |
| 4 | Show where keys live, set a provider spend cap, and rotate a key in the room. Wire one server-side LLM call with human approval into Resend email, and catch a real error in Sentry. | C5, C6, C7, C9 |
| 5 | Put every student inside a classmate's project with only the docs. Make the evaluation honest. | C6, C8 |
| 6 | Get a stranger onto every product. Brief the product, never the chat. | C8, C9 |
Exam Whisper (async, 5 minutes/week in weeks 1–5 homework). Keeps exam vocabulary out of Monday live build time while covering every concept on Google Cloud GenAI Leader / AWS AI Practitioner:
- Week 1: AI vs. ML vs. GenAI, foundation models, training vs. inference, context window.
- Week 2: Zero-shot vs. few-shot, chain-of-thought / reasoning models, multimodal.
- Week 3: What data is PII, RAG vs. fine-tuning vs. prompting (plain-English tradeoffs), embeddings / vectors.
- Week 4: Tokens and pricing, system prompt vs. user prompt, structured output, agent = model + tools + loop, human-in-the-loop.
- Week 5: Bias and fairness in outputs, copyright/IP, disclosure, and when not to use AI.
Not in 101 any more: autonomous multi-step agents (we teach a single-step LLM call with human approval in week 4; multi-step moves to 201), two roles (week 3 has one role: you see only your own rows), Stripe.
Lesson plan format (agreed on week 1)
Each week is one file, content/101/week-N/session.md, in this order: purpose and arrival state; objectives (teaching, learning with depth/competency/evidence, talking); success (room at minute 90, Friday gate); prep; run of show with beats and must-says; Tuesday–Thursday; office hours; Friday gate; notes to self; sources. Run by Joel, so beats and must-says, not a full script.
Session 1 is written next to this file. Weeks 2–6 stay as this map until Session 1 is tuned.