A four-session workshop for non-technical builders
Vibe Coding Workshop
Over four sessions, you'll take your own idea from a one-page plan to a live web app you can share, built with Claude Code. You'll learn just enough about how the web works to direct the AI that writes the code. No coding experience needed.
Cost: a Claude Pro plan at $20/month, plus a domain if you want one (around $10/year). Everything else is free at workshop scale.
Setup
You install Claude Code by hand. Claude installs everything else. Finish steps 1 to 3 before the first session. Your checkmarks are saved in this browser.
01 Create your accountsFive sign-ups. Use your GitHub account to sign in to the others where you can.
02 Install Claude CodeThe one thing you install by hand.
Rather not use the terminal? Install the Claude desktop app and open the Code tab, or use the VS Code extension. Everything in this class works the same way there.
- Download
-
Mac
curl -fsSL https://claude.ai/install.sh | bash
Windowsirm https://claude.ai/install.ps1 | iex
- Setup guide
03 Let Claude install the restPaste one prompt and follow along.
Claude checks what you already have, installs what's missing and explains each step. It will open your browser when you need to sign in.
I'm new to coding and I'm setting up my computer to build web apps. Check whether Git, Node.js (LTS version), the GitHub CLI and the Vercel CLI are installed. Install anything that's missing, one tool at a time, and explain in one sentence what each tool does. Then help me sign in to GitHub and Vercel from the terminal. When you're done, show me the version of each tool.
04 Connect SupabaseBefore Session 3, and only if your app saves data.
This adds the Supabase MCP, which lets Claude create tables and look at your data for you. It's the one MCP we use in class. Learn step 3 explains what MCPs are.
Add the official Supabase MCP server to Claude Code. Look up the current setup instructions in Supabase's docs, then walk me through signing in.
Learn
The ideas you need to follow what Claude is doing and steer it well.
01 What you're buildingA web app that runs on your computer while you build it, and on a public URL once you ship.
Every app in this workshop has two lives. While you work, it runs on a local server on your own computer. You change something, save, and see it right away. Nobody else can see it. When you're ready, you publish the same code to a web server, and it gets an address anyone can open.
- Local
localhost:3000. Fast, private and safe to break.- Live
your-app.vercel.app. Public, always on, and updated every time you push new code.- The bridge
- GitHub sits in between. You save your code there, and Vercel picks it up from there.
Learn more
02 How the web worksThe minimum vocabulary you need.
You won't write this code yourself, but you'll see these words constantly. Knowing what each one does helps you read Claude's plans and notice when something goes off track.
- Terminal
- Typing commands instead of clicking. Start with
pwd(where am I),ls(what's here),cd(go into a folder) and Ctrl+C (stop what's running). - Local vs. web server
- One runs on your laptop while you build. The other runs in a data center so anyone can reach it.
- Framework
- A starter kit for apps. Everyone in this class uses Next.js, which handles pages, logins and data in one project. Node.js is what runs it on your computer. Astro is a good choice for content sites later on.
- Packages & npm
- Reusable code other people wrote.
npm installadds a package, andpackage.jsonkeeps the list. - GitHub
- Where your code lives online, with a full history of every change.
- Commit habit
- Every time something works, ask Claude to commit it. A commit is a save point you can always go back to.
- Hosting
- Vercel turns the code on GitHub into a live URL. It's free at workshop scale.
- Database
- Where your app remembers things like users, entries and uploads. We use Supabase.
03 How vibe coding worksDescribe what you want, then steer the AI that writes the code.
Claude Code reads your project, writes the code, runs commands and fixes errors. Your job is to be clear about what you want and to check that what you got actually works.
- Claude Code
- Your building partner. It runs in the terminal, in the Claude desktop app, or inside VS Code. The cheat sheet lists the keys and commands you'll use most.
- CLAUDE.md
- A briefing file in your project that Claude reads at the start of every session. Type
/initto have Claude write the first version. - Skills
- Reusable instructions for tasks you repeat, like deploying or writing release notes.
- MCPs & connectors
- Plugs that let Claude work inside your other tools. Most are built on that service's API. In class we use one, for Supabase. For GitHub and Vercel, Claude uses their command-line tools instead.
- Prompting
- Say where, what, and what done looks like. Press Shift+Tab to switch modes. The current mode shows under the prompt box. In the desktop app, use the mode menu.
- Plan mode
- Claude reads your project and writes a plan, but changes nothing until you approve it. Use it before every new feature. To plan a single message, start it with
/plan. - Auto mode
- Claude edits files and runs commands without asking you each time, while a built-in safety check blocks risky actions. It's the default in recent versions. Commit before a big change so you can undo it.
- Debugging
- Paste the full error. If that doesn't fix it, describe what you expected and what happened instead. How to get unstuck has the full routine.
- Reviewing AI work
- Check the plan before Claude starts, then test the result yourself in the browser. Claude saying it's done doesn't mean it works.
Build
Plan it, build it, ship it. Each step shows a worked example app called Potluck.
01 PlanTurn your idea into a spec Claude can build from.
Most vibe coding problems start before any code exists. A clear, small spec gives Claude something concrete to build, and gives you something to check its work against.
- Problem & thesis
- Fill in: My app helps [who] do [what] so they can [why].
- User flow
- Sketch the 3 to 5 steps a person takes from opening the app to getting what they came for.
- PRD
- A one-page product requirements document. Write it with an LLM using the prompt below, then save it as
PRD.mdin your project folder. - Conceptual references
- Two or three apps that solve a similar problem. Note what to borrow and what to avoid.
- Visual references & style guide
- Screenshots of things you like, plus your colors, fonts and tone of voice in a few lines.
- Scoping
- List what's in the first version and what isn't. Aim for one feature that proves the idea.
I want to build a web app. Interview me one question at a time about the problem, who it's for, the main thing they do in the app, and what's out of scope. When you have enough, write a one-page PRD with these sections: problem statement, target user, solution thesis, core user flow (3 to 5 steps), list of screens, must-have features (3 at most), not in the first version, and visual direction.
Example app · Potluck
- Thesis
- Potluck helps dinner hosts see who's bringing what, so they don't end up with five salads and no dessert.
- User flow
-
- Host creates a dinner
- Shares the link
- Guests claim a dish
- Everyone sees the list
- Must-haves
- Create a dinner with a date and dish categories. Share one link. Claim a dish with your name.
- Not yet
- Accounts and logins, reminder emails, recipes.
02 BuildScaffold from your PRD, go live on day one, then build your core feature.
Work in small steps. Plan, build, test in the browser, commit. Your app goes live in the first session, so every change after that is an update to something real.
- Scaffold from your PRDSession 1
- Claude plans a Next.js project from
PRD.md, then creates it, writes your CLAUDE.md and starts the local server. - Go live on day oneSession 1
- Put the project on GitHub and connect it to Vercel, even if it only says hello. From then on, every push updates your live URL.
- Build your core featureSession 2
- One screen, one feature. Start each change in plan mode and test it in the browser before you commit.
- Connect dataSession 3 · if needed
- Add a Supabase database when your app has to remember things between visits. Connect it first in Setup step 4.
Read PRD.md. Propose a file structure for a Next.js app and the first three build steps, and wait for my OK before writing any code. Then create the project, write a CLAUDE.md that summarizes the PRD and the tech stack, make a first commit, and start the local server.
Create a private GitHub repository for this project and push the code. Then deploy it to Vercel, connect it to the GitHub repository so every push redeploys, and give me the live URL.
Example app · Potluck's CLAUDE.md
# Potluck A shared sign-up list for dinner parties. The full spec is in PRD.md. ## Stack Next.js, Tailwind CSS, Supabase for data, hosted on Vercel. ## Commands npm run dev starts the local server at localhost:3000 ## Rules - Build only the three must-have features in PRD.md. - Mobile first: guests open the link on their phones. - Commit after each change that works.
Learn more
03 ShipTest changes safely, put them live, and show off your app.
Once people use your app, you need a place to try changes before everyone sees them. That's what staging is for. On Vercel you get it for free.
- Staging vs. productionSession 3
- Staging is a test version only you look at. Production is the version everyone sees. On Vercel, every branch gets its own preview URL, and the
mainbranch is production. - Environment variables
- Secrets like API keys go in Vercel's settings, set separately for Preview and Production. Never commit them to GitHub. A separate test database for previews is optional.
- Deploy to production
- When a change works on its preview URL, merge it into
main. Vercel deploys it automatically. - Custom domainSession 4
- Buy a domain on Cloudflare, then add it in your project's Domains settings on Vercel. Ask Claude to walk you through the DNS records Vercel asks for.
- Demo & shareSession 4
- Two minutes: the problem, who it's for, and a live walkthrough of the one feature that proves it.
Make this change on a new branch and push it so I get a preview URL. Give me the link, and don't merge into main until I say it works.
Example app · Potluck's two addresses
- Production
potluck.vercel.appis what guests open.- Preview
potluck-git-reminders.vercel.appis the branch where reminder emails are being tested.
? How to get unstuckFour things to try, in order, when something breaks.
- Paste the full errorFrom the terminal or the browser, into Claude Code. A screenshot works too.
- Say what you expectedDescribe what should have happened and what happened instead.
- Roll back and retryStill broken after three tries? Ask Claude to undo everything since your last commit, type
/clear, and ask again in a new way. - Ask the groupPost in the class channel with a screenshot, the error and what you tried, or bring it to office hours between sessions.
Cheat sheet
The keys and commands you'll use most in Claude Code. The shortcuts are for the terminal and can differ in the desktop app and VS Code.
01 Keyboard shortcutsStop, undo, switch modes and type faster.
Stop and undo
- Esc
- Stop Claude mid-response so you can redirect it. It keeps the work done so far.
- Esc Esc
- On an empty prompt, opens the rewind menu so you can go back to an earlier point in your code and conversation. With text in the prompt, clears it.
- Ctrl+C
- Stop what's running. On an empty prompt, press it twice to quit.
Modes
- Shift+Tab
- Switch between manual, accept edits, plan and auto mode. The current mode shows under the prompt box.
Typing
- Shift+Enter
- Start a new line without sending. If that sends instead, type
\and then press Enter. - ↑
- Bring back an earlier prompt.
- Ctrl+R
- Search your earlier prompts.
- Ctrl+V
- Paste a screenshot so Claude can see it. On Windows, use Alt+V.
At the start of a prompt
- /
- Open the command menu. Type a few letters to filter it.
- @
- Point Claude to a file, like
@PRD.md. - !
- Run a terminal command yourself, like
! git status. Claude sees the output. - ?
- On an empty prompt, show every shortcut.
See more
- Ctrl+O
- Show the details of what Claude did, step by step.
- Ctrl+T
- Show or hide Claude's to-do list for the current task.
02 Slash commandsType these at the start of a prompt.
Sessions
/resume- Go back to an earlier conversation. Pick it from a list.
/clear- Start a fresh conversation. Your CLAUDE.md stays. Use it when you switch to a new task.
/rename- Name this conversation so it's easy to find in
/resume. /exit- Quit Claude Code.
Undo and review
/rewind- Roll your code and conversation back to an earlier point. Same as pressing Esc twice.
/undoworks too. /diff- See every change in your project that you haven't committed yet.
Context and usage
/context- See how full the conversation's memory (the context window) is.
/compact- Summarize the conversation so far to free up space. Add a note on what to keep, like
/compact keep the PRD decisions. /btw- Ask a quick side question without adding it to the conversation.
/usage- See how much of your plan's usage limit you've used.
Project setup
/init- Create a starter CLAUDE.md for your project.
/memory- Edit your CLAUDE.md and what Claude remembers between sessions.
/plan- Switch to plan mode. Add a task to start right away, like
/plan add a contact form. /model- Switch to a different Claude model.
/mcp- See your connected tools and sign in to them.
/skills- List the skills Claude can use.
Help
/help- List every command.
/doctor- Check your setup and fix problems.
03 Terminal commandsStart Claude, pick up where you left off, and run your app.
Type these in the terminal before Claude is running. Claude works on the folder you start it in, so go into your project folder first.
cd my-app- Go into your project folder. Use your folder's name.
claude- Start a new conversation.
claude -c- Continue your most recent conversation in this folder.
claude -r- Choose an earlier conversation to pick up.
claude update- Update Claude Code to the latest version.
npm run dev- Start your app's local server. Press Ctrl+C to stop it.