
Learned the right moment to reach for static, and the value of component systems when they justify their weight
I migrated this site from Nuxt 2 to Hugo to reduce complexity and improve build speed (static generation). Later I realized I missed component reuse and content flexibility, so I moved back to Nuxt 4. The lesson: understand the trade-offs between static generation and component systems, and don't over-engineer until the problem is real.
I originally migrated this site from Nuxt 2 to Hugo to simplify a content‑first build and reduce runtime complexity. Later, I moved back to Nuxt to regain a richer component system, content tooling, and a more flexible UI layer.
This post documents that round‑trip and highlights an additional goal: exploring Cloudflare Pages as the hosting target, including build limits, cache behavior, and deployment ergonomics.
| Decision | Trade-off | Chose |
|---|---|---|
| Use Hugo for this site | Fast builds, simple deployment; limited component reuse and markdown composition | (Temporary) |
| Return to Nuxt 4 + Nuxt Content | More flexible, better for rich components; slightly heavier build; component-first instead of static-first |
It's not DNS
It cannot be DNS
It was DNS
Good luck with your migration! If you hit a snag, it's probably DNS—check it anyway.
The lesson wasn't about Hugo vs. Nuxt — it was about understanding the trade-offs. Hugo was the right tool for a content-first static site when the authoring workflow and deployment needed to be simple. Later, when I wanted richer components and more flexible content sourcing, Nuxt's component system and Nuxt Content justified the added complexity.
The hosted outcome: faster lighthouse scores, simpler preview deployments on Cloudflare Pages, and the freedom to embed rich Vue components directly in markdown when it makes sense. No over-engineering, just the right tool at the right moment.
Shipping a high-scale PWA from an inherited e-commerce project
How a stalled Node.js + Angular e-commerce project was diagnosed, recovered, and shipped end-to-end as a PWA and mobile apps for a high-volume customer base — with a Docker registry and CI/CD pipeline that made continuous delivery possible for the team that came after.
The Intern is downloading movies again
What happens when you give tech-savvy people eight hours of internet access a day? Welcome to the The Intern is downloading movies again problem.