TerraNext
Develop with Next.js. Package with OpenNext. Deploy with Terraform. Host on AWS.
Is TerraNext right for you?
Answer a few questions and find out.
Do you want to host on AWS?
For your consideration
It's always good to be honest.
Vercel
- ✓Best support for Next.js
- ✓Fastest to setup
- ✓Free tier for hobby projects
- ✕Expensive once you scale
- ✕No infrastructure control
- ✕Not free for GitHub organizations
Amplify
- ✓Hosted on AWS
- ✓Managed service, minimal ops work
- ✓Pay-as-you-go AWS pricing
- ✕Next.js feature support can lag behind
- ✕Limited infrastructure customization
- ✕Poor developer experience
- ✕Offering is confusing and bloated
OpenNext with SST
- ✓Highly cost-effective
- ✓First-class OpenNext support
- ✓Easy to learn and use
- ✕Difficult to customize infrastructure beyond SST's batteries-included setup
- ✕Needs somewhere to run
- ✕You are responsible for maintenance
TerraNext
- ✓Full control over every resource
- ✓Highly cost-effective
- ✓Manage your infrastructure with code
- ✓Great if you have other infrastructure
- ✕More complex
- ✕Requires a Terraform state
- ✕Needs somewhere to run
- ✕You are responsible for maintenance
Quick start
1
Build your Next.js app with OpenNext
sh
npx @opennextjs/aws@latest build2
Add TerraNext to your Terraform
hcl
module "terranext" {
source = "path/to/terranext"
name = "My Website"
slug = "my-website"
aws_region = "us-east-1"
opennext_build_path = ".open-next"
deployment_domain = "example.com"
acm_arn = aws_acm_certificate.cert.arn
hosted_zone_id = data.aws_route53_zone.main.zone_id
}