Trending
#DevOps & Self-hosting

hashicorp/terraform

Declarative infrastructure-as-code for teams that need to provision and version multi-cloud resources predictably.

50,101
10,599
Go
NOASSERTION
12 years old

The problem

Infrastructure gets created by clicking through cloud consoles and by ad-hoc scripts, so nobody can reproduce an environment, review a change before it happens, or understand what depends on what. Terraform answers this by letting you describe the desired end state of your resources in configuration files that live alongside application code. You then get a plan of what will change before anything is touched, and an apply step that walks the resource graph to make it so.

What's different

Compared with imperative shell scripts or provider-specific SDK wrappers, the model here is declarative state reconciliation: you write intent, the tool diffs against recorded state and computes the actions. Compared with cloud-native options such as AWS CloudFormation, the same workflow and language span many providers, which matters when a stack crosses clouds or includes SaaS services. It also compares with other multi-provider tools in this space in that it is a single binary with a plugin architecture — providers ship independently through the registry rather than being built into core. That split is the real architectural trade-off: core stays small, but every resource type depends on a third-party plugin whose quality and release cadence you do not control.

Who it's for

Platform and infrastructure engineers who own more than one environment, need reviewable infrastructure changes in normal pull-request flow, and are willing to own a state file. It fits teams that already have some ops discipline and want the same lifecycle for cloud resources that they have for code. It is a poor fit for one-off local experimentation, for people who only ever use a single cloud and are happy with its native tooling, or for teams that cannot accept a state file as a critical piece of operational data. If you need a cluster-level orchestrator rather than resource provisioning, look elsewhere.

Cost of adoption

Terraform core ships as a Go binary, and the README describes only core: the CLI and graph engine. Providers are separate plugins downloaded from the Terraform Registry, so network access and trust in third-party providers are part of the deal. You need somewhere to store state — local files work, but any team usage immediately pushes you toward a remote backend and locking, which is extra infrastructure and extra failure modes. The README is essentially a documentation index and says nothing about performance, upgrade guarantees or migration between versions; those have to be learned from release notes and the wider ecosystem. The license is the Business Source License 1.1, which is not an OSI-approved open-source license, so organisations with strict license policy should check this before standardising on it. Maturity and maintenance signals are strong, but that is a separate question from licensing.

Verdict

This is not a project riding a spike: it dates from 2014 and shows decades of accumulated ecosystem weight. The HotRepo board shows +608 stars this month at rank #23 in Go, a steady drumbeat rather than an explosion, and the strongest community moment on record is still the 1.0 release thread from 2021. Treat it as established, widely deployed infrastructure — which means the real decision is not whether it works but whether its license, state-management model and plugin supply chain fit your organisation.

Hacker News

Terraform 1.0
▲ 691 · 308 comments · June 8, 2021
Terraform is currently not reviewing community pull requests
▲ 249 · 117 comments · September 5, 2021
Terraform changes its license to Business Source License
▲ 8 · 1 comment · August 11, 2023

Written by AI from the project's README, updated October 24, 2026. The project's own docs are the source of truth.