Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sst/open-next
Open source Next.js serverless adapter
https://github.com/sst/open-next
aws nextjs sst
Last synced: about 2 months ago
JSON representation
Open source Next.js serverless adapter
- Host: GitHub
- URL: https://github.com/sst/open-next
- Owner: sst
- License: mit
- Created: 2022-11-29T21:34:22.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-04T17:11:10.000Z (4 months ago)
- Last Synced: 2024-07-07T10:27:04.105Z (4 months ago)
- Topics: aws, nextjs, sst
- Language: TypeScript
- Homepage: https://open-next.js.org
- Size: 21.4 MB
- Stars: 3,703
- Watchers: 21
- Forks: 111
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
---
OpenNext takes the Next.js build output and converts it into a package that can be deployed to any functions as a service platform.
## Features
OpenNext aims to support all Next.js 14 features. Some features are work in progress. Please open a [new issue](/issues/new) to let us know!
- [x] App & Pages Router
- [x] API routes
- [x] Dynamic routes
- [x] Static site generation (SSG)
- [x] Server-side rendering (SSR)
- [x] Incremental static regeneration (ISR)
- [x] Middleware
- [x] Image optimization
- [x] [NextAuth.js](https://next-auth.js.org)
- [x] Running at edge
- [x] No cold start## Who is using OpenNext?
[Gymshark UK](https://uk.gymshark.com), [Udacity](https://engineering.udacity.com/deploying-next-js-on-the-edge-with-sst-is-sst-the-game-changer-its-claimed-to-be-1f05a0abc27c), [TUDN](https://www.tudn.com), [NHS England](https://github.com/nhs-england-tools/terraform-aws-opennext)
## Example
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](https://docs.sst.dev/start/nextjs).
AWS link: https://d1gwt3w78t4dm3.cloudfront.net
Vercel link: https://open-next.vercel.app
## Configuration
### Environment variables
- AWS_SDK_DYNAMODB_MAX_ATTEMPTS: The maximum number of times requests that encounter retryable failures should be attempted for DynamoDB. Defaults to 3.
- AWS_SDK_S3_MAX_ATTEMPTS: The maximum number of times requests that encounter retryable failures should be attempted for S3. Defaults to 3.
- DYNAMO_BATCH_WRITE_COMMAND_CONCURRENCY: The number of concurrent batch write commands to DynamoDB. Defaults to 4 in an effort to leave plenty of DynamoDB write request capacity for the production load.## Contribute
To run `OpenNext` locally:
1. Clone this repository.
1. Build `open-next`:
```bash
cd open-next
pnpm build
```
1. Run `open-next` in watch mode:
```bash
pnpm dev
```
1. Now, you can make changes in `open-next` and build your Next.js app to test the changes.
```bash
cd path/to/my/nextjs/app
path/to/open-next/packages/open-next/dist/index.js build
```## Acknowledgements
We are grateful for the projects that inspired OpenNext and the amazing tools and libraries developed by the community:
- [nextjs-lambda](https://github.com/sladg/nextjs-lambda) by [Jan](https://github.com/sladg) for serving as inspiration for packaging Next.js's standalone output to Lambda.
- [CDK NextJS](https://github.com/jetbridge/cdk-nextjs/) by [JetBridge](https://github.com/jetbridge) for its contribution to the deployment architecture of a Next.js application on AWS.
- [serverless-http](https://github.com/dougmoscrop/serverless-http) by [Doug Moscrop](https://github.com/dougmoscrop) for developing an excellent library for transforming AWS Lambda events and responses.
- [serverless-nextjs](https://github.com/serverless-nextjs/serverless-next.js) by [Serverless Framework](https://github.com/serverless) for paving the way for serverless Next.js applications on AWS.Special shoutout to [@khuezy](https://github.com/khuezy) and [@conico974](https://github.com/conico974) for their outstanding contributions to the project.
---
Maintained by [SST](https://sst.dev). Join our community: [Discord](https://sst.dev/discord) | [YouTube](https://www.youtube.com/c/sst-dev) | [Twitter](https://twitter.com/SST_dev)