Beginner Tutorial · Free · 45 minutes

Build your first
website with
pure vibes.

No coding experience needed. You describe what you want. Claude writes the code. You end up with a real, live website.

⏱ ~45 minutes· 🔰 Total beginner· 🆓 Free tools only
Start Building → Why This Matters
What you'll have at the end
yourname.netlify.app
✓ Real live URL ✓ Your design, your words ✓ Free to host forever ✓ Zero code written by you
SCROLL
Before you start

What you need.

Genuinely just these three things. Nothing to install, nothing to pay for.

🧰
Your complete toolkit — all free Get these open in your browser before you begin. Takes about 2 minutes.
A free Claude account at claude.ai
A text editor (even Notepad works)
A browser (you already have one)
45 minutes of uninterrupted time
💡 Free Claude account: Go to claude.ai → Sign up with Google or email. The free tier is completely fine for this tutorial. You do not need Claude Pro.
04 — The Tutorial

Build your site,
step by step.

Follow along in Claude as you read. Each step has a prompt you can copy straight in.

01

Open Claude and give it a brief

Go to claude.ai, click New Chat, and paste this prompt. Replace the bits in brackets with your own details — be as specific as you like.

Copy this prompt

I want to build a personal portfolio website as a single, self-contained HTML file. I'm [your job or role] based in [your city]. My style is [describe your personality — bold, minimal, warm, quirky, etc.]. I want visitors to immediately understand who I am and what I do. Before you build anything, ask me a few questions to understand what I need.

💡 Asking Claude to ask you questions first is the single best thing you can do. It forces Claude to understand you rather than guess — and the result will be dramatically better.
02

Describe how you want it to look

After Claude's questions, describe the visual feel. Don't worry about technical terms — just talk the way you would to a designer. Mood, colours, vibe, references.

Copy this prompt

For the visual style: I want a dark background with one strong accent colour — maybe [pick one: burnt orange / deep teal / warm gold / dusty rose]. Big typography that feels editorial and confident. Plenty of white space. Subtle animations when you scroll. Think high-end creative studio, not a generic template. Use Google Fonts — something with personality, not Arial.

🎨 You can say things like "I love the feel of Stripe's website" or "something like a design portfolio from Behance." Claude understands those references and can draw from them.
03

Get your first working file

Now ask Claude to build it. Be specific: you want everything in one file, no extra setup, and you want to be able to open it directly in your browser.

Copy this prompt

Please build the homepage now as a complete, self-contained HTML file. Put all CSS and JavaScript inside the same file — no external dependencies except Google Fonts. Include: a hero section with my name and a one-line tagline, a short about section (2–3 sentences), a 3-item portfolio grid with placeholder images, and a contact section with my email address.

📂 How to open your file in a browser
1Copy all the code Claude gives you (click anywhere in the code block, then Ctrl+A to select all, Ctrl+C to copy)
2Open Notepad (Windows) or TextEdit (Mac). Paste the code.
3Save the file as index.html — make sure the file extension is .html, not .txt
4Find the file on your computer and double-click it. It will open in your browser.
04

Look at it honestly and give feedback

Open your file. Look at it. What do you love? What feels off? Now go back to Claude and tell it — but be specific. Vague feedback gets vague results.

Vague vs specific feedback — see the difference

Interactive
Don't say this

Make it look better. The colours feel off and it doesn't really match my vibe.

"Better" and "vibe" mean nothing to Claude. It will guess — usually wrong. You'll go back and forth forever.
Say this instead

The hero section looks great — keep that exactly. But the portfolio grid feels too cramped. Increase the gap between cards to 40px and add a soft shadow to each card. Also the font in the About section is too small — bump it to 18px minimum. Keep everything else identical.

Name the element. State the exact change. Say what to preserve. Claude nails it first time.
05

Add animations and polish

Once the layout feels right, ask Claude to bring the page to life. Effects that would take a developer hours come in seconds with a single prompt.

Copy this prompt

Now add some life to the page: 1) Fade-in animations for each section as the user scrolls — use the Intersection Observer API. 2) On the portfolio cards, a smooth colour overlay on hover that reveals a "View Project" label. 3) A subtle parallax drift on the hero background. Keep everything tasteful — nothing jarring or distracting.

💡 After Claude writes something you didn't understand, ask: "Explain what the Intersection Observer part does in plain English." You'll learn real concepts without trying to.
06

Make it real and publish it

Replace the placeholder content with your actual details, then put it on the internet. It takes about 30 seconds with Netlify Drop — no account needed.

Copy this prompt

Here's my real content to replace all the placeholders: [paste your name, job title, bio, 3 project names and descriptions, email address]. Also please add proper meta tags for SEO and social sharing (og:title, og:description, og:image). Finally, add a small "Built with Claude" credit in the footer.

🚀 How to publish your site for free
1Go to app.netlify.com/drop in a new browser tab
2Find your index.html file on your computer
3Drag it directly onto the Netlify Drop page
4In about 10 seconds you'll get a live URL. Copy it. Send it to someone.
🎉 That's it. You just vibe coded a real website. No developer. No templates. No code knowledge. Just you, describing what you wanted, and Claude building it.
When things go wrong

Claude got it wrong.
Here's the fix.

Every Vibe Coder hits these. They're not failures — they're part of the process. Here's exactly what to say.

