OpenNext takes the Next.js build output and converts it into packages that can be deployed across a variety of environments. Natively OpenNext has support for AWS Lambda, and classic Node.js Server.
Features
OpenNext aims to support all Next.js 14 features. Some features are work in progress. If you are running into any problems make sure to check the docs first before you open a new issue or visit our Discord to let us know!
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.
For personalisation you need to create a file open-next.config.ts at the same place as your next.config.js, and export a default object that satisfies the OpenNextConfig interface. It is possible to not have an open-next.config.ts file, the default configuration will then be applied automatically.
Debug mode
OpenNext can be executed in debug mode by setting the environment variable OPEN_NEXT_DEBUG=true before your build.
This will output A LOT of additional logs to the console. This also disable minifying in esbuild, and add source maps to the output. This can result in code that might be up to 2-3X larger than the production build. Do not enable this in production.
You can read more about the configuration in the docs
Contribute
To run OpenNext locally:
Clone this repository.
Build open-next:
cd packages/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
Coldstart
OpenNext provide you with a warmer function that can be used to reduce cold start.
On Lambda, there are multiple scenarios where a lambda will trigger a cold start even if you have some warmed instance. For example if you have more requests than warm instances you'll get a cold start. Also NextJs lazy load the routes, so even if you hit a warm instance, this specific route might not have been loaded yet.
Acknowledgements
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.
The npm package @genezio/open-next receives a total of 0 weekly downloads. As such, @genezio/open-next popularity was classified as not popular.
We found that @genezio/open-next demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 0 open source maintainers collaborating on the project.
Package last updated on 22 Oct 2024
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.