Skip to content
Back to Research Feed
February 7, 2026
4 MIN READ
ID: 0007

I built a portfolio site. Here's what actually surprised me.

The easy move would have been Squarespace. Or a Notion page. Or one of those link-in-bio tools that takes ten minutes to set up.

Instead I spent weeks building a full Next.js site with a headless WordPress backend, Tailwind CSS, static generation, the works. I'm not a developer. I have a PhD in therapeutics and an MBA. My entire coding background is one undergrad Python class I barely remember.

So why do it the hard way?

Honestly? I wanted to understand how the web works. Not in a "read the documentation" way — in a "break things until they make sense" way. After five years of research, I'm wired to learn by doing. And AI tools had gotten good enough that "doing" was finally possible for someone like me.

The part nobody warns you about

Here's what I expected to be hard: the code. Getting components to render, APIs to connect, pages to build.

Here's what was actually hard: the decisions.

Every page has dozens of micro-choices. How much whitespace. Which shade of teal. Whether a card should have a border or a shadow. How an animation should feel — snappy or smooth? These aren't technical problems. They're taste problems. And taste is exhausting because there's no right answer, just "does this feel good?"

I'd spend an hour nudging padding values and then realize I'd made the page look worse than when I started. That never happened in my PhD. Experiments either worked or they didn't. Design is murkier than science.

What AI is actually good at (and where it isn't)

Claude and Cursor wrote most of the code. I won't pretend otherwise. Component structure, TypeScript types, the WordPress API layer, Zod validation schemas — I couldn't have written any of that from scratch.

But AI can't make decisions for you. It can generate four versions of a homepage. It can't tell you which one is right. It can scaffold a blog layout. It can't decide what your blog should sound like. That part — the what and the why — was all me.

The frustrating part was debugging. AI is great at writing code and inconsistent at understanding why code it wrote doesn't work. I'd paste an error, get a fix, apply the fix, and watch it break something else. Some debugging sessions felt like playing whack-a-mole with a very confident partner who kept insisting the mole was definitely gone this time.

The WordPress thing

I went with WordPress as a headless CMS because I wanted to separate the content from the code. Write blog posts in one place, render them in another. Clean.

In practice? Fiddly. Custom post types, ACF fields, embedded media, authentication. Every new content type was a round of "why isn't this returning what I expected?" followed by forty-five minutes of reading API docs.

It works now. But "headless WordPress" sounds much cleaner than it is. If I were starting over, I might try something simpler. I also might not — I learned a ton from wrestling with it, and that was kind of the point.

What I didn't expect to learn

I went in wanting to build a website. I came out understanding how software actually works.

Not the syntax — I still barely know JavaScript. But the concepts. How components compose into pages. Why type safety saves you from yourself. What "build time" means and why my changes weren't showing up immediately. How CSS specificity works (sort of).

The bigger lesson was that the gap between "developer" and "non-developer" is thinner than I thought. With AI tools, the constraint isn't whether you can code. It's whether you know what you want and have the patience to keep iterating until you get there.

The site isn't perfect. A real developer would probably find patterns in the code that make them wince. But it works, it's fast, and I understand every piece of it — even the pieces I didn't write.

That's enough for now.

Find this helpful?

If my writing has helped you, consider buying me a coffee.

Support on Ko-fi