Issue #8: Can't Stop
🎶 Can’t stop, addicted to the shindig… 🎶
[Meta]framework authors (and open-source contributors) are always on the grind, pushing out updates, fixes, and new features at a breakneck pace. In this issue, we’ll dive into the latest releases, explore the challenges of maintaining cutting-edge tools, and celebrate the hard work that keeps the ecosystem moving forward. Let’s get to work!
The Good
We have a bunch of new minor versions in this issue. Why is it important if it’s minor? Because many of them bring significant enhancements to the corresponding metaframeworks and adjacent tools.
For instance, Next.js got v15.2.0. And while half of the updates are experimental, there are some significant UX improvements, like making errors more comprehensive and readable. The list of changes may sound too hipster for enterprise developers, though, as they tackle problems at a different level with their apps. For instance, Stefano Magni from Preply wrote the piece on how they fight for performance gains in their Next 13 app (without fancy nuggets like the app router). I personally love such case studies as they underline the difference in approaches between Twitter-driven development and enterprise-grade apps.
I cannot deny that the changelogs from Next look a bit chaotic. From this point of view, the Astro changelog looks like a beautiful poem in comparison. Their v5.4.0 release brings some nice markdown enhancements and more flexible management of host allowlists for dev and preview servers, which seems secondary but, like any security improvement, always goes a long way.
React Router folks came up with v7.2.0, bringing noticeable updates for SPA mode and framework mode (that is, the thing previously called Remix). With React Router informally taking the baton after CRA deprecation, it’s good to see the tooling evolving to support that.
The Bad
Talking about breaking changes, Brisa by Aral Roca has its own approach to releasing, though it still has a way to go before its first major version. Its minor versions sometimes bring breaking changes (that’s the freedom of v0.x.x), but it means the tool is taking huge steps forward, which is a good sign for any relatively new JS framework. Thus, it’s not a CON but rather a PRO.
And speaking of PROs and CONs, I came across an interesting piece on metaframeworks and their features from Ed Robinson. It’s a thoughtful perspective on the metaframework approach, the benefits it brings, and some potential pitfalls you may face when using them.
The development of meta frameworks also faces certain challenges, primarily related to integrating tools like GraphQL, handling caching, and balancing generic with platform-specific features. As the web development community is currently in an experimental phase, it is crucial to strike the right balance between abstraction and maintainability.
A good example of such balancing and constant traversals between PROs and CONs is the evolution of Svelte and SvelteKit. While the relatively recent updates brought many improvements and more clarity to the framework DX, there are still multiple opinions on how to use it and even whether you need to. In this post, for instance, the author laments the fallout of upgrading a web application to Svelte 5. And while I didn’t have such drastic issues with my Svelte project migration (a simple one, though), I cannot deny there’s some truth in the conclusions.
Good software is built on understanding, not cleverness.
Some people overcome personal issues with an opinionated framework approach, while others switch gears and adopt an alternative, especially if it’s a good old thing shining bright when revisited. James Midzi shares his experience of understanding Nuxt better and accepting it as a good fit for their projects after dealing with SvelteKit and Svelte. This is an option too, as in many cases, the framework you choose is a matter of personal taste and the goals you want to achieve. If switching helps, especially after gaining good insights from another tool, it’s a win anyway.
The Noteworthy
Speaking of different approaches, Matteo Collina, one of the biggest thought leaders and innovators in the Node ecosystem, has written a deep article about a new Web Specification called URLPattern
, its goals, and why you actually shouldn’t use it [yet]. At least for routing HTTP requests, which we, as web developers, do all the time in one way or another. Supporting their opinion with corresponding benchmarks, the author suggests alternatives that, while not as obvious, still perform better for routing goals. I believe metaframework authors listen to such thoughts quite attentively.
The maintainers of one of my favorite tools, ESLint, have declared CSS support, a long-awaited feature and another step towards the goal of supporting nearly everything with the linter. Through the possibility to control lots of things, from module boundaries to the way teams develop their design systems via custom rulesets, ESLint has proven to be an invaluable tool for many metaframework users.
Another piece of tooling news is that TanStack Router now supports Solid apps. As I mentioned in the previous issue, there’s deep collaboration between the two metaframework ecosystems, and it’s interesting to see how it all progresses.
Last but not least, I wanted to shamelessly remind you that the Encyclopedia of Metaframeworks is constantly evolving and growing with new tools and sections. There’s even a dedicated “Security” section now. So if you have something to share in terms of the metaframework tooling ecosystem, you’re more than welcome to contribute to it.
đź‘‹