TerraNext

Develop with Next.js. Package with OpenNext. Deploy with Terraform or OpenTofu. 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 build
2

Add TerraNext to your Terraform/OpenTofu

hcl
module "terranext" {
  source = "TerraNext-Dev/opennext/aws"

  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
}

New to Terraform? Start with the official Terraform AWS tutorial.

Ready to deploy?

TerraNext is open source and free to use under the MIT License.