Lachlan's avatar@lachlanjc/notebook

10 features Next.js 15 could launch

Ahead of even Vercel Ship, I’m already dreaming about what could come to Next.js this fall with v15 at Next.js Conf.

Here’s my highest-confidence items for the Next team releasing:

  • App Router is stable(r). 2022 introduced and overpromised about App Router, 2023 brought “stability,” by which the team meant API stability, if not bug-free stability, which was widely misunderstood. Unclear how to brand improved stability as revolutionary, but this should be the main focus again this year.
  • Turbopack for dev by default. 18 months after the announcement, Turbopack supports the majority of Next.js features and is now my go-to—99.9% of tests are passing! Now, it should be the default: drop the --turbo, it’s cleaner.
  • Turbopack for builds (preview). Builds can always be faster. Pour some Rust on them.
  • View Transitions. CSS View Transitions are already at 71% browser support, and have landed in Safari Technical Preview, so will likely be available in the most-used browsers by September/late this year. Mastermind Shu Ding launched a preview of support in App Router. Building this into Next.js itself, ideally supporting Pages Router too, would add visual flare to this release.

The recently-released Portfolio Starter Kit demonstrates what’s too difficult in Next today for building content-based sites—and should be built in natively:

  • Content collections. It’s way too much work to grab a collection of files that are anything but JSON, whether MD(X) or images or anything else, to render a simple blog/feed. An API inspired by Contentlayer (RIP), Astro Content Collections, and Bun’s Glob API would make Next.js dramatically easier for many developers’ first projects with it, a personal website/blog.
  • New MDX plugin. On the same topic, rendering MDX right now is a mess: the official plugin isn’t what you want to render MDX blog posts, the most common use case. (A subdirectory of posts isn’t “remote,” and shouldn’t be more complicated than embedding known-path local files.) It requires installing 4 dependencies, then the RSC/Rust implementation only supports project-wide custom components. Next’s MDX plugin should work seamlessly with content collections & RSC to render a directory’s worth of files.
  • Wrap RSS support. Frameworks like Next should make it easy for websites to be good citizens of the web, and that includes making it easy to configure metadata tags, sitemaps, RSS feeds, and more. Making an RSS feed (connected to content collections, ideally) should not require manually assembling XML; make an API just like the sitemap one so RSS takes minutes to configure.
  • Make JSON-LD not feel like an antipattern. Right now, the official recommendation for adding JSON-LD requires suppressHydrationWarning & dangerouslySetInnerHTML. Allowing exporting these alongside or inside metadata, with automatic TypeScript validation, would encourage making parsable pages.

Two random things on the horizon I’d love to see eventually:

  • Expand/stabilize @next/third-parties. Making high-performance embeds the easiest to reach for will help raise the average standard of Next.js sites. Expand support for more non-Google content services like Vimeo, Spotify, Apple Music, etc, and more analytics services like HubSpot, Mixpanel, etc.
  • next/video component. The next/image component took some iterations to settle on the right API, but I can’t imagine Next.js without it anymore. Video is still super hard, and I can envision Vercel wrapping Mux with a great API (and marking up their pricing).