Terraform or OpenTofu?
A license change, a fork, an acquisition. Which one I'd pick today, and why.
A license change, a fork, an acquisition. Which one I'd pick today, and why.

For about a decade, the question "which tool should we use for infrastructure as code?" had a boring answer: Terraform. Then, in 2023, things got interesting. Today there are two tools that look almost identical, share most of their history, and come from very different places.
If you're starting a new project or thinking about switching, here's how I see it.
August 2023: HashiCorp changed Terraform's license from the open-source Mozilla Public License (MPL) to the Business Source License (BSL). In short: you can still use Terraform freely, but you can't build a competing commercial product on it. Many companies and community members felt this broke the promise of an open tool that thousands had contributed to.
September 2023: A group of companies forked the last open-source version. The fork became OpenTofu and joined the Linux Foundation, later becoming a CNCF project.
2024–2025: IBM announced it would acquire HashiCorp, and completed the acquisition in early 2025. Terraform is now an IBM product.
Since then, both tools have released new versions, and they've started to grow apart.
The core is still very similar. Both use HCL, the same provider ecosystem, the same state format (mostly), and the same init, plan, apply workflow. Your existing code generally works in both.
But each has features the other doesn't, or implements differently.
OpenTofu highlights:
- State encryption built in. Your state file, which often contains secrets, can be encrypted client-side with keys from a KMS.
- Early variable evaluation: variables and locals can be used in places like module sources and backend configuration.
- for_each on providers, making multi-region and multi-account setups much cleaner.
- A community-driven roadmap, where many long-requested features from the Terraform issue tracker landed.
Terraform highlights: - Terraform Stacks for managing many related configurations and deployments together, tied to HCP Terraform. - Ephemeral resources and values, keeping secrets out of state and plan files. - Deep integration with HCP Terraform (the managed service) and the wider HashiCorp and IBM tooling. - Commercial support from a large vendor, which matters to some enterprises.
The code you write is still almost the same. The question is really about license, governance and which features you need.
For most companies that simply use Terraform to manage their own infrastructure, the BSL changes nothing in practice. You can keep using it for free.
It matters if:
Moving from Terraform to OpenTofu is usually straightforward, especially from Terraform 1.5 or earlier:
tofu init in a test configuration.tofu plan. If it shows no changes, you're compatible.tofu binary.The further both tools diverge, the harder moving between them becomes. Using Terraform Stacks or OpenTofu's state encryption ties you to that tool.
Terraform is focused on enterprise workflows: HCP Terraform, Stacks, integrations with IBM's portfolio, and policy and governance features.
OpenTofu is focused on community-requested features, openness, and being a neutral foundation for the ecosystem. Several infrastructure automation platforms (like Spacelift, env0, Scalr and Harness) support it actively.
Both look healthy. Neither is going away soon.
My take: the HCL you write matters more than the binary that runs it. Keep your code clean and portable, and the choice stays yours.
— Desly