A Lazy Sunday: Rebuilding My Site with AI and Leaving Wix Behind
How I went from a templated Wix site to an owned, fast, markdown-native stack — thought to design to a live cutover — in about a day, with AI as the pair programmer and me making the calls.
Contents
TL;DR — For Non-Technical Readers
This is the story of moving my personal website off Wix and rebuilding it from scratch in roughly a day, using AI as a coding partner. A few terms that come up:
Wix — a hosted website builder. You drag blocks around in a browser and they run the site for you. Easy to start, but you’re renting: you don’t really own the code, and you’re stuck with how it does things.
Static site — instead of a server assembling each page when someone visits, every page is built once, ahead of time, into plain files. Those files are dumb, fast, and cheap to serve. My new site is static.
Astro / Cloudflare Pages — Astro is the tool that turns my content into those static files. Cloudflare Pages is where they live and get served to the world. Both are free at my scale.
DNS / the cutover — DNS is the internet’s address book: it’s what turns kennethlacroix.me into “send this visitor to that server.” The scary part of any move is changing those entries without accidentally breaking your email, which rides on the same address book.
AI as a pair programmer — not a chatbot I ask one-off questions. A partner that has the context of what I’m building and works alongside me on it. I make the decisions; it does a lot of the typing.
If any of that is interesting, the rest of the post is the long version.
Why Leave Wix
There was nothing dramatically wrong with the Wix site. It loaded. It had my name on it. People could find me.
But it never felt like mine. It was a template with my content poured into it — the kind of site that looks like a hundred other sites because it is one. I couldn’t move fast on it. Adding a real blog, or anything custom, meant fighting the builder instead of just writing. And underneath all of it was the quiet truth that I didn’t own any of it. I was renting a presence.
I’m an IT and infrastructure person. I keep systems running, and lately I build a lot with AI. A rented, templated site is a strange thing for someone like that to hand a recruiter. So one Sunday I decided to fix it — not over a sprint, not as a side project that drags on for months, but in a day, the way you finally clean the garage because you’re tired of looking at it.
The Thought
I knew the shape of what I wanted before I wrote a line: owned, fast, and boring in the right ways.
Owned meant the whole thing lives in a git repository I control — content, design, everything — and I can move it anywhere. Fast meant a static site: pages built ahead of time, served as plain files, no server thinking on every request. Boring in the right ways meant a stack that’s well-trodden and free at my scale, so I’m not babysitting it or paying rent.
That pointed at Astro for the build and Cloudflare Pages for hosting. I’m not an Astro expert — I’d read about it, not shipped with it. But that’s exactly the kind of gap AI is good for. I described the constraints; my AI pair and I sorted out the stack together. I didn’t need to have memorized the framework. I needed to know what I wanted and recognize a good answer when I saw one.
The Design
This was the part where AI is genuinely useful and also genuinely dangerous — because it will cheerfully build whatever you point it at, including the wrong thing.
The hardest design problem wasn’t visual. It was positioning. Early drafts of my own site oversold me. They leaned on jargon and made me sound like a security engineer or a product engineer — things I’m not. I work with security tooling, I build with AI, I run infrastructure, and I’m learning constantly. But “learning” and “expert” are different words, and I wanted the site to be honest about which one I am.
So I pushed back on my own first drafts. We cut the jargon. We settled on a frame that’s actually true: IT and infrastructure, building with AI. A generalist who keeps things running and is unreasonably willing to learn the next thing by shipping with it. That’s not a humblebrag — it’s the most accurate version, and accurate ages better than impressive.
Visually, the rest fell out of that: a calm, fast layout, a topographic hero that nods at the Idaho mountains I actually hike, a couple of focus areas instead of a wall of buzzwords. The design served the positioning, not the other way around.
The Implementation
With the thought and the design settled, the build went fast — this is where “vibe coding” earns its keep. I described features; my pair wrote the first pass; I read it, pushed on it, and decided what stayed.
What got built that day:
- The core pages — home, a few topic hubs, a /now page, a print-friendly résumé.
- A real blog (the thing Wix made painful), with reading progress, a table of contents, and copy buttons on code — all from writing plain Markdown files.
- Migrating the old content off Wix, and then the unglamorous, important step: reading all of it again to cut the AI-slop and the small fabrications that creep in when you let a model “improve” your words. The voice had to stay mine.
- Social share cards, an RSS feed, and a sitemap — generated automatically at build, so I never hand-make them.
Then two things I’m a little proud of, because they’re the kind of thing the old site could never have had:
Live GitHub activity and an “Ask about my work” assistant. The assistant is grounded — it answers only from my actual writing, projects, and experience, cites its sources, and is built to say “I don’t know” instead of making things up. It’s cheap to run, rate-limited, and bot-protected, because the moment you put an AI endpoint on the public internet, someone will try to make it expensive for you. (There’s a fun recursion here: this very post gets indexed, so the assistant can now answer questions about how the site was built.)
I won’t pretend every step was clean. AI confidently produced a few dead ends — a config that quietly broke the build, a layout that fought the content on mobile, an animation that was too busy over the headline. The model doesn’t feel embarrassment, so it’ll defend a bad idea as readily as a good one. The judgment about whether something should exist stayed entirely human. That’s the part that isn’t automated yet, and might never be.
The Cutover
Building is the fun part. Moving the live domain is the part where you can actually hurt yourself.
The risk in any DNS move isn’t the website — it’s the email. My mail runs on Proton, and those records live in the same address book I was about to repoint. Break them and you don’t notice immediately; you just quietly stop receiving mail. So I treated this part slowly and deliberately, the opposite of the rest of the day.
The careful version: capture every existing DNS record first. Move the domain to Cloudflare and verify the mail records came across exactly — the MX, the SPF, the DKIM keys — before changing anything authoritative. Keep the old site serving until the new one was wired, so there was no dark window. Only then point the domain at the new build, add the redirects, and confirm — by sending myself a real test email — that mail still flowed. It did. Nothing dropped.
That’s the discipline the IT job teaches that the vibe-coding doesn’t: the last 10% is where the outages live, and it doesn’t care how fast the first 90% went.
What AI Did, and What I Did
It’s easy to read “built a site in a day with AI” as “AI built a site.” That’s not what happened.
AI did the volume — the boilerplate, the first drafts, the framework details I didn’t have memorized, the tireless second pass when I changed my mind. It compressed the distance between an idea and a working version of it from days to minutes. That’s real, and it’s a genuine shift in what one person can do on a Sunday.
But every decision that mattered was mine. What the site should say. Who I actually am versus who the draft wanted me to be. Which clever feature to keep and which to delete. When to move fast and when to slow all the way down. The taste, the judgment, and the responsibility didn’t move. They can’t — not yet.
I’m not a developer, and this didn’t make me one. It made me something I find more interesting: someone who can take an idea all the way to a live, owned, working thing in an afternoon, as long as I bring the judgment and let the AI bring the speed.
The garage is clean. And this time, I own it.
More writing
Seven Months of Vibe Coding: How I Built a Privacy-First Journal App with an AI Pair Programmer
Building MoodHaven Journal from scratch as a non-developer — zero-knowledge encryption, a Wear OS companion, peer sync, and what it actually takes to learn while you ship.
ReadThe Generalist's Edge: Doing IT Work in the Age of AI
I'm a generalist, not a specialist — and for the first time that feels like an advantage instead of an apology. How AI changed what one IT person can actually do in a day.
ReadHow I Tried to Break My Own Encrypted Journaling App — Ten Times
An authorized, ten-round penetration test of MoodHaven Journal — 65+ targets, 41 confirmed-and-fixed vulnerabilities, and the bespoke tooling it took to prove the encryption actually holds.
Read