I rebuilt my website. The hardest part was what I couldn't see.

Three weeks ago I moved this site off Framer and onto something I own end to end. It looks almost the same. That was the point. What I didn't expect was how much of a website lives in places you never look.

Let me start with the why, because it wasn’t a grand vision. It was a subscription. I was paying every month for a tool I mostly used to change a date in a footer. And after building SkillHub earlier this year, I knew something I didn’t know before: I could build this myself.

So I did. An Astro site, hosted on Netlify. Every page, every word, every transition now lives in a folder on my laptop. I push to main, and a minute later it’s live. No editor, no plan, no lock-in.

Same, but mine

My one rule was that visitors shouldn’t notice. Same typography, matched one-to-one with what I had in Framer — 16px body, the same breakpoints. Same colours. Same structure, in English and Dutch.

Then I allowed myself a few upgrades. A dark mode that uses the colours of my old theme. Content that gently reveals itself as you scroll. Calm page transitions that make moving between pages feel like turning a page, not loading one. And my writing moved up to the homepage, because writing more is half the reason I wanted my own site in the first place.

That part was fun. That’s the part you can see.

The part you don’t see

Here’s what I keep thinking about. A website is maybe 20% what you see and 80% what you don’t.

DNS records. My email runs through the same domain, so one wrong change and my inbox goes quiet. There’s a subdomain pointing to an old portfolio on Tumblr. A verification record for Google. One for my Bluesky handle. None of that shows up in a design file, and all of it has to survive the move.

Redirects. Every old Framer URL still had to work, because somewhere out there a recruiter has a link in a bookmark or an email. Every variant of the domain now lands on the same address, keeping its path.

And then, tonight, I found the one I missed.

Analytics. Framer had Google Analytics wired in somewhere in its settings, and I never thought about it again. My new site launched without it. For two and a half weeks, I had no idea who was visiting. In exactly the weeks I was sharing my work more than ever.

It took twenty minutes to fix. But it was invisible for nearly three weeks — and that’s exactly the problem.

What a platform quietly does for you

Moving off a platform isn’t really about rebuilding pages. It’s about discovering every decision the platform was making on your behalf. Hosting. Certificates. Tracking. Sitemaps. Form handling. Each one was a checkbox somebody else ticked. Now they’re mine.

It’s the same thing I see in product teams all the time. We obsess over the interface, because that’s where the feedback is. But the experience runs on the plumbing underneath. When it works, nobody thanks you. When it breaks, nobody tells you — the numbers just quietly stop.

If you’re planning a migration — of a website, a product, a design system — my advice is boring and it works: make an inventory of the invisible things before you move. What’s being tracked? What’s being redirected? What’s sending mail? What’s connected to something you’ve forgotten about? Then check every item on the other side.

Why I’m glad I did it anyway

I’m not paying a monthly fee to change a footer anymore. I own the code, the content and the data. And when I want to try something — a new layout, a small interaction, a page that doesn’t fit a template — I just try it.

But the real win is something else. I understand my own website now. Not just how it looks, but how it works. Every piece of it.

As a designer, that’s a strange and good feeling. The gap between what I design and what ships has gotten very small. Sometimes it’s just me, a terminal and a commit message.

The site is live. The analytics are back. And I have a checklist for next time.