Problem

Claude changed things I didn't ask it to

You asked to fix the footer and Claude redesigned half the page.

End every prompt with: Keep everything else exactly as it is. If it still happens, paste the whole current file back and say only change X, nothing else.
Problem

The page is blank or looks broken

You saved the file and opened it but nothing renders properly.

Go back to Claude and say: The page is blank in my browser. Please check for any unclosed tags or missing code and give me the complete corrected file.
Problem

Claude keeps misunderstanding me

You've asked three times and it's still not right.

Stop describing what you want. Describe what you don't want: I do NOT want X. I do NOT want Y. I just want Z — simply and nothing else.
Problem

The conversation is getting confused

Claude is forgetting earlier decisions and contradicting itself.

Start a fresh chat. Paste your current HTML and open with: Here is my current site. This is our starting point. Continue building on this exact code.
Problem

It looks great on desktop but broken on mobile

The layout falls apart on a phone screen.

Ask: Please audit every section for mobile at 375px width and fix any issues. Keep the desktop layout completely unchanged.
Problem

I lost the version I preferred

Claude rewrote something and you liked the old version better.

Before any big change, save a copy: v1.html, v2.html. Two seconds of saving. Hours of grief avoided. Do it every time.
Track your progress

Skills you're building.

Tick each one as it clicks. Your progress is saved — come back anytime.

Writing an effective briefContext + personality + goal = great output from Claude
Describing a visual style in plain EnglishMood, references, adjectives — no technical knowledge needed
Saving and opening an HTML filePaste → save as .html → double-click → it opens in your browser
Giving specific, actionable feedbackName the element. State the change. Say what to keep.
Adding animations via promptYou described motion in words — Claude translated it to code
Recovering when things go wrongPaste current code + describe the problem specifically
Published a real website 🎉A live URL you can send to anyone in the world
0 of 7 skills
Real world proof

Built with Vibe Coding.
Both of these.

No developer. No agency. No coding background. Just a clear idea, Claude, and a few afternoons. Here's what's possible once you know the fundamentals.

Free web app · Single HTML file · GitHub Pages

RV Power Designer

A professional-grade RV solar system sizing tool covering 12V, 24V and 48V systems — with ABYC-standard wire sizing, a solar generator finder, live system diagrams, and real 30-day weather simulation from Open-Meteo data.

150+appliances in the database
10solar generator brands compared
25+locations with seasonal sun hours
kbcianfa.github.io/RVPowerSystems/landing.html
Featuresvs CompetitionLaunch Free Tool →
⚡ Free — No signup required
Design Your RV Power System Right.
The only free tool that handles 12V, 24V, and 48V systems with ABYC-standard wire sizing, a solar generator finder, and live system diagrams.
⚡ Launch Free Tool Read the Guide →
Battery Bank
240 Ah
LiFePO4 · 24V · 80% DoD
Solar Array
600 W
3× 200W series-parallel
Daily Balance
+312 Wh
Surplus after all loads
📐Live sizing engine — battery Ah, solar watts, inverter VA calculated as you type
🔌ABYC E-11 professional wire sizing for every circuit segment
🌦30-day weather simulation against real Open-Meteo historical data
💾Save, compare and share designs — no account, data stays in your browser
View RV Power Designer →
🗺️
Free web app · Offline-capable · Australian roads

LogMyJourney AU

A pair of Australian road trip logging apps — one for petrol/diesel vehicles, one for EV/PHEV/ICE. Log fuel stops, expenses, and charging sessions. Works fully offline. No account. No tracking. Data stays on your device.

kbcianfa.github.io/TripLog/homepage.html
⛽ Petrol & Diesel ⚡ EV / PHEV
TRACK EVERY JOURNEY
From the outback servo to the city charger — every stop, logged.
🇦🇺 Built for Australian roads 📵 Works offline 🔒 Data stays on device 🆓 Free — no account
1,847km
148 Lfuel used
8.0L/100km
$741total spend
🅿️ Mildura · 42 L · $1.89/L · 520 km · 8.1 L/100km
🅿️ Broken Hill · 38 L · $2.14/L · 453 km · 8.4 L/100km
🅿️ Cobar · 35 L · $1.96/L · 449 km · 7.8 L/100km ✓
Fuel stops with L/100km badge per fill-up — petrol, diesel, E10, LPG and EV charging
💰Trip budget tracker with live spend by category — accommodation, food, fuel, parking
Full EV & PHEV support — kWh, $/kWh, SOC%, km/kWh efficiency across charging sessions
📊Lifetime trends, CSV export, JSON backup — and dates in dd/mm/yyyy throughout
View LogMyJourney AU →
💡 Both of these started as a plain English description to Claude. Neither required writing a single line of code manually. The same approach you just learned in this tutorial built fully-featured, production tools used by real people.
You did it. What's next?

Keep building.

Now that you know the fundamentals, try one of these to push further.

🛒

Fake product page

Invent a product and build a landing page. Practice hero sections and pricing tables.

📰

Personal blog

A homepage with article cards and a full reading layout. Practice typography and structure.

🎮

Mini browser game

Snake, a quiz, or a word game. Claude can write game logic from a plain English description.

Open Claude and start →
Ready to go deeper? Why Vibe Coding is disrupting software development →