From 99a4efc59eed8d8b8e1e3f820727a237331c5f4b Mon Sep 17 00:00:00 2001 From: Mikkel Svartveit Date: Tue, 12 Dec 2023 19:08:18 -0800 Subject: [PATCH] Add Next.js 14 blog post --- src/assets/images/next14.png | Bin 0 -> 29010 bytes src/content/blog/nextjs-14-is-not-ready.md | 55 +++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/assets/images/next14.png create mode 100644 src/content/blog/nextjs-14-is-not-ready.md diff --git a/src/assets/images/next14.png b/src/assets/images/next14.png new file mode 100644 index 0000000000000000000000000000000000000000..fb391a08866473ad90a3aae900fb7e19a4c36ca1 GIT binary patch literal 29010 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 literal 0 HcmV?d00001 diff --git a/src/content/blog/nextjs-14-is-not-ready.md b/src/content/blog/nextjs-14-is-not-ready.md new file mode 100644 index 0000000..82b1f26 --- /dev/null +++ b/src/content/blog/nextjs-14-is-not-ready.md @@ -0,0 +1,55 @@ +--- +intro: "I'm intruiged by React Server Components, and Partial Prerendering is very clever. However, Next.js still has a long way to go." +image: "@assets/images/next14.png" +date: 2023-12-12 +--- + +# Next.js 14 Is Really Cool. But It's Not Ready Yet. + +Next.js 14 has been out for over a month now, and I’ve had some time to read and reflect on the new features. I am still intrigued by the integration with React Server Components introduced in Next.js 13, and I genuinely believe that React and Next brings novel stuff to the table that you just can’t find in other frameworks right now. However, even after version 14, I still have the feeling that Next.js isn’t quite ready for prime time. + +## New stuff in version 14 + +I watched the keynote of Next.js Conf in October, and couldn’t help but feel a bit underwhelmed by the announcements. The updates in 14.0 can basically be summed up like this: + +1. Existing feature that was previously in beta is still in beta. +2. Existing beta feature (that Remix and SvelteKit already has, by the way) is now finally production ready. +3. Actual new feature! But it’s only available in the bleeding-edge Canary version of Next. +4. Oh and we have some new flashy docs. + +Let’s break each down a bit more. + +### 1. Turbopack reaches 90% test coverage + +While every other Javascript framework on earth is adopting Vite to great success, Vercel has decided to instead craft their own build tool replacement for Webpack. They call it Turbopack, which is a fitting name, because it’s _really_ fast (thank you Rust). Turbopack is built by incredibly skilled engineers and is a massive improvement over Webpack in almost every way. + +The first alpha version of Turbopack [was released to the public over a year ago](https://vercel.com/blog/turbopack), and all Next.js developers could try it out by enabling a feature flag. This seemed promising, but fast forward one year, and Turbopack is [still not production ready](https://areweturboyet.com/). Vercel literally went on stage and proudly announced that "no, you still can't use Turbopack in your production apps". What? + +I am happy on the behalf of Next.js developers that Turbopack will be ready soon™, but this doesn’t change the fact that in 2023, the most popular Javascript metaframework in the world still uses Webpack as default. This makes the Next.js development server slower than literally all the alternatives, [even Angular](https://blog.angular.io/introducing-angular-v17-4d7033312e4b)! + +### 2. Server Actions is now stable + +Server Actions is a feature that lets you mutate data from a form without manually calling a JSON API endpoint. Instead, you can just define the mutation as a simple Javascript function, and this function will run securely on the server. This is really neat, as it allows for an even tighter integration between the client and the server, even with full end-to-end type safety. This feature was announced in May this year and it has finally become part of the stable version of Next. + +It’s not a particularly groundbreaking feature, given that both Remix and SvelteKit has had this feature since their inception. Still, I’m happy that Next.js now has it, because it is a small thing that really levels up the developer experience that Vercel is all about. + +### 3. Preview of Partial Prerendering + +_Now_ we're talking! A new feature that we actually haven't seen before in Next nor in any other framework. Honestly, I think this is a super cool feature. It bridges the gap between server-side rendering and static site generation, giving the user the best of both worlds. Without PPR, you would have to choose between: + +1. Statically generating the entire route. The server just sends a pre-rendered HTML file to the browser. This gives really fast load times, but you can’t serve dynamic content, e.g. anything from a database or a CMS. +2. Server-side rendering the route. This allows you to serve whatever dynamic content you want, but it is slightly slower than a static page because some computation and rendering actually has to be done at the server before the HTML is sent over. + +Partial prerendering elegantly bridges the gap these two. Next.js is able to automatically detect what parts of the page is static, and renders it at build time. Once a request hits the server, this static «shell» is immediately sent to the client. At the same time, the server starts rendering the dynamic parts of the page, and once that’s ready, it gets streamed straight to the browser. The UX here is great; the static parts of the page is shown to the user right away, but the dynamic content is still rendered in as fast as it would with traditional SSR. Vercel even claims that all of this should happen automatically without extra work from the developer. + +However, there are some caveats. As of the time of writing, you can only use partial prerendering if you’re 1) using a prerelease version of Next and 2) hosting on Vercel. I certainly hope that by the time Next.js 15 releases, developers are able to utilize this feature in production apps running on any hosting platform. + +### 4. A new Next.js Learn course + +I have admittedly not checked out this tutorial. It’s most likely great. Still, if I was Vercel I would not consider this a _feature_ of Next.js. I find it strange that they portray it as such, and I suspect they included it because of the low amount of other new stuff in Next.js 14. + +## Is next year the one? + +Despite this year’s somewhat disappointing update, Next.js is clearly evolving. Along with React Server Components, I can imagine a future where Next.js is an even stronger contender in the current realm of web development tools. + +While SvelteKit is still my go-to for the smoothest developer experience, I’m excited for what’s in line for Next. New developments in the React ecosystems are just too big to ignore. Once Turbopack is ready, partial prerendering is more widely available, and the server component paradigm settles a bit, Next.js offers a compelling argument for revisiting the world of React. Until then, I am sticking with Svelte.