← All Writing
February 17, 20266 min read

How I Built JoseAndGoose.com Using Claude

A non-developer builds a website from scratch with AI in three sessions

YieldOne fully deployed personal website
DifficultyBeginner-friendly (no prior coding experience required)
Total Cook Time~6–7 hours across 3 sessions over 2 days

Ingredients

What I Was Trying to Solve

I wanted a personal website that felt like mine — not a Squarespace template that any freelancer or small business could spin up in an afternoon. The tools that make website-building “easy” do so by giving you boxes to fill in: here’s your header, here’s your bio, here’s your contact form. The output is functional but generic. I wanted custom typography, a specific color palette, a layout I’d designed myself, and writing that lived alongside it in a way that felt intentional.

The problem: I don’t know how to code. And hiring someone to build a custom site runs $5,000–$20,000 for anything that doesn’t look like a template.

What changed: AI can now write code. Not just snippets — full working websites, with mobile responsiveness, deployment configuration, and bug fixes. The question wasn’t “can I build a custom site?” anymore. It was: how long does it actually take someone with zero coding experience to build one with AI?

Session 1: From Zero to a Styled Homepage

Evening, Day 1 — ~3 hours

Pace: Moderate. Some friction getting the local environment running, but satisfying progress.

Before any design work could start, the computer needed the right tools in place: a code editor to make changes, a command-line window called Terminal to run instructions, and a local preview so I could see the site before pushing it live. The first hour was entirely setup — installing software, connecting accounts, and getting a blank starter site running in the browser.

🔧 Developer section: Environment setup

With the environment ready, I described the look I wanted to Claude and shared reference screenshots from sites I admired. Claude generated complete code files for the layout, typography, and color palette — I moved them into the project folder and the design appeared in my browser.

🔧 Developer section: Design generation with Claude

Terminal — zsh
user@MacBook-Air joseandgoose-site-main % npm run dev
> nextjs@0.1.0 dev
> next dev
sh: next: command not found

user@MacBook-Air joseandgoose-site-main % npm install
added 237 packages in 42s

user@MacBook-Air joseandgoose-site-main % npm run dev
▲ Next.js 16.1.6 (Turbopack)
- Local: http://localhost:3000
✓ Ready in 992ms

The classic first error — forgetting to run npm install before starting the dev server. Fixed in one command.

AI tip

Don’t panic when Terminal gives you an error. Close it, reopen it, and try again. Half the issues in this phase were solved by restarting.

Session 2: Building Out the Pages

Day 2 — ~2–3 hours

Pace: Fast. This was the most productive stretch.

Day 2 was about making the site feel real — replacing placeholder images with actual photos and building the About, Work, and Contact pages. For each page, I described what I wanted to Claude in plain English and received a complete, styled page back. Each one deployed live in about 30 seconds.

🔧 Developer section: Building inner pages and adding photos

Pointing joseandgoose.com at the new site required updating settings across three services so they all agreed on where to send visitors. Then came the first look on an actual phone — the desktop layout hadn’t translated, so several rounds of adjustments followed until both versions matched.

🔧 Developer section: Custom domain and mobile QA

✗ Before QA
Design & ProductCelebrating the fleeting beauty of things ma...
[clipped]
Work
Writing
About
Contact
✓ After 5 Rounds
[hero image — full width]
Design & ProductCelebrating the fleeting beauty of things made well.
Work
Writing
About
Contact

Mobile QA took 4–5 rounds of CSS fixes in VS Code — flipping image order, switching to single-column grid, fixing margins. Each push via Terminal → GitHub → Vercel deployed in ~30 seconds.

AI tip

Budget extra time for mobile QA. Desktop looked great on the first pass in the browser. Mobile needed 4–5 rounds of CSS changes in VS Code, each deployed through Terminal → GitHub → Vercel and checked on my actual phone.

Session 3: Analytics and Security

Day 2 — ~45 minutes

Pace: Quick. Mostly configuration across dashboards, not code.

With the site live, the last session added two layers: visitor analytics to see who’s reading what, and Cloudflare to act as a security filter between visitors and the site. Analytics was a single package install; Cloudflare was mostly configuration across dashboards.

🔧 Developer section: Analytics setup

Cloudflare acts as an intermediary between visitors and the site — filtering traffic and enforcing HTTPS. The setup was routine until one misconfigured setting pointed the domain at the wrong server, taking the site offline on mobile until a single IP address was corrected.

🔧 Developer section: Cloudflare DNS configuration

Cloudflare DNS — The Fix
BEFOREAjoseandgoose.com →216.198.79.1Proxied ☁
AFTERAjoseandgoose.com →76.76.21.21DNS only ☁

Root cause: Cloudflare’s CDN proxy conflicted with Vercel’s CDN. Two CDNs fighting over the same traffic caused ERR_QUIC_PROTOCOL_ERROR on mobile. Fix: Updated IP to Vercel’s and switched to DNS-only mode.

The Squarespace IP was still in Cloudflare DNS after the migration. Changed to Vercel’s IP and toggled proxy off — site worked immediately on mobile.

AI tip

If you’re using both Cloudflare and Vercel, set your DNS records to “DNS only” in the Cloudflare dashboard. Two CDNs fighting each other will break your site on mobile.

Final Output

A fully deployed personal website at joseandgoose.com with a custom domain, responsive design across desktop and mobile, four content pages, a working contact form with email alerts, visitor analytics, and a security layer — built in about 6–7 hours by someone with no prior web development experience, guided entirely by Claude.

What went fast

What needed patience

The biggest lesson? Shipping a website isn’t one skill — it’s a dozen small ones strung together. Claude handled the code. I handled the decisions. And Goose supervised from the couch.

← Back to all writing