← Back to writing

7 May 2026

How I built my website with AI - without being a developer

I built this site in three sessions over three days. I don't write code.

That's not a brag. There's a real reason it took so few sessions, and a real reason it could only have happened now. Both are worth writing up, because the part I see consistently glossed over in "I built X with AI" posts is the bit between "AI can do this" and "here's what I actually did". The missing middle.

This is that middle.


What pushed me off Squarespace

The old site was on Squarespace. It worked, in the sense that it existed. But every change was a hand-click. Every text edit, every layout tweak, every image swap meant clicking into a template panel and pulling things around in a way that took ten times longer than it should have.

The bigger problem wasn't the labour. It was that the site was perpetually almost-ready. I constantly felt like it was nearly there - and that "nearly" stopped me from linking it from anywhere or talking about it. The friction of every change made shipping feel further away every time I touched it.

I sat with that for a while. Then it occurred to me: if AI is how I work everywhere else, why is my own website the one place I'm hand-clicking template buttons?

Before landing on the stack I ended up with, I poked at Webflow and Framer. Both are good products. Both let non-developers ship sites without writing code. I assumed one of them would be the answer.

Once I started prototyping, the trade-off looked different than I'd expected. The reason no-code platforms exist is that writing code is hard for non-developers. Take that constraint away - give me a collaborator that writes the JavaScript and CSS for me - and the limits of no-code start costing more than they save. So I went the other way: a custom Next.js site, generated by AI, hosted on Vercel.


The stack, in plain English

Here's what I used. Five things, each doing one job.

Cowork - Claude in desktop mode. The operator/collaborator. I talk to it, it writes the code, we iterate. Most of my time was spent here.

Claude Design - a separate Claude product that hands you a design system (palette, typography, components, spacing) packaged as a brief. It launched in beta after I'd already started building, so it came in mid-build rather than at the start.

Next.js - the framework the code is written in. I know it's a JavaScript framework that helps build fast, good-looking sites. Beyond that, I don't care, and I don't need to. Cowork recommended it; I trusted the recommendation.

Vercel - where the site lives. Connected to GitHub, so any push to the repo auto-deploys.

GitHub - where the code itself is stored. I don't write it, but I push it from my terminal using bash commands Cowork tells me to run.

The honest thing about that list: I didn't know which tools to use when I started. AI told me. I asked Cowork "I want to build my own site, what should I use?" - it walked me through the options, recommended this stack, and explained why. When I wanted to understand a choice more deeply, I asked. When I wanted to push back, I did.

You don't need to know the stack before you start. You need a collaborator that already knows it - and the patience to ask the questions you need to ask to trust what it's telling you.


What "prompt engineering" actually looks like

Here's the part most posts about "building with AI" skip. When you open a fresh AI chat, the empty box is a wall. You don't know what to type. So most people use it like Google: type a one-line query, get a one-paragraph answer, leave unsatisfied.

That's not how this works. Talking to AI to build something is closer to briefing a smart contractor than searching a database. The more context you give, the better the work. People are starting to call this "vibe coding" or "prompt engineering" - but at its simplest, it's just learning to brief AI well.

The other thing nobody tells you: most of my early prompts to Cowork weren't even about building the site. They were about figuring out what the site was for. AI is good at helping you think out loud - so use it for that, not just for execution.

Below is a rough sketch of how this kind of conversation actually goes. Lowercase and messy on my side, more structured on AI's side. Four messages: me starting uncertain, AI helping me reframe, me landing on something concrete, AI proposing a stack. The point isn't the specific words. It's the shape.

My initial message:

ok so i'm thinking about replacing my old squarespace site. but honestly i'm not 100% sure what i'm building yet, so this is more of a thinking-out-loud message.

context: i'm an operator/consultant - spent years in product, ops, e-commerce, now starting a consulting studio. focus area is AI + ops + growth + marketing. but i'm worried about a few things:

