Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions pages/aws/comparison.mdx
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
It should be noted that open-next does not actually deploy the app. It only bundles everything for your IAC to deploy it.
It should be noted that open-next does not actually deploy the app. It only bundles everything for your IAC to deploy it.

Here is a table comparing the different options to deploy a next.js app:

| Features | OpenNext | Vercel | AWS Amplify | Docker Standalone |
| --- | --- | --- | --- | --- |
| **Function splitting** | Yes | Yes | No | No |
| **Multiple deployment target** ¹ | Yes | Yes ² | No | No |
| **Serverless** | Yes | Yes | Yes | No ³ |
| **Warmer function** | Yes | No | No | Not necessary |
| **External middleware** | Yes ⁴ | Yes | No | No |
| **Edge runtime support** | Partial Support ⁵ | Yes | Embedded ⁶ | Embedded ⁶ |
| **ISR** | Yes | Yes | Yes | Yes ⁷ |
| **On-Demand Revalidation** | Yes ⁸ | Yes | No | Yes ⁸ |
| **Custom server** | Yes ⁹ | No | No | Yes |
| Features | OpenNext | Vercel | AWS Amplify | Docker Standalone |
| -------------------------------- | ----------------- | ------ | ----------- | ----------------- |
| **Function splitting** | Yes | Yes | No | No |
| **Multiple deployment target** ¹ | Yes | Yes ² | No | No |
| **Serverless** | Yes | Yes | Yes | No ³ |
| **Warmer function** | Yes | No | No | Not necessary |
| **External middleware** | Yes ⁴ | Yes | No | No |
| **Edge runtime support** | Partial Support ⁵ | Yes | Embedded ⁶ | Embedded ⁶ |
| **ISR** | Yes | Yes | Yes | Yes ⁷ |
| **On-Demand Revalidation** | Yes ⁸ | Yes | No | Yes ⁸ |
| **Custom server** | Yes ⁹ | No | No | Yes |

1. Multiple deployment target means that you can deploy the same app to different target like some part to ECS, some part to Lambda etc...
2. Vercel supports only serverless Node (backed by AWS Lambda) and Edge runtime (backed by cloudflare workers)
2. You can deploy a dockerized next.js app to AWS lambda using AWS Lambda Web adapter, but some part like ISR will not work as expected
3. OpenNext supports external middleware, but it is not enabled by default.
4. OpenNext supports edge runtime in node, but every route needs to be deployed separately. OpenNext supports edge runtime in cloudflare workers, but only for app router api routes.
5. Embedded means that the edge runtime is embedded inside the bundle. It emulates a fake edge runtime inside the prod environment.
6. You might experience some inconsistencies with ISR if you have a CDN in front of your app. Next always set the cache-control header to `s-maxage=REVALIDATION_TIME, stale-while-revalidate`, it means that your data (json or rsc) and your html might be out of sync.
7. You need to invalidate the CDN manually. For OpenNext, here is an example for cloudfront
8. OpenNext supports custom server, but it is not enabled by default. You can have a custom server even in a serverless environment.
3. You can deploy a dockerized next.js app to AWS lambda using AWS Lambda Web adapter, but some part like ISR will not work as expected
4. OpenNext supports external middleware, but it is not enabled by default.
5. OpenNext supports edge runtime in node, but every route needs to be deployed separately. OpenNext supports edge runtime in cloudflare workers, but only for app router api routes.
6. Embedded means that the edge runtime is embedded inside the bundle. It emulates a fake edge runtime inside the prod environment.
7. You might experience some inconsistencies with ISR if you have a CDN in front of your app. Next always set the cache-control header to `s-maxage=REVALIDATION_TIME, stale-while-revalidate`, it means that your data (json or rsc) and your html might be out of sync.
8. You need to invalidate the CDN manually. For OpenNext, here is an example for cloudfront
9. OpenNext supports custom server, but it is not enabled by default. You can have a custom server even in a serverless environment.
5 changes: 3 additions & 2 deletions pages/aws/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ We need your help keeping it up to date and feature complete. Make sure to [**jo

---

OpenNext aims to support all Next.js 14 features. Some features are work in progress. Please open a [new issue](https://github.com/opennextjs/opennextjs-aws/issues/new) to let us know!
OpenNext aims to support all Next.js 15 features. Some features are work in progress. Please open a [new issue](https://github.com/opennextjs/opennextjs-aws/issues/new) to let us know!

- [x] App & Pages Router
- [x] API routes
Expand All @@ -41,7 +41,8 @@ OpenNext aims to support all Next.js 14 features. Some features are work in prog
- [x] [NextAuth.js](https://next-auth.js.org)
- [x] [Running in lambda@edge](/aws/config/simple_example#running-in-lambdaedge)
- [x] [No cold start](/aws/inner_workings/components/warmer)
- [x] Experimental streaming support
- [x] Support for after
- [ ] [Composable Caching](https://nextjs.org/blog/composable-caching) (`'use cache'`) is a Next.js 15 feature and not supported yet.

---

Expand Down
3 changes: 2 additions & 1 deletion pages/cloudflare/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ We will update the list as we progress towards releasing 1.0.
- [ ] [Pages Router](https://nextjs.org/docs/pages) (you should use the App Router instead, which was introduced in Next.js 13)
- [ ] [Incremental Static Regeneration (ISR)](https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration)
- [ ] [Partial Prerendering (PPR)](https://nextjs.org/docs/app/building-your-application/rendering/partial-prerendering)
- [ ] [Experimental streaming support](https://nextjs.org/blog/next-15-rc#executing-code-after-a-response-with-nextafter-experimental)
- [ ] [Support for after](https://nextjs.org/blog/next-15-rc#executing-code-after-a-response-with-nextafter-experimental)
- [ ] [Composable Caching](https://nextjs.org/blog/composable-caching) (`'use cache'`) is a Next.js 15 feature and not supported yet.

We welcome both contributions and feedback!

Expand Down
Loading