IaC · Updated 2026-05-24

Terraform vs OpenTofu

For most users in May 2026, OpenTofu is the safer pick: same syntax, MPL license, growing feature differentiation, no risk of future license tightening. Stay on Terraform if you rely on Terraform Cloud / HCP Terraform features, or if your shop already pays for HashiCorp.

PLATE — THE FORKTERRAFORM · HASHICORP2014v0.1 MPL2021v1.0 MPLAug 2023BSL switchv1.10+BSL+ HCP Terraform Stacks+ ephemeral resourcesvendor roadmapvsOPENTOFU · LF FORKfork pointSep 2023v1.6 MPL2024state encryptv1.10+MPL+ state encryptionLinux FoundationBSL · MPL 2.0 (LF)
Terraform
HashiCorp's original. The IaC default for a decade.
Since
2014
By
HashiCorp / IBM
License
BSL 1.1 (since August 2023)
www.terraform.io ↗
OpenTofu
Linux Foundation fork. MPL 2.0, community-governed.
Since
2023
By
Linux Foundation
License
MPL 2.0
opentofu.org ↗

Both tools share a common ancestor — Terraform pre-August-2023 was MPL 2.0 and OpenTofu forked from that commit. Since then, OpenTofu has been governed by the Linux Foundation with its own roadmap (state encryption, provider iteration, dynamic provider config), while HashiCorp Terraform has added enterprise features behind BSL. The split is consequential. If you don't actively need Terraform Cloud, OpenTofu is now a strictly better choice.

Quick takes

If you're…

  • You use Terraform Cloud / HCP Terraform for state, runs, and policies Terraform OpenTofu has no equivalent SaaS yet (third-party options exist).
  • You want a license that won't change under you OpenTofu Linux Foundation governance + MPL 2.0; consensus-driven changes only.
  • You're starting a new project today OpenTofu Same syntax, same providers, MPL license. No reason to start on BSL.
  • Your CI uses `terraform init` and HashiCorp providers Either OpenTofu accepts existing Terraform code and providers transparently.
  • You need state encryption at the file level OpenTofu OpenTofu shipped this as a first-party feature; Terraform requires Terraform Cloud.
  • You depend on the new HCP Terraform Stacks workflow Terraform Stacks is HashiCorp-only.
  • You're a cloud vendor offering managed IaC OpenTofu BSL forbids competing with HashiCorp's commercial offerings. OpenTofu has no such restriction.
  • You want a vendor relationship and 24×7 enterprise support Terraform IBM / HashiCorp has the formal commercial channel; OpenTofu has community + paid third parties (Spacelift, Env0).
Decision wizard

A few questions, a verdict.

Q1

Are you on Terraform Cloud / HCP Terraform today?

Q2

Greenfield or existing codebase?

Q3

License sensitivity?

Q4

Vendor support requirements?

At a glance

The scorecard.

Dimension
Terraform
OpenTofu
Edge
License core
BSL 1.1; restrictions on competitors
MPL 2.0; no restrictions
OpenTofu
Governance ecosystem
Vendor (HashiCorp / IBM)
Linux Foundation, consensus-driven
OpenTofu
Native HCL + registry
Drop-in compatible; mirror + native
tie
Stacks, ephemeral resources
State encryption, dynamic provider cfg
depends
HCP Terraform (first-party SaaS)
No first-party; rich third-party market
Terraform
Massive installed base
Growing; major vendor support
Terraform
HashiCorp Enterprise, vendor support
Third-party platforms fill the gap
Terraform
HCL + new HashiCorp constructs
HCL + OpenTofu-only additions
tie
In depth

Dimension by dimension.

core

License

edge: OpenTofu
Terraform

Business Source License 1.1. Source-available, free to use except for "competing offerings". Converts to MPL 2.0 four years after each release.

OpenTofu

MPL 2.0 (the pre-August-2023 Terraform license). OSI-approved, free for any use including hosted offerings.

ecosystem

Governance

edge: OpenTofu
Terraform

HashiCorp / IBM. Roadmap set by the vendor. Community contributions accepted but on company terms.

OpenTofu

Linux Foundation. Steering committee from contributing companies (AWS, Oracle, Spacelift, Env0, etc.). Consensus-driven RFCs.

core

Compatibility

tie
Terraform

The original. All HashiCorp providers, modules, and registry items work natively.

OpenTofu

Drop-in compatible with Terraform 1.5 syntax. All Terraform providers work. OpenTofu Registry mirrors HashiCorp registry; native registry growing.

features

Recent feature divergence

depends
Terraform

HCP Terraform Stacks (released 2025), test framework improvements, ephemeral resources. Cloud-first roadmap.

OpenTofu

Built-in state encryption (v1.7), dynamic provider configuration, removed-block enhancements, planless apply for trivial drifts. CLI-first roadmap.

ops

SaaS / managed offering

edge: Terraform
Terraform

HCP Terraform (formerly Terraform Cloud). Free tier + paid tiers with runs, policy enforcement, private registry, drift detection.

OpenTofu

No first-party SaaS. Third parties (Spacelift, Env0, Scalr, Terrateam) offer managed runs + state + policy.

ecosystem

Community + adoption

edge: Terraform
Terraform

Massive installed base. Stack Overflow, vendor docs, IaC blogs all default to Terraform syntax.

OpenTofu

Growing fast. Cloud vendors (AWS, Oracle, Google) actively contribute. Linux Foundation stewardship has put it on most large orgs' evaluation lists.

ecosystem

Enterprise / commercial

edge: Terraform
Terraform

HashiCorp Enterprise: SSO, audit logs, RBAC, Terraform Sentinel policies, full vendor support.

OpenTofu

No HashiCorp Enterprise equivalent. Pair with Spacelift, Env0, or Scalr for the same outcomes.

core

Configuration language

tie
Terraform

HCL (HashiCorp Configuration Language). Same as it ever was. Some new constructs (provider blocks, ephemeral values).

OpenTofu

HCL, drop-in compatible. Some OpenTofu-only additions (provider iteration, planless apply, encryption blocks) live behind feature flags or new syntax.

When to pick neither

A different shape of problem.

  • Pulumi
    You want IaC in real programming languages (Python, TS, Go)
  • AWS CDK
    AWS-only; want TS / Python that compiles to CloudFormation
  • Crossplane
    You want IaC as Kubernetes CRDs, managed by GitOps
  • CloudFormation
    AWS-only; corporate mandates AWS-native tooling
  • Bicep
    Azure-only; want simpler syntax than ARM templates
  • Ansible
    Configuration management more than infrastructure provisioning
Situational picks

For specific cases.

Greenfield project starting today

OpenTofu

Same syntax, MPL license, no future surprises. Switch back is trivial if you ever need HCP Terraform.

Existing Terraform shop heavily invested in HCP Terraform

Terraform

Stay. The Cloud features don't exist outside HashiCorp; the switching cost outweighs the license concern for most.

Migrating away from HashiCorp post-BSL

OpenTofu

OpenTofu is the canonical migration target. Tooling like `tofu init` reads existing Terraform state without modification.

Cloud-vendor team building a managed IaC offering

OpenTofu

BSL prohibits this for Terraform. OpenTofu was forked specifically to keep this path open.

You want IaC in a real programming language

Pulumi or AWS CDK

HCL is config; if loops, conditionals, and proper testing matter, escape to a real language.

Sources

Primary material.

Found this useful?