|
| 1 | +# Changelog |
| 2 | + |
| 3 | +## 5.0.0-alpha.0 (2023-11-13) |
| 4 | + |
| 5 | +This is the first internal-only release of the new Next Runtime! It represents a big step forward in |
| 6 | +making the runtime more reliable and easier to maintain by leaning on the framework more, using new |
| 7 | +Netlify platform primitives and working with new Next.js public APIs such as custom cache handling |
| 8 | +and standalone mode. |
| 9 | + |
| 10 | +The features in this release finally allow us to run Next.js App Router sites, with full support for |
| 11 | +the various rendering/routing/revalidating scenarios. |
| 12 | + |
| 13 | +Note that we are currently working through some issues with Pages Router support, so please consider |
| 14 | +this an App Router only release, with Pages Router support still to come. Similarly, this release |
| 15 | +contains no edge runtime and hence middleware will run at the origin and not on the edge. |
| 16 | + |
| 17 | +This is an alpha release, so please expect a variety of interesting edge-case bugs. It is not ready |
| 18 | +for production use, but we are excited to share it and begin gathering feedback. |
| 19 | + |
| 20 | +### Features |
| 21 | + |
| 22 | +- **Standalone mode:** The Next Runtime now builds Next.js sites in standalone mode, which means the |
| 23 | + Next Runtime no longer needs to trace and package server files/dependencies and we can instead |
| 24 | + rely on the framework. In addition, it exposes a server entrypoint that allows us to handle |
| 25 | + requests in a more reliable way, meaning we are less exposed to changes in Next.js internals. |
| 26 | +- **Cache handling:** We are making use of a new Next.js configuration parameter that allows us to |
| 27 | + specify a custom cache handler. This is a huge leap forward because it allows us to leverage |
| 28 | + Netlify's new `Cache-Control` primitives and retire the use of ODBs, which are no longer suitable |
| 29 | + for dealing with the advanced caching requirements of modern Next.js sites. The new Next Runtime |
| 30 | + forwards Next.js `Cache-Control` headers and specifically ensures that `stale-while-revalidate` is |
| 31 | + handled by our edge CDN and does not leak to the browser. In addition, the runtime sets |
| 32 | + appropriate `Vary` and `Cache-Tags` headers according to the Next.js response. |
| 33 | +- **Blob storage** To support globally persistent static revalidation, the Next Runtime makes use of |
| 34 | + Netlify's new blob storage primitive. Page content and metadata is cached in the blob store, |
| 35 | + meaning that the same content version is available to all lambda invocations and can be |
| 36 | + automatically (TTL) or manually (on-demand) revalidated across all CDN nodes. |
| 37 | +- **Functions API v2** The server handler utilizes the new Netlify Functions API, which means we are |
| 38 | + now receiving/returning a standard web Request/Response object and no longer need to bridge |
| 39 | + between a Lambda event and a Node event by standing up an HTTP server on each request. In |
| 40 | + addition, the new configuration API means we will no longer need to modify the Netlify TOML file |
| 41 | + and can avoid modifying any user code or Next.js build output for better DX. |
0 commit comments