too narrow vs too open. if i frame myself as "AI ops consultant" i feel boxed in; if i go "operator who does anything" it's too vague. how do i thread that?

brand vs personal brand. should this new studio be its own brand or just my personal name? working name is cult magnolia but i'm flexible.

build-in-public vs polished. i lean toward sharing work-in-progress, but part of me worries people won't take me seriously if it looks half-built.

given all that, where would you start? not asking for a stack yet - i want to figure out what i'm even building before we get to how. push back on any of these worries or reframe them, that's helpful too.

That's a brain-dump. Lowercase, fragmented, real. I'm not pretending I have positioning sorted - I'm naming what I don't know, what I'm worried about, where I'm stuck. And I'm explicitly asking for push-back, not validation. AI works much better when you ask it to pressure-test you instead of agree with you.

AI's reply:

Good - positioning before stack is the right order to think this through. Let me work through each of your worries, then I have a couple of questions back.

Too narrow vs too open: "AI ops consultant" does box you in. The reframe most solo operator-consultants land on is to lead with the kind of work, not the tool. Something like "I help operators untangle what's stopping growth" - broader without being vague. AI becomes a how, not a what. Worth noting that positioning isn't fixed - you can start broad and narrow as specific kinds of clients gravitate toward you over the first 6-12 months.

Brand vs personal brand: For solo consultants, the personal brand IS the studio brand. Cult Magnolia as studio name with you as the face gives you optionality - if you ever want to bring others in or productise something, the studio container is already there. Going pure personal name caps that. Worth asking: does Cult Magnolia have a story behind it that ties to the work? A name with a story compounds; a name without one feels arbitrary.

Build-in-public vs polished: Counter-take - "looking established" is the thing early consultants over-invest in. The audience you'd likely want (other operators) can smell over-polish from a mile away. A half-built site that explicitly owns being built-in-public reads as confident; a glossy site that's only been live for two weeks reads as performance. The trick is to make the rough edges intentional, not accidental.

Two clarifying questions back:

- Who's the specific person you most want reading this? Not a category - an actual person you've talked to recently who you'd want this to land for. - What's the one thing you'd want them to think after spending two minutes on the site?

Notice what's happening. AI isn't just answering. It's mirroring the worries back, giving a reframe for each, structuring with bold headers, hedging where it should ("worth noting that positioning isn't fixed"), throwing in a tangent ("does Cult Magnolia have a story behind it?"), and asking two clarifying questions of its own. That's a real LLM reply, not a search-result move.

My response:

ok yes that all helps. the "AI as a how, not a what" reframe lands. let's go with cult magnolia as studio name, me as the face, build-in-public ethos.

re cult magnolia: yes there's a story - "cult" is wordplay on "cultivated" (the tagline emerged from this conversation actually - growth, cultivated). magnolia is the flowering tree, patient/resilient/compounds. so it ties to the methodology - weed, prune, cultivate.

audience: founders, ops leaders, AI-curious operators. people in messy growing businesses who feel stuck and don't know if AI is the answer or if they're just behind.

what i'd want them to think: "this person thinks about the stuff i think about. she's actually doing it, not just talking. maybe i should reach out."

ok now: given all that, what stack should i use for the actual site? i'm not a developer, don't write code, but want something fast and customisable. walk me through trade-offs, not just an answer.

Two messages of conversation produced positioning I'd been half-thinking about for weeks. The tagline ("growth, cultivated") literally came out of that exchange - I didn't have it walking in. That's the leverage AI gives you. Not "AI did the work", but "AI accelerated the thinking you'd have eventually done anyway".

AI's next reply:

Good - that's enough to anchor on. The wordplay between Cult and Cultivated is strong; "growth, cultivated" works as a tagline because it does double duty: literal (gardening metaphor) and figurative (the slow, intentional kind of growth). Lock that in.

Now the stack. Given your constraints (non-developer, want fast, want customisable, fine with AI writing the code):

Recommendation: Next.js + Tailwind + Vercel + GitHub.

