Technical Guide

Zero to Live: A Guide to Building with Claude Code

A hands-on guide to building professional websites through human-AI collaboration. Designed for technical and non-technical creators alike—proving that the most important skill in the age of AI isn’t syntax, it’s strategy.

See the finished site ← This is what you’ll build by the end of this guide.

By Ashima Sitaula

plain html tailwind cdn claude code zero-config github pages
Table of Contents

Already comfortable with Git and the terminal? Skip to Step 1 →

Large Language Models aren’t just code generators—they’re context-dependent learners. The question isn’t “Can AI write code?” It’s “Can you teach it to write the right code, consistently, across an entire project?” This guide documents the framework used to do exactly that: build an 11-page portfolio from scratch, then retrofit it with a pedagogical system so anyone can replicate the process.

Before we write a single line of code, let’s meet the three tools that make this entire workflow possible. If you’ve never opened a terminal or pushed code to GitHub, this section is for you. If you have, skim the analogies—they’ll reframe these tools in a way that makes the rest of the guide click.

1

The Digital Time Machine (GitHub)

GitHub is your project’s Time Machine. It’s a cloud-based home for your code where you save “checkpoints” called commits. Every time you reach a milestone—a page looks right, a feature works, the colors finally match—you save a checkpoint. If anything breaks later, you don’t panic. You just teleport back to a version that worked.

Think of it like the “undo” button in a word processor, except it remembers every version you’ve ever saved, with a note about what changed and why.

2

The Engine Room (The Terminal)

The Terminal is where you talk directly to your computer using text commands instead of clicking icons. It might look intimidating at first—a blinking cursor on a dark screen—but it’s simply a conversation. You type a command, the computer responds.

Every action you take in this guide—creating files, saving checkpoints, talking to your AI agent—happens here.

Terminal
~ $ whoami
ashima

~ $ _

whoami — the simplest command. You ask the computer who you are, and it tells you.

3

The Collaborative Partner (Claude Code)

Claude Code is an AI agent that lives inside your terminal. It’s not a chatbot in a browser window—it sits right next to your project files, can read them, edit them, and run commands on your behalf. Think of it as a collaborative partner: you describe what you want to build, and it translates your ideas into code.

But here’s the key insight: like any collaborator, it works best when you give it clear instructions. That’s where your skills as a communicator, a teacher, or a project manager become your biggest advantage—not your ability to memorize syntax.

The Actual Stack — ashimasitaula.com

HTML

11 pages, zero frameworks

Tailwind CSS

Loaded from a CDN link

Vanilla JS

One file: main.js

GitHub Pages

Free hosting, custom domain

Terminal — The 3 Commands Every Beginner Needs
cd

Change Directory

Move between folders. It’s how you navigate to your project.

$ cd ashima-portfolio
ls

List

See what’s inside your current folder. Your “look around” command.

$ ls
index.html  css/  js/  projects/
claude

Summon Your Agent

Start a conversation with Claude Code inside your project.

$ claude
> "Help me build a project page for my portfolio"

The Onboarding Checklist

Already have a GitHub account and the CLI set up? Skip to Create Your Project →

Before you can use any of these tools together, there are two one-time setup steps. Onboarding matters. A student who feels lost in the first five minutes of a course rarely recovers. So let’s make sure your first five minutes are smooth.

A

Create Your Home (GitHub Account)

Go to github.com and sign up for a free account. This is your project’s permanent home—the cloud address where your code lives, your checkpoints are stored, and (later) your website will be published from.

github.com/signup

Create your account

Username

ashima441

Email

you@email.com

Sign up
B

The Handshake (Connecting Claude to GitHub)

Claude Code needs permission to “talk” to GitHub on your behalf—to push your code, save checkpoints, and publish your site. This is a one-time handshake.

Terminal — The Handshake
~ $ gh auth login

? What account do you want to log into?
  GitHub.com

? What is your preferred protocol for Git operations?
  HTTPS

? Authenticate Git with your GitHub credentials?
  Yes

? How would you like to authenticate GitHub CLI?
  Login with a web browser

