Skip to content
Website building

How to Build Your Own Website with Claude Code, GitHub, Vercel and Supabase

A few years ago, building a website meant learning HTML, CSS, JavaScript, databases and hosting, or paying a developer. Today you describe the website you want in plain English, and an AI coding assistant writes the code. You stay in charge: you decide what the site says, how it looks and when it goes live.

16 min readTime needed: about 2 to 3 hours the first time

The 4 tools and their jobs

  • VS Code + Claude CodeYour workshop and your builder. VS Code is a free code editor. Claude Code is an AI assistant inside it that writes the code and makes changes when you ask.
  • GitHubA safe online storage box with an undo history. It stores your code and keeps every version.
  • VercelThe shop window. It takes your code from GitHub and puts your website on the internet.
  • SupabaseYour filing cabinet. A database that saves information from your site, like contact-form messages.

What you'll build

  • A modern websiteA home page, about, services and contact sections that look good on phones and computers
  • A working contact formThat saves every message in Supabase
  • Your code saved safely on GitHub
  • A public addressLike my-site.vercel.app, that updates by itself every time you save changes

You can reuse these steps for any site: a portfolio, a landing page, a local business or a client project.

How the pieces fit together

  1. You describe what you want
  2. Claude Code (inside VS Code) writes the code on your computer
  3. You save it to GitHub
  4. Vercel sees the change and publishes the live website
  5. Visitors fill in the contact form
  6. Their messages are saved in Supabase

Before you start

Accounts (create these first):

  • ClaudeAt claude.ai. Claude Code needs a paid plan (Pro, Max, Team or Enterprise) or a Claude Console account. The free plan doesn't include Claude Code.
  • GitHubAt github.com. Free.
  • VercelAt vercel.com. The free Hobby plan is enough for a personal site.
  • SupabaseAt supabase.com. The free plan is enough to start.

Software (free, installed in Step 1):

  • VS CodeThe code editor
  • Node.jsLets your computer run and preview a modern website
  • GitSaves versions of your code and sends them to GitHub

Step 1: Install the basic tools

  1. Install VS Code

    Go to code.visualstudio.com and click Download for your computer. Open the downloaded file and follow the installer. On Windows, keep the defaults and tick Add "Open with Code" action if you see it. Open VS Code. You can close the Welcome tab.

  2. Install Node.js

    Go to nodejs.org. Download the version marked LTS (long-term support, the stable version). Run the installer and keep all the defaults.

  3. Install Git

    Windows: download Git for Windows from git-scm.com/downloads/win and install it with the defaults. Claude Code also works better on Windows when Git is installed. Mac: Git is often already installed. If not, the check below will offer to install it.

  4. Check that everything works

    VS Code has a built-in terminal: a window where you type commands. Open it from the top menu: Terminal → New Terminal. Type each line and press Enter:

node --version
npm --version
git --version

Each one should print a version number, like v22.x.x. If you see "not recognized" or "command not found", close VS Code completely and open it again. Programs installed while VS Code was open only show up after a restart.

Step 2: Set up Claude Code in VS Code

  1. Install the Claude Code extension

    In VS Code, open the Extensions view: click the four-squares icon on the left, or press Ctrl+Shift+X (Windows) / Cmd+Shift+X (Mac). Search for Claude Code. Choose the extension published by Anthropic and click Install. If it doesn't appear, restart VS Code.

  2. Create and open your project folder

    Create a new empty folder, for example my-website inside Documents. In VS Code: File → Open Folder… and choose it. If VS Code asks "Do you trust the authors of the files in this folder?", click Yes, I trust the authors. It's your own folder.

    Everything Claude builds is saved in this folder.

  3. Open Claude Code and sign in

    Click the Spark icon (a small star) at the top right of the editor, or click ✻ Claude Code at the bottom right. You can also press Ctrl+Shift+P (Cmd+Shift+P on Mac), type Claude Code and choose Open in New Tab. The first time, click Sign in. Your browser opens. Log in with your Claude account and approve. Back in VS Code you'll see the Claude Code chat with a box at the bottom for your requests.

  4. Understand permission modes

    At the bottom of the prompt box you can see the current mode. Click it to change it:

    Plan
    Claude explains what it will do and waits for your approval. Use it at the start of a big task.
    Manual
    Claude asks before every file change and most commands, and shows old vs new side by side. Great for learning.
    Edit automatically / Auto
    Claude makes changes without asking each time. Use it when you trust the task and want speed.

    Tip: for your first site, use Plan for the first big request, then Manual so you see what Claude changes. Once you're comfortable, Auto saves a lot of clicking.

  1. Your first test prompt

