New Year, New Look
A fresh design, rewritten copy, real projects, and a new product — here's everything that changed on the site and why.
New Year, New Look
It was time. My portfolio had been sitting there doing its job — technically — but it didn't feel like me anymore. The design was dated, the copy was generic, and the projects section was basically placeholder cards I'd been meaning to replace for months. So I sat down, opened the codebase, and started pulling things apart.
The stack hasn't changed. It's still Next.js 15, Tailwind, Framer Motion — all the tools I reach for every day. This wasn't a rebuild. It was a rethink of how the site looks, what it says, and whether it actually represents the work I do now.
Why the Refresh
I looked at the site and it just didn't match where I'm at anymore. The copy was generic, the projects section was thin, and the overall design felt like it belonged to a previous version of my career. After 5+ years of building websites professionally — shipping work every week at Meta Digital and taking on freelance builds on the side — the portfolio needed to catch up.
The Visual Changes
The biggest shift is the overall aesthetic. I wanted something that felt refined without being overdesigned. A few of the key changes:
Grain texture overlays — Subtle SVG noise textures layered across sections. It adds depth and warmth without being heavy-handed. The kind of detail you feel more than you notice.
Refined animations — I rebuilt the Framer Motion animations across the site. Staggered fade-ins, scroll-driven opacity, spring physics on hover states. The goal was animations that feel natural — like elements settling into place rather than performing for you.
Cleaner layout — Stripped back the visual clutter. More whitespace, better hierarchy, sections that breathe. The dot grid pattern in the hero, the minimal divider lines, the consistent card treatment — everything's more intentional now.
I also dropped the dark theme entirely. The old site was dark by default, but the new design just works better light — cleaner, more open, and easier to read. Sometimes the best design decision is removing something.
Real Projects, Finally
This was the big one. For the longest time, the projects section was the weakest part of the site. I had placeholder cards, commented-out components, and a vague promise to myself that I'd "add real work soon."
Well, it's soon.
The projects section now has actual work — a mix of client projects from Meta Digital and personal builds. Agency work I'm proud of, side projects that show range, and enough variety to give someone a real sense of what working with me looks like.
It sounds obvious, but showing real work matters more than any clever animation or polished layout. A portfolio without projects is just a landing page with extra steps.
Deploy Forge
The other thing I've been working on — and the project I'm most excited about right now — is Deploy Forge. It's a tool I built to solve a problem I kept running into at the agency: deploying WordPress themes was painful.
The idea is simple. Push to GitHub, deploy to WordPress. Automated theme deployments with zero downtime and instant rollbacks. No more FTP uploads, no more SSH-ing into servers to pull changes, no more crossing your fingers and hoping nothing breaks.
It's built with Next.js, TypeScript, Postgres, and ElysiaJS on the backend. I also had to build a companion WordPress plugin to handle the other side of the deployment — receiving the payload, swapping themes, and managing rollbacks on the WordPress end. So it's been a full-stack project in every sense, spanning two completely different ecosystems. I'm actively building it, using it, and shipping updates.
Building Deploy Forge has been a different kind of challenge compared to client work. With agency projects, the scope is defined and the deadline is real. With your own product, you have to make every decision yourself — what to build next, what to cut, when it's good enough to ship. It's taught me a lot about prioritisation and about building something people actually want to use, not just something that's technically interesting.
What's Next
This refresh isn't a finish line — it's a reset. I want to write more (this post is a start), add more projects as they ship, and keep iterating on the design as I find things that bug me.
The site finally feels like it matches the work. That's all I wanted.
Written from Lawrence, Otago — where the winters are long and the coffee is strong.




