A ground-up rebuild of my personal site using Eleventy, TinaCMS, and a component-based CSS architecture — this very site.

Why Rebuild

The previous site was built in a hurry during a client dry spell and it showed. Components were inconsistent, styles were tangled, and adding new content required editing three files. It worked, but it didn't feel right.

Code editor showing the project structure

Architecture Decisions

The core principle was one component = one folder = one .njk + one .css. No shared CSS files that become dumping grounds. No styles that affect components they don't belong to.

Eleventy handles the static generation. TinaCMS gives a content editing interface for posts and projects without needing to touch code. The build process is deliberately simple — no bundler, no transpilation, just files.

What I Learned

Building your own site is the most unforgiving design brief. There's no client to blame, no brief to constrain you, no deadline to force a decision. Every choice is just yours.

The constraint I imposed on myself — no framework, no utility CSS, everything written by hand — forced decisions I'd usually default my way past. It took longer. The result is something I actually understand end to end.

The finished website shown on a laptop screen