First test

Claude runs a few checks and tells you if anything is missing.

Step 3: Plan your website

Claude does its best work when it knows exactly what you want. Before building, write a short brief.

  1. Write your website brief

    A few lines for each:

    Who is the site for?
    Business name, what it does, where it is
    Who are the visitors?
    For example: local homeowners looking for a plumber
    What should visitors do?
    Call, book, send a message or buy
    Pages and sections
    Home, about, services, reviews, contact
    Style
    Colors, mood (modern, friendly, luxury), a website you like
    Content
    Your real text, phone, email, hours and photos
  1. Ask Claude for a plan first

    Switch to Plan mode and send something like this (with your own brief):

Ask for a website plan

Read the plan. If something is missing, say so in plain words, like "Add a section for patient reviews" or "Use green instead of blue". When you're happy, approve it.

Step 4: Build the website with Claude Code

  1. Let Claude build

    After you approve the plan, Claude creates the project. It may ask to run commands, like installing packages. Click Allow when it matches what Claude said it would do. This takes a few minutes.

  1. Preview the site on your computer

Start the preview

Claude runs something like npm run dev. Open the address it gives you, usually http://localhost:3000. This private preview only works on your computer.

  1. Improve the design, one change at a time

    Check the site on a computer and a phone-sized window. Short, specific requests work best. Send one at a time:

Bigger hero headline
Services on mobile
Replace the About text
Call button

To add your own photos, copy them into the project's public folder (Claude can show you where), then ask: "Use public/team.jpg as the image in the About section."

  1. Ask Claude to check its work

Check the whole website
  1. Save project notes for Claude (optional but useful)

    Claude Code reads a file called CLAUDE.md at the start of every session. Save your brief and rules there, and next time Claude already knows the important details:

The CLAUDE.md file

Step 5: Add a database with Supabase

Right now the form looks good but does nothing. Here you connect it to Supabase so every message is saved.

  1. Create a Supabase project

    Go to supabase.com and sign in with Continue with GitHub. Click New project. Give it a name (like my-website), create a strong database password and save it somewhere safe, then choose the region closest to your visitors. Click Create new project and wait a minute or two.

  1. Create the table for contact messages

    A table is like a spreadsheet inside the database. Each message is one row. In your Supabase project, open the SQL Editor from the left menu. Create a new query, paste the code below and click Run.

SQL

In plain words: this creates a contact_messages table with a security rule. Visitors can send a message but can't read anyone else's. Only you can read them, from your Supabase dashboard.

  1. Copy your project keys

    In Supabase, click the Connect button at the top of the page. Copy two values: the Project URL and the publishable key (starts with sb_publishable_). Older projects may show an anon key instead. It works the same way.

  1. Connect the form with Claude Code

    Back in VS Code:

Connect the form to Supabase

When Claude finishes, open the .env.local file (in the file list on the left) and paste your values after the = signs:

.env.local

Save (Ctrl+S / Cmd+S), then ask Claude to restart the preview so it picks up the new values.

  1. Test it

    Open http://localhost:3000, fill in the contact form and send it. In Supabase, open the Table Editor and click contact_messages. Your test message should be there as a new row.

If it doesn't work, copy the error from the page or terminal and paste it into Claude: "The contact form gives this error. Please find and fix the problem."

Step 6: Save your code to GitHub

GitHub keeps your code safe online and is the bridge to Vercel. Every saved version is called a commit. Sending commits to GitHub is called pushing.

  1. Save a version (commit)

The first commit

