Anyway, we had to do that, and part of the reasons we chose to rewrite Nuxt from scratch was that there were a lot of changes that were happening in the ecosystem. So immediately for us, there was the fact that Vue had had a major release. There was this new version of Vue, Vue 3, which changed how Reactivity worked for Nuxt itself. There was also a big change. We moved from webpack 4 to 5, and then during the whole process of building Nuxt, Evan Yu, who originally created Vue, also created something called Vite, which was wonderful but also extremely frustrating because it meant we had to totally re-architect Nuxt in order to work with it. I mean, we didn't have to, but the developer experience was so incredible.
And it was an opportunity for us to rework Nuxt to be bundler-agnostic, so we built it so it could work with both webpack and Vite, and since then we've added RSPack, and we could add more. Or you could, it's pluggable, anyone can provide their own. But there were other things that were happening too, around that time in the ecosystem. So there was a move from that sort of long-lived server that starts up once and takes requests and just lasts until you need to, I don't know, start up another container or phase it out and replace it with a new deployment, to things like Cloudflow workers, which had very strict size limits, or lambdas, which had things like size constraints, the bigger your zip file, the longer it takes to unzip, and where things like cold starts were incredibly important in terms of returning a good response to the end user.
And other things like Deno, Bun, a move to ESM, and more. And so out of that, we built a server engine for Nuxt, which is totally different from what we had before, and we called it originally Nuxt Sigma, we then called it Nuxt Nitro, and finally we decided to drop the Nuxt and make it a generic server that anyone could use to build performant servers. And we wanted to design it in such a way that people could build their own meta-framework on top of it, and that has happened, so people like Brandon Roberts has built an incredible meta-framework and he uses Nitro under the hood. Equally frameworks like SolidStart or TanStackStart also work with Nitro for that to be the server for them too. And that is the best part of open-source, right?
Comments