[{"data":1,"prerenderedAt":24},["ShallowReactive",2],{"LC338NSIln":3},{"id":4,"slug":5,"title":6,"excerpt":7,"meta_title":8,"meta_description":8,"page_content":9,"featured_image":17,"fields":18,"tags":19,"published":20,"published_at":21,"created_at":22,"updated_at":23},"63e44ddf-9a57-4848-8ad9-ed1d2494fe01","notes/weekly-roundup-2026-06-12","The week in headless: Nuxt 4.4, and why I'm not rushing to Nuxt 5","End of week notes: Nuxt 4.4 is out, Nuxt 5 is on the horizon with Nitro 3, and a quick reflection on the Magento pieces that went up this week.",null,{"blocks":10},[11],{"id":12,"data":13,"type":16},"bcda6b14-e7b5-4e08-92d5-ef25fb8420cc",{"content":14,"maxWidth":15},"\u003Cp>Closing the week with a few notes from my side of the fence. Most of what crossed my desk this week was framework housekeeping rather than fireworks, which honestly is how I like it. Boring releases are good releases.\u003C/p>\u003Ch2>Nuxt 4.4 landed\u003C/h2>\u003Cp>The headline for me is \u003Ca href=\"https://nuxt.com/blog/v4-4\">Nuxt 4.4\u003C/a>. Nuxt 4 itself shipped back in July 2025, and the line I keep coming back to is that it was a stability release, not a feature grab. The new app directory structure, the saner data fetching, the proper TypeScript separation between app, server and shared code. 4.4 keeps that going with custom useFetch and useAsyncData factories, Vue Router 5, an accessibility announcer and build profiling. None of it is loud. All of it is the kind of thing that makes a real project nicer to live in six months down the line.\u003C/p>\u003Cp>I run a Nuxt stack for client work, so I read these notes the way you read a changelog for something you actually depend on, hunting for the breaking change that ruins a Tuesday. There was not one. The fetch factories are the bit I will use first, because the inconsistency in how those data composables behaved across a big app was a real papercut.\u003C/p>\u003Ch2>Nuxt 5 is coming, and I am in no hurry\u003C/h2>\u003Cp>The team have said \u003Ca href=\"https://nuxt.com/blog/v4\">Nuxt 5\u003C/a> is planned for the sooner side, bringing Nitro 3 and h3 v2 for performance, plus the Vite Environment API. Good. I want all of that eventually. But I have watched enough framework majors to know the move is to let it settle. Nuxt 3 maintenance ran until the start of this year, which tells you the support windows are sensible, and there is no prize for being on the newest number the week it drops. I upgrade when the ecosystem around me has, not before.\u003C/p>\u003Cp>This is the senior version of restraint that nobody teaches you. The interesting work is rarely chasing the latest release. It is shipping the client's thing on a stack that holds still long enough to be reliable. A client does not care which Nuxt major their site is on. They care that it is fast, that it does not fall over, and that the person who built it can still explain it a year later. Newest-for-the-sake-of-it works against all three. I will read the Nuxt 5 notes the day they land, run it on a side project, and let it earn the production work over a couple of months. That is not caution for its own sake. It is just what reliable looks like up close.\u003C/p>\u003Ch2>What I put up this week\u003C/h2>\u003Cp>A few pieces went live on the notes this week, all part of working back through the Magento years and being honest about what has changed. One on \u003Ca href=\"/notes/how-i-write-code-now\">how I actually write code now\u003C/a>, which is the most personal of the three. One on making a store genuinely fast, where the performance lessons survived the move off Magento better than the platform did. And one on deployment, then and now, comparing the zero-downtime pipelines I used to wire up by hand with how little ceremony it takes today.\u003C/p>\u003Cp>The thread running through all of them is the same thing I keep saying about Nuxt 5. The tools change, the judgement carries over. Knowing why a store was slow is worth more than any one framework's answer to it.\u003C/p>\u003Cp>That is the week. Back to the build.\u003C/p>","lg","wysiwyg","",{},[],true,"2026-06-12T07:00:00+00:00","2026-06-12T05:17:00+00:00","2026-06-20T06:25:56.481478+00:00",1781942444115]