If Git asks for your name and email the first time, use the same email as your GitHub account.

  1. Publish to GitHub

    Click the Source Control icon on the left (a branch with three dots), or press Ctrl+Shift+G (Cmd+Shift+G on Mac). Click Publish Branch (or Publish to GitHub). The first time, VS Code asks to sign in to GitHub. Click Allow, approve in your browser and come back. Choose Publish to GitHub private repository. Private means only you see the code. Your website will still be public on Vercel.

On github.com, click your profile picture → Your repositories to see your project.

Step 7: Put your website live with Vercel

  1. Import your project

    Go to vercel.com and log in with Continue with GitHub. Click Add New… → Project. If asked, let Vercel access your GitHub repositories (you can choose just this one). Find your project and click Import. Vercel detects that it's a Next.js site. No need to change the build settings.

  2. Add your Supabase keys

    Your .env.local isn't on GitHub (good), so Vercel doesn't know your keys yet. Before deploying, open Environment Variables on the same page and add:

    NEXT_PUBLIC_SUPABASE_URL
    Your Supabase Project URL
    NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
    Your Supabase publishable key

    Forgot? In Vercel go to your project → Settings → Environment Variables, add them, then open Deployments and click Redeploy on the latest one.

  3. Deploy

    Click Deploy and wait about a minute. On the congratulations screen, click the preview to open your live site. The address looks like my-website.vercel.app. Test the contact form on the live site and check that the message shows up in Supabase.

Your website is now on the internet. Share the link with anyone.

Step 8: Update your website anytime

The everyday workflow, the same every time:

  1. Open your project

    Open your project folder in VS Code and open Claude Code.

  2. Ask for the change

    Like: "Add a new service called Teeth Whitening with a short description."

  3. Check it in the preview

    At localhost:3000.

  4. Save and publish

    Ask Claude: "Commit these changes with a clear message and push them to GitHub." (Or use Commit and Sync Changes in Source Control.)

  5. Vercel updates the site

    Vercel sees the new commit and updates the live site within a minute or two.

Troubleshooting

  • "node", "npm" or "git" is not recognized

    Restart VS Code (or your computer) after installing. Still failing? Reinstall that tool with the defaults.

  • The Claude Code panel or Spark icon doesn't appear

    Restart VS Code, or press Ctrl+Shift+P and run Developer: Reload Window. Make sure VS Code is up to date (Help → Check for Updates).

  • Claude asks me to sign in again ("Not logged in")

    Click Sign in and finish in your browser. Make sure your Claude plan includes Claude Code.

  • The contact form says "Something went wrong"

    Check the two values in .env.local (no spaces, no quotes), restart the preview, and make sure you ran the SQL in Step 5.2. Paste the exact error into Claude.

  • The form works on my computer but not on the live site

    The keys are missing in Vercel. Add them in Settings → Environment Variables, then redeploy.

  • Vercel deployment failed

    Open the failed deployment, copy the error from the build log and paste it into Claude: "My Vercel build failed with this error. Please fix it." Then commit and push again.

  • I don't understand what Claude did

    Ask: "Explain the change you just made in simple words, as if I am a beginner."

Prompt cheat sheet

Understand a project
Plan before building
Add a section
Fix the mobile view
Improve for Google (SEO)
Fix an error
Save and publish
Undo

Good habits and safety rules

  • Keep secrets secretNever put passwords, the Supabase secret key or bank details in your code or on GitHub.
  • Read before you allowWhen Claude asks to run a command or change a file, take a few seconds to read it.
  • One change at a timeCheck each one in the preview before asking for the next.
  • Commit oftenSmall saved versions make it easy to go back.
  • Check the content yourselfYou're responsible for prices, phone numbers, claims and legal information on your site.
  • Collect only what you needIn forms, and add a short privacy note if you collect personal details.

Want us to do it for you or learn to do it yourself?

Rather have it built for you?

GrowWithU builds conversion-focused business websites, landing pages and online stores, ready to bring you inquiries.

See website building

Learn it with us, live.

In a private 1-on-1 Zoom lesson we build your website together, step by step, answer your questions and review your project.

Book a Zoom lesson
Talk to us on WhatsApp
Talk to us on WhatsApp