! First copy your one-time code: A1B2-C3D4
Press Enter to open github.com in your browser...

✓ Authentication complete.
✓ Logged in as ashima441

You only need to do this once. After the handshake, every git push automatically goes to your GitHub account.

Create Your Project

Already have a project folder with an index.html? Skip to Step 1 →

Now that your tools are connected, let’s create the folder where your site will live. Open your terminal and run these four commands, one at a time.

Terminal — Create Your Project
~ $ mkdir my-portfolio          # Create a new folder

~ $ cd my-portfolio            # Enter it

~/my-portfolio $ touch index.html    # Create your first webpage

~/my-portfolio $ touch CLAUDE.md      # Create your syllabus

That’s it. You now have a project folder with two empty files: index.html (your website) and CLAUDE.md (your syllabus for the AI agent).

Put It on GitHub

Now let’s give your project a home in the cloud. Go to github.com/new in your browser. You’ll see a form like this:

github.com/new

Create a new repository

General

Owner

your-username
/

Repository name *

my-portfolio

my-portfolio is available.

Description (optional)

My first website, built with Claude Code.

Configuration

Public
Private
Add READMEOff
Add .gitignoreNo .gitignore
Add licenseNo license
Create repository

Choose Public so your site can be hosted for free. Leave everything else off—we already have our files. Click Create repository.

Now connect your local project to GitHub and push your files up:

Terminal — Push to GitHub
~/my-portfolio $ git init
Initialized empty Git repository

~/my-portfolio $ git add index.html CLAUDE.md

~/my-portfolio $ git commit -m "Initial commit"
[main (root-commit) 1f14eb3] Initial commit
 2 files changed, 2 insertions(+)

~/my-portfolio $ git remote add origin https://github.com/your-username/my-portfolio.git

~/my-portfolio $ git push -u origin main
To https://github.com/your-username/my-portfolio.git
 * [new branch]      main -> main

Your project is now saved in the cloud. Every future git push will update it. You’ve just created your first checkpoint in the Time Machine.

Quick Reference: Git in Plain English
git add

Select your work. Tells Git which files you want to include in your next checkpoint. Like highlighting the pages of an essay you’re ready to submit.

git commit

Save a checkpoint. Takes a snapshot of your selected files and labels it with a message describing what changed. This saves it locally—on your computer only.

git push

Upload to the cloud. Sends your local checkpoints to GitHub so they’re backed up, shareable, and (once Pages is enabled) live on the web.

git status

Check your work. Shows which files have changed and whether they’ve been added or committed yet. Your “where am I?” command.

Pro-Tip: Struggling with Git?

If Git feels like too much right now, here’s a secret: Claude can do it for you. Just ask in plain English:

$ claude

> "Commit my changes and push them to GitHub"

Claude will run git add, git commit, and git push for you—and explain what it’s doing along the way. You’ll learn Git by watching, not by memorizing. Over time, you’ll start typing the commands yourself because you’ve seen them enough times.

Instructional Insight: The Safety Net

Human-to-Human: In education, we know that students learn best in low-stakes environments—spaces where mistakes are expected, not penalized. These three tools create exactly that. The Time Machine (Git) means you can always roll back. The Partner (Claude Code) means you never have to solve a problem alone. Together, they transform the learning experience from a high-stakes test into an iterative experiment where there are no “wrong” moves, only lessons.

Pro-Tip: If you feel stuck or overwhelmed, remember: git log shows you every checkpoint you’ve saved, and git checkout can take you back to any one of them. You literally cannot break anything permanently.

Building with an AI agent without a CLAUDE.md is like a student trying to pass a class without a syllabus. They might show up, they might do work—but without a clear set of expectations, grading criteria, and scope, the output will be inconsistent, off-topic, and impossible to scale.

When I originally built the portfolio, the “syllabus” lived in my head: I knew the colors, the fonts, the structure. It worked for a solo sprint. But when I stepped back and asked, “Could someone else replicate this?”—the answer was no. So I retrofitted the project with a formal CLAUDE.md file: a persistent set of instructions that Claude Code reads automatically before every response. It turned an improvised workflow into a repeatable, teachable system.

