
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.
Using the official exchange rate in Venezuela's e-commerce
Venezuela has unique challenges for e-commerce. Local laws and tax regulations require invoices in bolívares while prices are quoted in USD. A simple Python and FastAPI scraper helps developers fetch the Banco Central de Venezuela exchange rate—here's when it makes sense and how to build it.
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.