Keep these within reach while you build — they're the stuff you'll actually reach for when something breaks or you forget how to phrase a prompt. Skim them once, then come back when you need them.
Appendix A — Teen-friendly prompting cheat sheet
Tape this to the wall. Good prompting is 80% of using AI well.
The four habits
- Be specific. "Make a blue button that says Join and is centered" beats "make it look good."
- Give context. Tell Claude what you're building and what you already have.
- Go step by step. "Walk me through this one step at a time and wait for me" prevents overwhelm.
- Ask it to explain. End with "explain what you changed and why" — every time.
Power phrases
- "Assume I'm a total beginner."
- "Do this one step at a time and wait for me to confirm."
- "Show me exactly what you changed."
- "Why did that error happen and how do I fix it?"
- "Is there a simpler way to do this?"
- "Don't change anything yet — first explain the plan."
Anti-patterns
- Vague: "make it better/cooler/pop."
- Ten requests in one breath.
- Accepting code you can't explain at all.
- Copy-pasting errors without reading them yourself first.
Appendix B — The "debug with Claude" protocol
When something breaks (it will), follow this so students learn to fish:
- Read the actual error. Out loud. Half of errors say exactly what's wrong.
- Find where it printed — terminal, browser console (F12), or Vercel logs.
- Copy the full red text.
- Ask Claude: "I got this error: [paste]. Here's what I was doing: [context]. What does it mean and how do I fix it? Explain before changing anything."
- Read the explanation, then apply the fix.
- Re-run and confirm. If still broken, tell Claude what changed since.
Rule: try to read the error yourself for 30 seconds before pasting it. Building that reflex is the difference between a coder and a copy-paster.
Appendix C — Glossary (plain English)
- Terminal: a text way to command your computer.
- Claude Code: the AI coding tool in the terminal.
- Frontend: what the user sees (the page).
- Backend: code that runs on the server, hidden from users.
- Framework (Next.js): a pre-built project skeleton so you don't start from zero.
- Localhost: the practice version of your site, only you can see it.
- Deploy: put your site on the public internet.
- Vercel: free host that deploys your site.
- GitHub: cloud home for your code + its history.
- Git commit: a named save point.
- Database: a spreadsheet your website controls.
- Table / row / column: sheet / entry / header.
- Supabase: free hosted database + dashboard.
- API route: a backend doorway your app talks to.
- API call: asking another service to do something and getting an answer.
- Environment variable (.env): a secret your app needs, kept out of the code.
- Validation: checking input before trusting it.
- Transactional email: an automatic email triggered by an action.
- Resend: the email-sending service.
Appendix D — Safety, ethics & "don't ship your secrets"
Weave these in; don't save them for the end.
- Secrets stay secret. API keys never go in code pushed to GitHub. Use
.env. If one leaks, rotate it. (Show what a leaked key can cost.) - The most dangerous Supabase mistake: the service-role key bypasses Row Level Security — it can read and write everything, ignoring every policy. Use the anon (public) key in the browser/client; never expose the service-role key. It stays server-side, in
.envonly. This is the single most dangerous Supabase mistake for this kind of app. - Real people's data is a responsibility. No real personal data in practice databases. If a site ever collected real signups, people are trusting you with it.
- AI is confidently wrong sometimes. Verify anything that matters. Never ship AI output as fact without a human check.
- Don't trust user input or raw AI output. Validate input; constrain AI features.
- Be kind in public. Anything live on the internet has your name on it. Build things you'd be proud to show a parent.
- Honesty about age rules. We use tools the legit way (see Module 0). Faking your age to a service is a bad habit and can get you locked out.
- Credit and originality. AI helps you build; the ideas and the care are yours. Don't pass off others' work; don't generate harmful or mean content.
Appendix E — Assessment rubric
Reward shipping, understanding, and debugging — not polish.
It ships
- Beginning: Runs locally only.
- Solid: Deployed, mostly works.
- Strong: Live, stable, handles errors gracefully.
Understanding
- Beginning: Can't explain the code.
- Solid: Can explain the main parts.
- Strong: Can explain most lines + the data flow.
Prompting
- Beginning: Vague, one-shot.
- Solid: Specific, iterative.
- Strong: Specific, step-by-step, asks for explanations.
Debugging
- Beginning: Stuck → gives up.
- Solid: Uses the protocol with help.
- Strong: Reads errors, isolates, fixes independently.
Data & backend
- Beginning: No persistence.
- Solid: Saves/reads data.
- Strong: Clean form → API → DB flow + validation.
Craft & safety
- Beginning: Secrets exposed / messy.
- Solid: Secrets in
.env, tidy. - Strong: Secure, thoughtful, kind public content.
Grade the process, not just the artifact. A student who debugged hard and shipped something simple beats one who got lucky with a flashy result they can't explain.
Appendix F — Troubleshooting (the stuff that actually goes wrong)
- "command not found: claude" → Claude Code not installed / wrong terminal. The recommended install is the native installer (
curl -fsSL https://claude.ai/install.sh | bash) or Homebrew/WinGet — none of these need Node at all. If you instead use the npm method (npm install -g @anthropic-ai/claude-code), that one requires Node 18+; install the current Node LTS for it. See the Claude Code setup docs. - Won't sign in / can't authenticate → Needs a paid Claude plan (Pro+); free Claude plan excludes Claude Code. Check the run model from Module 0.
- Node too old → only relevant for the npm install method; install the current Node LTS (use nvm; don't
sudo npm). The native installer avoids this entirely. - OAuth pop-up blocked → school network/browser; test in advance, allowlist the domains.
- Works locally, breaks on Vercel → missing env vars in Vercel dashboard, or a build error. Read the build log, paste to Claude.
- Supabase site "broken" after a week → free project auto-paused; un-pause in dashboard (~1 min cold start).
- Database writes fail → Row Level Security policy; have Claude set a correct policy and explain it.
- Emails not arriving → unverified domain, spam folder, or daily limit hit. Instructor-owned, pre-verified domain avoids most of this.
- Secret got pushed to GitHub → rotate the key immediately, add to
.gitignore, never reuse it.
Appendix G — Sources & current limits (verify before each cohort)
These were current as of June 2026. Pricing, free-tier numbers, and age rules change often — re-check the linked pages before each new group.
Age / terms (the constraint that shapes the course)
- Claude / Claude Code: 18+ required; minor accounts can be detected and disabled. Anthropic minimum age
- Vercel: 16+, and under-18 needs a parent/guardian's permission for AI features — see Vercel's AI product terms. General Vercel Terms.
- Supabase: not intended for under-13. Supabase Privacy
- GitHub: 13+. GitHub Terms
Tools, install & cost
- Claude Code install & setup. The recommended install is the native installer (
curl -fsSL https://claude.ai/install.sh | bash) or Homebrew/WinGet — no Node required. The npm method (npm install -g @anthropic-ai/claude-code) needs Node 18+; if you use it, install the current Node LTS. Claude Code setup docs · npm package - Claude Code requires a paid plan; Pro is $20/mo, Max $100/$200/mo. Claude pricing · Use Claude Code with Pro/Max
- Vercel Hobby (free): ~100GB bandwidth, non-commercial, single developer, pauses at limits. Vercel Hobby plan · Vercel pricing
- Supabase Free: 2 active projects, 500MB DB, 1GB file storage, pauses after ~7 days idle. Supabase pricing
- Resend Free: 100 emails/day, 3,000/month; domain verification to send as your address. Resend pricing · Resend limits
For the instructor
These appendices are designed to be printed and reused across cohorts. Appendix A is a wall poster; Appendix B is the in-the-moment debugging script you run every time something breaks; Appendix E is the grading instrument referenced by the Module 8 capstone. The one thing that genuinely changes between cohorts is Appendix G — pricing, free-tier numbers, and especially the age/terms rules shift often, so re-check every linked page before each new group. Built ship-first on purpose: get a real thing live, then understand the layers underneath it. The goal isn't teens who can prompt an AI — it's teens who can prompt an AI and read what it wrote.