Why does OpenTofu exist? This episode tells the story of HashiCorp's license change for Terraform from MPL v2 to the Business Source License in August 2023, the birth of the OpenTF manifesto, Linux Foundation support, and the commitment to stay 100 percent open source and compatible with Terraform 1.5.x.

In the previous episode 0, we set up a complete environment: Linux CLI basics, cloud concepts, an understanding of HCL, installing tofu, and credential setup. You now have the tools to get started. But before diving into tofu init and tofu apply, there's one question that must be answered: why does OpenTofu exist?
This isn't just a piece of historical trivia. It shapes how you view the IaC ecosystem going forward: who controls the tool, what its license guarantees are, and whether it's safe to use as the foundation of infrastructure. OpenTofu was born from a controversial event in the cloud industry in 2023 — understanding the context helps you appreciate its design decisions in the episodes ahead.
To understand OpenTofu, we rewind to August 2023. Since 2014, Terraform had been released under the MPL v2 (Mozilla Public License) — a pure open-source license that allows anyone to view, modify, and distribute the code. On that foundation a giant ecosystem grew: providers, modules, tooling, and even SaaS products like Spacelift and env0 that sold Terraform-based automation.
Then on August 10, 2023, HashiCorp announced that all of its products — including Terraform — were moving to the Business Source License (BSL/BUSL). BSL is not an open-source license. The code can still be read, but its use is restricted: broadly speaking, third parties may not use Terraform's code to sell competing products or managed services that directly rival HashiCorp.
Warning
Don't get this wrong: BSL doesn't mean the code is hidden or that ordinary users are forced to pay. What changed is the right to build a business on top of the code. That's exactly where it stings — many companies built SaaS on the Terraform ecosystem, and they were the ones hit hardest.
The impact went beyond licensing. A community that had spent nearly a decade building an ecosystem on the assumption that Terraform would always be open source felt this decision broke trust. The biggest concern: vendor lock-in — a single company controlling the direction and license of the tool underpinning thousands of companies' infrastructure.
The community reaction was fast. Less than a day after the announcement, a manifesto called OpenTF was published and signed by dozens of companies and thousands of individuals. Its message was one sentence: if Terraform is no longer open source, we will make our own open source version — via a fork of the last MPL-licensed Terraform code.
Heavy hitters of the industry immediately joined as founding sponsors: Gruntwork, Spacelift, env0, Harness, and Scalr. These names are no coincidence — they're all vendors that built services on top of Terraform and were most affected by the license change.
A few weeks later, the project was donated to the Linux Foundation, a neutral organization that also hosts Linux and Kubernetes. Due to trademark reasons, the name OpenTF was changed to OpenTofu. Under the Linux Foundation, the project gained a neutral governance structure, funding, and a guarantee that the code isn't controlled by any single vendor.
Here's a summary of the key timeline:
| Date | Event |
|---|---|
| August 10, 2023 | HashiCorp announces Terraform's move to the BSL license |
| August 2023 | The OpenTF manifesto is released, signed by dozens of companies |
| September 2023 | The OpenTF project is donated to the Linux Foundation |
| January 2024 | First OpenTofu 1.6.0 release, compatible with Terraform 1.5.x |
OpenTofu stands on four commitments made since day one:
| Commitment | Practical Meaning |
|---|---|
| 100% open source (MPL v2) | Open code, free to use, modify, and distribute forever |
| Community governance | Decisions are made by maintainers and public contributors, not a single company |
| No vendor lock-in | No single entity can revoke access or change the rules of the game |
| 1:1 backward compatibility | Terraform 1.5.x configurations, providers, and workflows keep working as-is |
The last commitment matters most to you. tofu init reads the same .terraform.lock.hcl, the same hashicorp/aws provider still works, and almost every command has an identical counterpart. That's what makes the migration in episode 2 feel like switching cars with the exact same keys and steering wheel.
OpenTofu's first release landed in January 2024, and the project keeps growing. By 2026 it sits in the 1.8/1.9 range, with exclusive features Terraform doesn't have — such as native client-side state encryption and dynamic provider iteration — which we'll cover in the upcoming episodes.
One of the most concrete proofs is when tofu init meets an existing Terraform project. OpenTofu reads required_providers, fetches the same provider versions from the registry, and still uses the same .terraform.lock.hcl file. The result: the plan it produces is identical to what terraform 1.5.x would produce.
terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}The block above is read in exactly the same way by terraform and tofu — that's the guarantee that the migration in episode 2 doesn't require a single line of HCL to change.
tofu version
OpenTofu v1.9.2
on linux_amd64For context, here's a quick comparison between the two:
| Aspect | Terraform | OpenTofu |
|---|---|---|
| Maintainer | HashiCorp (company) | Community + Linux Foundation |
| License | Business Source License | Mozilla Public License v2 |
| Binary | terraform | tofu |
| Registry | registry.terraform.io | registry.opentofu.org |
| Compatibility | its own releases | 1:1 with Terraform 1.5.x |
| State encryption | not available | native client-side (built-in) |
Summary of episode 1:
By understanding this history, you now understand why OpenTofu exists and what it promises. In the next episode, episode 2, we'll prove that promise: running the core workflow — tofu init, tofu plan, tofu apply, tofu destroy — plus a smooth migration path from Terraform. See you there!