OpenNext takes the Next.js build output and converts it into a package that can be deployed to any functions as a service platform.
OpenNext aims to support all Next.js 13 features. Some features are work in progress. Please open a new issue to let us know!
- App & Pages Router
- API routes
- Dynamic routes
- Static site generation (SSG)
- Server-side rendering (SSR)
- Incremental static regeneration (ISR)
- Middleware
- Image optimization
- NextAuth.js
- Running at edge
- No cold start
In the example
folder, you can find a Next.js benchmark app. It contains a variety of pages that each test a single Next.js feature. The app is deployed to both Vercel and AWS using SST.
AWS link: https://d1gwt3w78t4dm3.cloudfront.net
Vercel link: https://open-next.vercel.app
To run OpenNext
locally:
- Clone this repository.
- Build
open-next
:cd open-next pnpm build
- Run
open-next
in watch mode:pnpm dev
- Now, you can make changes in
open-next
and build your Next.js app to test the changes.cd path/to/my/nextjs/app path/to/open-next/packages/open-next/dist/index.js build
We are grateful for the projects that inspired OpenNext and the amazing tools and libraries developed by the community:
- nextjs-lambda by Jan for serving as inspiration for packaging Next.js's standalone output to Lambda.
- CDK NextJS by JetBridge for its contribution to the deployment architecture of a Next.js application on AWS.
- serverless-http by Doug Moscrop for developing an excellent library for transforming AWS Lambda events and responses.
- serverless-nextjs by Serverless Framework for paving the way for serverless Next.js applications on AWS.
Special shoutout to @khuezy and @conico974 for their outstanding contributions to the project.
Maintained by SST. Join our community: Discord | YouTube | Twitter