4/16/2026 ~ 4 min read

From Nue.js to Astro


Not long ago, I wrote about migrating my website to Nue.js. I was genuinely excited about it. No node_modules, no complexity, just clean and standard HTML, CSS, and JavaScript. I even called it “shocking” in a good way.

Well, things change. And here I am, writing about migrating away from it.

Nue.js is phasing out

The core reason is simple: Nue.js is not moving forward anymore.

It was a bold project with an admirable philosophy. Its creator, Tero Piirainen, had a clear and compelling vision of bringing the web back to standards. I respected that deeply, and still do. But the reality of the ecosystem caught up with it.

React and Tailwind have gained such massive traction that they are now essentially the default for web development. Whether you agree with that or not, it is hard to argue against the tooling, the community, the ecosystem, and the sheer number of developers who know them. Nue.js was swimming upstream against a very strong current.

On top of that, AI-assisted development is advancing at an extraordinary pace. The tools developers use today, from AI code editors to framework integrations, are deeply tied to the mainstream ecosystem. Nue.js, being a minimal and non-standard framework, was increasingly left out of that conversation. The author himself acknowledged this and stepped back.

When the framework you bet on starts phasing out, the right move is to step out gracefully before it becomes a problem.

Why Astro

I have been watching Astro since its early days, and I always liked what I saw.

Astro is a static-first framework that does not force you into any particular UI library. You can use Svelte, React, Vue, or nothing at all. It generates static HTML by default, which means excellent performance and great SEO out of the box. The content collections API is thoughtful and makes managing blog posts a pleasure.

What I appreciate most is that Astro does not try to be everything. It has a clear purpose: build fast, content-focused websites. That is exactly what my personal site is. It is not a web application. It does not need a client-side router. It needs to be fast, readable, and easy to maintain.

Astro gives me all of that without asking me to compromise on anything.

And to think that I used things like Jekyll and even Next.js in the past.

How the migration went

The migration was not particularly difficult. The posts were already in Markdown, so I only had to adapt the frontmatter fields to match Astro’s content collection schema and move the images to the public directory.

The main difference in effort came from converting Nue.js image syntax, which is a custom format, into standard Markdown image tags. I wrote a small script to handle it automatically, so it was a matter of minutes rather than hours.

The rest of the website, the layout, the components, the styles, came together quickly. Astro’s component model is intuitive, and the developer experience is genuinely good. I used Charca’s blog template for astro, changed here and there, and done. The style didn’t change much. I’m not particularly interested in a fancy design. I want somewhere to write and share my thoughts.

Was it worth it?

Absolutely.

The result is a website that is faster, better structured, easier to extend, and built on a framework with a healthy and growing community behind it. I can write a post, push it, and deploy with a single command. Adding new features does not require fighting the framework.

More importantly, I feel confident about the long-term sustainability of this choice. Astro is not going anywhere. It is well-maintained, well-documented, and keeps getting better.

Sometimes moving on is just the right call. No drama, no regrets.

Stay hydrated.


Headshot of Andrey Luiz

Hi, I'm Andrey Luiz. I'm a software engineer crazy about front-end, AI, and more recently crochet. I'm also a husband, a dad, a gamer, a coffee lover, a climber, and a terrible cook.