- Next.js - React framework, fast, plays nicely with AI-generated code. Largest ecosystem, which means less for me to invent when something breaks. Trade-off vs Webflow/Framer: more setup, but no template lock-in - the site ages better. Trade-off vs Astro/Remix: bigger community. - Tailwind - utility-first CSS. Lets us style without writing custom CSS files, makes iteration much faster. - Vercel - where the site lives. Auto-deploys when you push code to GitHub. Generous free tier; you almost certainly won't pay anything for what you're building. - GitHub - where the code is stored. You mentioned you have an account, so we're good.

Avoiding for now: WordPress (plugin sprawl + maintenance tax), Webflow/Framer (template lock-in), pure HTML/CSS (no good reason to pick this in 2026).

In practice: you'll push code from your terminal using bash commands I'll walk you through. Vercel auto-deploys on push. You'll never write JavaScript yourself unless you specifically want to learn.

Next step if that all lands: I'll set up a fresh Next.js project, walk you through connecting it to GitHub and Vercel, and we'll have the homepage stubbed by the end of this session.

Notice we got here on the fourth message. Three messages of positioning conversation made the stack conversation a 30-second exchange. If I'd opened with "what stack should I use for my consulting site?" I'd have gotten a generic answer, because AI wouldn't have known enough about what I was actually building.

The rhythm from there

Once the conversation's underway, the moves that keep it productive:

  • Ask why when you don't understand a recommendation. ("Why Next.js over Astro?" "What does Vercel do that GitHub doesn't?")
  • Push back specifically when something feels wrong. ("This copy sounds like a copywriter doing a Helen impression, not me. Here's how I actually talk: [paste 3 paragraphs of real Helen writing]. Re-do this section in that voice.")
  • Ask for alternatives when something feels off but you can't name what. ("Show me three other ways this could read.")
  • Trust AI on what you can't evaluate (framework choice, deploy mechanics) and stay opinionated on what you can (your voice, your taste, what's actually true about you).

That last bit is the operator part.


The bit I wasn't expecting: voice-training is its own job

The first draft of any page is a starting point, not an answer. The /about page took something like ten drafts before it sounded like me.

Not because the AI was wrong. Because the AI didn't know me yet. And honestly, I was figuring myself out as I went. This business is new. Writing content for it is new. So while I was teaching Cowork to sound like me, I was also working out what "sounding like me" even meant in this register.

That part is unromantic but real. There's no shortcut around it. What it takes is patience, perseverance, and enough self-understanding to know what to say or ask or push back on - so the AI can help you help it.

What I learned is that teaching AI to write in your voice is its own piece of work, separate from building the site. But once you do it, it pays back forever. Every page I've built since /about gets closer to my voice on the first draft because the voice rules are now formalised - a Voice & Style Guide, a Drift Patterns & Kill List, a set of named content frameworks. Cowork loads those before drafting now, so my voice isn't a guessing game.


Where I landed - and the one thing I'd change

Three sessions, three days, roughly three to four hours each, often with other work running alongside. At the end of it: homepage, /about, /manifesto, top nav, soft-CTA footer, all live on the Vercel preview URL. DNS flips from Squarespace when I'm ready.

Cost in tooling I wasn't already paying for: $0. I'm on a Claude Max plan; Vercel and GitHub are free for what I'm using. The cost was time - and most of that time wasn't typing, it was thinking.

If I were doing this again, the one thing I'd change: I'd formalise the voice rules - the drift patterns, the content frameworks, the kill list - before drafting any site copy, not after. Most of those ten /about drafts existed because the voice rules weren't written down yet. Doing that work upfront would have saved at least a session.

Everything else I'd repeat.

If you're sitting on something half-built because you can't see the path through it, the path now exists. It's just not the one you were waiting for. You don't need to learn JavaScript. You need to know what you want to ship - and you need to be willing to iterate until it's actually you on the page. That's the part you can't outsource. It's also the only part that matters.