JavaScript Configuration
Define infrastructure using familiar JavaScript instead of limited HCL. Leverage the full power of a programming language.
Auto Backend Generation
Comet generates backend.tf.json files automatically. No more manual backend configuration.
Cross-Stack References
Simple state() function to reference outputs from other stacks. Dependencies made easy.
Built-in Secrets
Native SOPS integration for encrypted secrets. Manage sensitive data securely out of the box.
Component Reusability
Define components once, reuse across environments with different configurations.
OpenTofu & Terraform
Works seamlessly with both OpenTofu and Terraform. Minimal abstraction, maximum compatibility.
Write infrastructure in JavaScript
Define your infrastructure using JavaScript's expressive syntax. Share configuration, use variables, and leverage the ecosystem you already know.
- ✅ Familiar syntax and tooling
- ✅ Powerful templating with Go templates
- ✅ DRY configuration across environments
- ✅ Type hints with JSDoc
// stacks/production.js const { settings } = require('./shared.js') stack('production', { settings }) backend('gcs', { bucket: 'terraform-state', prefix: 'comet/{{ .stack }}/{{ .component }}' }) const vpc = component('vpc', 'modules/vpc', { cidr_block: '10.0.0.0/16', region: '{{ .settings.region }}' }) const gke = component('gke', 'modules/gke', { network: vpc.id, cluster_name: 'prod-cluster' })
How does Comet compare?
Comet fills the gap between plain Terraform and heavy enterprise frameworks
Plain OpenTofu/Terraform
Best for: Simple setups
- ❌ Manual backend config
- ❌ Verbose multi-env setup
- ❌ Manual cross-stack refs
- ✅ No abstractions
Comet
Best for: Small-medium teams
- ✅ JavaScript config
- ✅ Auto backend generation
- ✅ Built-in SOPS secrets
- ✅ Minimal abstraction
Terragrunt / Atmos
Best for: Large enterprises
- ✅ Battle-tested
- ✅ Large community
- ⚠️ More complex
- ⚠️ Steeper learning curve
Ready to simplify your infrastructure?
Get started with Comet in minutes. Build from source or check out the documentation.