Studio Hyra University
Roast My Website
Build a real AI-powered app from scratch. Step by step. Deploy it today.
10 lessons · ~4-6 hours hands-on
Lesson 01
Set up the project
A fresh Next.js project with Claude Code configured and ready. 10 minutes.
Open VS Code and the terminal
Open VS Code. In the menu bar at the top, click Terminal → New Terminal. A panel opens at the bottom. This is where you type commands.
Install Claude Code
If you see <strong>"npm: command not found"</strong>:
If you see "npm: command not found":
- Go to nodejs.org
- Click the green download button
- Install it (click through the installer)
- In VS Code, close the terminal panel (click the X on it) and open a new one: Terminal → New Terminal
- Try the command again
Start Claude Code
Type claude and press Enter. A browser window opens asking you to sign in. Sign in, click Authorize, come back to VS Code.
You're now in Claude Code. The terminal looks different — it has an input area where you type messages to Claude.
Create the project
Claude works through this. It might ask:
- "Do you have a GitHub account?" → If not, Claude helps you create one. If yes, a browser window opens — click Authorize.
- "Docker Desktop needs to be running" → Open Docker Desktop from Applications (Mac) or Start Menu (Windows). Wait for the whale icon. Tell Claude it's running.
Open the project in VS Code
- Click File → New Window (a fresh VS Code opens)
- Click File → Open Folder
- Navigate to your Desktop, find roast-my-website, click Open
You see the project files in the left sidebar.
Start Claude Code in the project
Open the terminal: Terminal → New Terminal. Type claude, press Enter.
Start Docker and see the project
Claude tells you the address. Open it in your browser.
If Claude says "port is already in use":
Create CLAUDE.md
Check everything
Note
Build This
Run the init command. Open Claude Code. Ask it about the project. If it answers correctly, you're ready.
Lesson 02
The URL input form
The homepage with a URL input and submit button. Clean, dark, one purpose.
Enter plan mode
Press Shift+Tab. Look at the bottom-left corner of Claude Code. It now says Plan Mode. In this mode, Claude thinks and plans but doesn't change files.
Describe the homepage
Claude suggests a plan. Read it. If you want to change something:
Build it
Press Shift+Tab again. Bottom-left no longer says Plan Mode. Now Claude can change files.
When Claude is done:
Open the URL in your browser. You should see your homepage.
Make it look better
Refresh the browser after each change. Keep going until it looks good.
Add validation
Test it: click the button with nothing typed. Then type "asdf" and click it.
Save
Build This
Build it. Don't overthink. Describe the form to Claude, let it build, iterate once on the design. Ship the homepage.
Lesson 03
The AI roast
An API route that takes a URL, sends it to AI, and returns a structured roast with scores.
Plan the roast
Press Shift+Tab for plan mode.
Press Shift+Tab to exit plan mode.
The AI connection
Claude might ask for an API key:
Claude tells you: go to console.anthropic.com, find API Keys, create one, copy it. Paste it when Claude asks.
Try it
Paste a real website URL in the form. Click "Roast it." Wait a few seconds. You should see scores and feedback.
Refine
Test again. Keep refining:
Save
Build This
Roast your own website first. Then roast a competitor's. Compare the scores.
Lesson 04
The roast display
A beautiful result component with animated scores, category cards, and feedback. The thing people screenshot.
Redesign the scores
Fine-tune
Second pass
Save
Build This
Run a second pass on the display component. Fix what Claude finds. This is how the second pass habit starts.
Lesson 05
Save roasts to Supabase
Roasts saved to a real database. Results persist and can be shared.
Set up the database
Claude might ask for your Supabase credentials:
- Go to supabase.com, open your project
- In the left sidebar, click Settings, then API
- Copy the Project URL and paste it to Claude
- Copy the Service role key (click "Reveal" first) and paste it to Claude
If Claude asks "Do you want me to set up a direct connection (MCP) to the database?" — say yes.
Connect the app
Test it
Roast a website in your browser. Then:
Refresh the browser page. The roast should still be there.
Save
Build This
Roast a site and verify it appears in your Supabase dashboard. That's your first database-persisted feature.
Lesson 06
Shareable roast pages
Every roast gets its own URL. Dynamic routes, SEO metadata, OpenGraph previews.
Individual pages
Social media previews
Share button
Test it
Roast a site. You land on the unique page. Click "Share this roast." Open a private window (Cmd+Shift+N on Mac, Ctrl+Shift+N on Windows). Paste the link. The roast loads.
Save
Build This
Send a roast URL to a friend or colleague. Ask if it loads and looks right. That's your first shareable feature.
Lesson 07
The Top 10 leaderboard
The 10 worst-scoring websites on a public leaderboard. The reason people come back.
Build the leaderboard
Empty states
Populate it
Roast 5-6 different websites to fill the leaderboard. Mix: a good site, a bad one, a corporate one, a blog. Refresh the homepage. The leaderboard should show them ranked.
Save
Build This
Roast 3-5 different websites to populate the leaderboard. See them ranked. The competitive element makes the app addictive.
Lesson 08
Adding a second language
Full i18n with a second language. The AI roast output also translates. You pick the language.
Check for hardcoded text
Add the language
Pick whatever language fits your audience.
AI output in that language too
Test it
In your browser, change the /en/ in the address bar to /es/ (or your language). The whole interface should switch. Roast a site — the feedback should come back in that language.
Save
Build This
Add the second language and roast the same site in both languages. Compare the humor. Different languages produce different roast styles.
Lesson 09
Playwright tests
Automated tests for both languages, desktop and mobile. Your safety net.
Tell Claude what to test
Fix failures
For each failure:
Final check
All green? Anytime you change something later:
Build This
Run the tests. If they all pass first try, congratulations. If something fails, fix it. Either way, you now have automated quality assurance.
Lesson 10
Deploy and share
Live on Vercel with a real URL. Share it with the world.
Final check
Deploy
Claude walks you through it. It might open a browser for Vercel login, ask you to link the project, and ask for your API keys (Supabase URL, Supabase key, AI API key). These get stored securely — not in your code.
When done, Claude gives you a URL. That's your app. Live.
Test the live version
Open the URL. Try everything: roast a website, open a shareable link in a private window, check the leaderboard, switch languages, open it on your phone.
If something doesn't work:
Custom domain (optional)
Save
Tip
Build This
Deploy it. Share the URL with one person. Ask them to roast a website. Watch them use something you built from scratch.
You just shipped.
A live, deployed, bilingual, AI-powered web application. Built from scratch with Claude Code.