CLAUDE.md — ashima-portfolio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Project Core
This is a static portfolio site.

# Tech Stack
- Plain HTML (no frameworks, no build step)
- Tailwind CSS via CDN
- Vanilla JavaScript (js/main.js)
- Deployed on GitHub Pages

# Design System
- Colors: navy (#1B2A4A), terracotta (#E07A5F), gold (#F2CC8F)
- Fonts: Inter for body, Playfair Display for headings
- Always read @css/style.css before editing any styles

# Rules
- Every page must include the shared tailwind.config inline block
- Maintain WCAG AA contrast ratios across all pages

With this file in place, every prompt I gave Claude was automatically grounded in the project’s real constraints. I didn’t need to repeat “use navy, not black” or “remember to use Playfair for headings.” The agent already knew—because the syllabus told it.

Try It Yourself

Open the CLAUDE.md file you created in Step 0. It’s in the root of your project folder—the same level as index.html. Paste the following starter template and customize it for your project:

# Project Core
A personal portfolio website.

# Tech Stack
- Plain HTML (no frameworks)
- Tailwind CSS via CDN
- Deployed on GitHub Pages

# Design System
- Colors: [your primary], [your accent], [your highlight]
- Fonts: [your body font], [your heading font]
- Always read @css/style.css before editing styles

# Rules
- Maintain consistent navigation across all pages
- Use semantic HTML for accessibility

You don’t need to get it perfect. Start with what you know—you’ll add rules as you go. Claude Code reads this file automatically before every response. No config, no setup. Just save the file and it works.

Common Mistake

Skipping the CLAUDE.md. Jumping straight into prompting without defining constraints is like handing a student a final exam on the first day of class. The agent will produce something—but it won’t match your design system.

Start with the syllabus. Even 5 lines of constraints (stack, colors, fonts) will dramatically improve consistency. In the classroom, we call this scaffolding. In the terminal, we call it a system prompt. A CLAUDE.md file is both.

The best learning happens when we bridge the gap between what we know and what we are building. Even with a technical background, I found myself navigating the learning curve of terminal-based workflows and Git version control in real-time.

There was a moment, early in the build, where I Googled “how do I git commit.” I wasn’t just looking for a command. I was steering my own learning—identifying the exact gap between my intent (save this version of my work) and the tool I needed to express it.

The breakthrough occurred when I stopped treating Claude as a simple code generator and started using it as a tutor. When the agent made a mistake, I didn’t just fix the code; I updated the project rules in CLAUDE.md to prevent the error from recurring. Every correction became a permanent lesson.

Terminal — ashima-portfolio
~/ashima-portfolio $ git add index.html projects/game-based-learning.html

~/ashima-portfolio $ git commit -m "Add Game-Based Learning project page"
[main a3f7c2d] Add Game-Based Learning project page
 2 files changed, 187 insertions(+)
 create mode 100644 projects/game-based-learning.html

~/ashima-portfolio $ git push origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
To github.com:ashima441/ashima-portfolio.git
   b1e4f8a..a3f7c2d  main -> main
Before: Repeating yourself
$ claude "Use navy, not black"
$ claude "I said navy, not black"
$ claude "Change the bg to navy"
// Agent keeps defaulting to #000...
After: Updating the syllabus
# CLAUDE.md update
- Primary bg: navy (#1B2A4A)
- Never use pure black (#000)
- Read @css/style.css for tokens
// One fix. Permanent guardrail.
Instructional Insight

Human-to-Human: In education, we call this formative assessment—the practice of using mistakes as data to improve instruction, not just to assign a grade. When the agent wrote the wrong color, I didn’t just correct the output. I updated the “lesson plan” (CLAUDE.md) so the mistake couldn’t happen again. That’s the difference between fixing code and fixing the system that writes code.

Pro-Tip: Use file-specific references (@css/style.css, @projects/cimt-657.html) to ensure the agent has the exact context it needs. This reduces hallucinated code because the agent is reading your actual files, not guessing from its training data.

Going from one page to eleven is like a teacher moving from a one-on-one tutoring session to a full classroom. The knowledge doesn’t change, but the system has to. You need a repeatable structure: a syllabus, a rubric, a shared set of expectations.

That’s exactly what happened with this portfolio. The first page—index.html—was a creative sprint. But by the time I was building the fifth project page, I needed a system. Every page had to load the same Tailwind config, reference the same custom CSS files (style.css and animations.css), use the same navy/terracotta/gold palette, and follow the same navbar pattern. The CLAUDE.md file made that possible.

Explorer — ashima-portfolio 11 files
ashima-portfolio/
index.html Main portfolio — 49.7 KB
projects/
cimt-657.html Graduate Course Design
code-for-fun-python.html Python Curriculum
game-based-learning.html Game-Based Learning
hio-career-days.html HIO Career Days
hio-literacy.html Adult Women Literacy
game-based-learning.html Self Defense Curriculum
online-teaching.html Online Teaching Certificate
self-care.html Self Care Program
social-media.html Social Media Guidelines
superhero-lesson.html Superhero-Themed Lesson
css/
style.css Design tokens & custom properties
animations.css Transitions & keyframes
js/
main.js Navigation & interactions
Terminal — Scaling with @file references
~/ashima-portfolio $ claude
> "Create a project page for the Online Teaching Certificate.
  Use @projects/cimt-657.html as the structural template.
  Match the color tokens in @css/style.css.
  Include a sticky navbar linking back to @index.html."

From Code to URL

The Living URL

You’ve built your pages, committed your checkpoints, and pushed everything to GitHub. Now comes the moment that makes it real: turning your repository into a live website. One toggle, and your work is live for the world.

GitHub Pages is a free hosting service built directly into GitHub. You just tell GitHub which branch contains your HTML files, and it publishes them at username.github.io/repo-name.

github.com/ashima441/ashima-portfolio/settings/pages

GitHub Pages

Your site is live at https://ashima441.github.io/ashima-portfolio/

Source

Deploy from a branch

Branch

main
/ (root)
Save

Your site is published at https://ashimasitaula.com

Custom domain

ashimasitaula.com
Save
Enforce HTTPS

That’s it. Select main as your branch, / (root) as the folder, click Save, and within minutes your site is live.

Instructional Insight: The Live Link

Human-to-Human: In education, we call the final step publication—the moment a student’s work moves from a private draft to a public artifact. Toggling GitHub Pages is exactly that: pressing “Publish” on your book. Once that switch is on, every git push automatically updates the live site.

Human-to-Human: We also call consistent multi-section design curriculum alignment—making sure every lesson maps back to the same learning objectives. A CLAUDE.md file is what makes that alignment automatic instead of manual.

Pro-Tip: When scaling to multiple pages, always point the agent at an existing page as a template (@projects/cimt-657.html) rather than describing the layout from scratch.

You don’t need a computer science degree to follow this workflow. The entire portfolio at ashimasitaula.com was built with free tools: a text editor, a terminal, and a GitHub account. Here’s the four-step checklist.

Quick Start Checklist 0/4 complete

Install Claude Code

Open your terminal and run the installer. Verify it works by typing claude in any project folder.

Create a CLAUDE.md “Syllabus”

Define your stack, color palette, fonts, and hard rules like accessibility standards. Start with 5–10 lines.

Establish an iterative feedback loop

Prompt, review, refine. When the agent makes a mistake, update CLAUDE.md with a new rule.

Version control every milestone

Commit after each meaningful change with git add and git commit. Your git history becomes the project’s learning journal.

One Last Pro-Tip

Pro-Tip: Run git diff after every agent action. Even if you don’t fully understand the code yet, scanning the changes builds your intuition for what the agent actually modified—and it’s the fastest way to catch hallucinated output before it ships.

You now have everything you need to go from a blank terminal to a live portfolio.

The only thing left is to start. Open your terminal, type claude, and build something.

See how it turned out