Independent Research ยท Unvarnished Reviews
Unvarnished Reviews Research
Infrastructure as code stopped being a two-way choice (write Terraform, or don't) the moment HashiCorp changed its license. In August 2023, HashiCorp moved Terraform from the Mozilla Public License 2.0, an open-source license, to the Business Source License 1.1, which restricts building competing commercial products on top of the Terraform codebase. Teams running Terraform purely for their internal infrastructure were not affected by the license text itself, but the move was read industry-wide as a signal that HashiCorp's commercial interests and the community's open-source expectations had diverged, and that divergence has kept producing news ever since.
The fork came fast: OpenTofu, built from the last MPL-licensed Terraform release, is now governed by the Linux Foundation rather than a single vendor. It kept Terraform's HCL syntax, state file format, and provider ecosystem, which matters enormously for what follows in this report, because it means switching to OpenTofu is not a tooling decision at all. It is a governance decision wearing a tooling decision's clothes.
Then came the acquisition. IBM's purchase of HashiCorp, announced in April 2024, closed on February 27, 2025, for $6.4 billion, confirmed in IBM's SEC filings at $35 per share and roughly $7.2 billion in total equity value. Terraform is now sold and supported as part of IBM's Software portfolio; the review listing reflects this, titled "IBM Terraform (formerly HashiCorp Terraform)." Neither IBM nor HashiCorp has signaled any intent to reverse the BSL license since the deal closed, and the most recent consequence landed in 2026: HCP Terraform's legacy free tier, the one many smaller teams and side projects had built on, ended March 31, 2026, with remaining free users moved to a new tier capped at 500 managed resources.
Pulumi sits outside this entire story. It was never a Terraform fork and never ran on HashiCorp's license; it's a separately built platform, Apache 2.0 licensed from the start, that lets teams write infrastructure in general-purpose programming languages (Python, TypeScript, Go, and others) instead of HCL. Its relevance to this comparison isn't the license drama, it's that "I don't want to be on HashiCorp's license terms" used to be a real reason teams evaluated Pulumi, and in 2026 that specific reason points most buyers toward OpenTofu instead, since OpenTofu solves the license objection without requiring a language and architecture change.
Terraform's provider ecosystem and operational maturity remain the deepest in this comparison. Most comparisons describe Terraform's ecosystem as the largest and most mature of the three, backed by twelve years of production use, the broadest base of existing documentation and community answers, and the largest hiring pool of engineers who already know the tool.
Users rate Terraform (now listed as "IBM Terraform, formerly HashiCorp Terraform") 4.6-4.7/5 across roughly 96-116 reviews depending on the listing. Reviewers consistently praise the declarative model's safety for multi-cloud changes and describe the tool as effortless for consistent infrastructure management across providers.
The BSL license is the thing this entire comparison exists because of, and it remains the primary, ongoing reason teams evaluate alternatives. For a team running Terraform purely internally, the license's practical restrictions are narrow, they target companies building competing commercial products, not ordinary users, but the license has already changed once, and nothing in writing from IBM or HashiCorp guarantees it won't again.
HCP Terraform's free tier ended entirely on March 31, 2026, and remaining users were moved to a tier capped at 500 managed resources, not grandfathered at the old terms. Teams that built workflows assuming the legacy free tier would persist are now evaluating paid plans or alternatives on a timeline they didn't choose. The new pricing model bills on Resources Under Management (RUM), charged on the peak number of managed resources in a given hour, with partial hours counted as full hours, at the Standard rate of about $0.47 per resource per month, a team managing 3,000 resources pays roughly $1,410 a month.
Writing infrastructure in a real programming language instead of a configuration DSL is Pulumi's core differentiator, and it collapses the learning curve for teams whose engineers already know Python, TypeScript, or Go. Native unit testing, familiar tooling, and the ability to use loops, conditionals, and abstractions the way application code already does are capabilities neither Terraform nor OpenTofu offer without reaching for external tools like Terratest.
Users rate Pulumi 4.8-4.9/5, the highest numeric rating of the three platforms, though from a materially smaller review base (25-28 reviews against Terraform's 96-116). Reviewers highlight Pulumi's dashboards and visualizations (8.8 on sub-ratings against Terraform's 7.7) and a product-direction confidence score of 10.0 against Terraform's 9.4, suggesting a small but enthusiastic reviewer base.
Migrating an existing Terraform codebase to Pulumi is a real rewrite, not a configuration change, and independent sources agree on the scale: roughly 2-4 weeks per module, not days. Pulumi cannot read existing Terraform state files, so each environment needs its stack built from scratch, and while a pulumi convert tool exists to translate HCL into Pulumi code, most teams end up rewriting a meaningful share of their infrastructure code rather than treating it as a simple find-and-replace.
The provider ecosystem is smaller and leans on a Terraform bridge for specialized tools, a documented workaround rather than a native capability. Pulumi's native providers cover the major clouds (AWS, Azure, GCP, Kubernetes) well, but specialized integrations (Datadog, PagerDuty, Cloudflare, and similar) commonly route through Pulumi's Terraform-provider bridge, which works but adds a layer neither Terraform nor OpenTofu users deal with.
The learning curve is steeper than marketing suggests for teams without existing programming fluency, since it requires learning the cloud provider's resource model and Pulumi's asynchronous execution model at the same time. Reviewers flag documentation gaps for newer users and describe the learning curve around Pulumi's promise-based implementation as a real source of difficulty, not just an adjustment period.
Migration from Terraform is, by a wide and consistent margin across independent sources, the easiest of any path compared in this report: commonly cited at one to three days for a typical mid-size codebase, with no HCL rewrite required. OpenTofu is explicitly built to stay backward compatible with Terraform 1.5.x configurations, providers, and state files, so the practical migration is close to swapping the binary and re-initializing, not a rewrite.
The pricing floor is zero, with no licensing strings attached, governed by the Linux Foundation rather than a single commercial vendor with pricing leverage over its users. This is the direct, structural answer to the specific objection that drove the fork in the first place: A team whose only issue with Terraform was the BSL license, not the tool itself, resolves that objection completely by moving to OpenTofu, without touching their existing HCL, state format, or provider ecosystem.
There is no meaningful presence on the major review platforms or comparable independent review base for OpenTofu. As a community project with Linux Foundation governance rather than a single vendor, OpenTofu has no company positioned to own and promote a review-platform listing the way HashiCorp (now IBM) or Pulumi Corporation can. Buyers evaluating OpenTofu's practical track record are working from a smaller, less centralized body of evidence than for either competitor.
There is no official managed SaaS platform from the Linux Foundation itself, so teams that want a hosted equivalent to HCP Terraform or Pulumi Cloud have to adopt a third-party platform (env0, Spacelift, and similar) rather than a first-party one. This is not a defect in OpenTofu's engine, but it is a real operational difference: Enterprise support contracts route through third-party partners rather than a single accountable vendor, and a buyer used to HashiCorp's or IBM's direct enterprise support model should budget time to evaluate those third parties.
The community and documentation base remains smaller than Terraform's, a natural consequence of the fork's relative youth (OpenTofu launched in 2023 against Terraform's twelve-year history). Most Stack Overflow answers, tutorials, and third-party courses are still written for Terraform not OpenTofu, and while the two tools share syntax closely enough that this gap matters less than it would for a meaningfully different tool, it is not zero.
| Platform | G2 Rating | G2 Reviews | Trustpilot | Note |
|---|---|---|---|---|
| Terraform (IBM) | 4.6-4.7 / 5 | ~96-116 | No meaningful Trustpilot presence identified | G2 listing now titled "IBM Terraform (formerly HashiCorp Terraform)" |
| Pulumi | 4.8-4.9 / 5 | ~25-28 | No meaningful Trustpilot presence identified | Highest numeric rating of the three, from the smallest review base |
| OpenTofu | No meaningful G2 presence identified | — | No meaningful Trustpilot presence identified | Community-governed, no single vendor positioned to own a review-platform listing |
Treat Pulumi's rating with its small sample size in mind: 25-28 reviews carries real statistical uncertainty next to Terraform's roughly 100-review base. OpenTofu's gap is not a quality signal either way, but a structural consequence of Linux Foundation governance rather than single-vendor ownership.
| Platform | Free Tier | Mid Tier | Top Tier | Pricing Model |
|---|---|---|---|---|
| Terraform (HCP) | 500 managed resources (legacy free tier ended March 31, 2026) | Essentials about $0.10 per resource per month; Standard about $0.47 per resource per month | Premium about $0.99 per resource per month; Terraform Enterprise (self-managed, IBM) by quote | Resources Under Management (RUM), billed on the peak count each hour, partial hours counted as full; moving up a tier raises the rate on every resource |
| Pulumi | Free: 1 user, 500 workflow minutes | Essentials $40 per month (40 credits, up to 500 managed resources); Pro $400 per month (400 credits, up to 2,000 managed resources) | Enterprise $2,000 per month (2,000 credits, up to 4,750 managed resources), contract pricing, self-hosting available | Credits at $1 each; managed resources from $0.1825 (Essentials) to $0.365 (Pro) to $0.5475 (Enterprise) per month |
| OpenTofu | $0, no limits (self-managed state) | $0; third-party platforms such as env0 or Spacelift charge separately for managed hosting | Third-party enterprise support only, pricing varies by partner | No first-party pricing; the engine is free under the Mozilla Public License 2.0 |
None of the three requires payment to use the core tool; each charges only for the managed layer (state hosting, remote runs, collaboration, policy enforcement). A team that self-manages state can run any of them at zero license cost, so the comparison that matters is what a team will pay to avoid operating that layer. Pulumi's support plans are separate, starting at $625 a month for Standard support. Terraform resource counts often run 30%-50% above teams' expectations because items such as security group rules and IAM policies count as resources. All prices are list.
| Line Item | Terraform (HCP Standard) | Pulumi (Enterprise) | OpenTofu (self-managed) |
|---|---|---|---|
| Platform or managed-service cost at list | 3,000 × $0.47 × 12 = $16,920 (Premium: 3,000 × $0.99 × 12 = $35,640) | $2,000 × 12 = $24,000 (3,000 resources exceeds the Pro plan's 2,000-resource cap) | $0, or a third-party platform fee that varies by provider |
| Migration from existing Terraform (one-time) | Not applicable | Significant: 2-4 weeks per module, an engineering rewrite | Minimal: 1-3 days, close to a binary swap |
| Ongoing license risk | Business Source License; terms can change again, with no contractual guarantee | Apache 2.0; no license-change risk | Mozilla Public License 2.0 under Linux Foundation governance; no single-vendor relicensing risk |
| Year 1 total (platform cost only) | $16,920-$35,640 | $24,000 plus migration labor | $0 to a few thousand dollars if a third-party platform is used |
This table separates platform cost from migration cost, because for a team already running Terraform, migration is usually the larger number in Year 1. At 3,000 resources, Pulumi's list price runs about 1.4x HCP Standard's, so its platform cost is not lower at this scale. OpenTofu's 1-3 day migration and free engine make it the lowest-cost, lowest-friction move for a team whose only objection is the license. Pulumi's 2-4 weeks of engineering time per module is a substantial expense that appears on neither vendor's pricing page.
| Dimension | Terraform | Pulumi | OpenTofu |
|---|---|---|---|
| Migration from existing Terraform | N/A (no migration needed) | High: 2-4 weeks per module, a real rewrite, documented consistently across sources | Lowest of the three: 1-3 days, described as close to a binary swap with no HCL rewrite required |
| Learning curve for new users | Low to moderate; HCL is purpose-built and considered simple to learn for infrastructure-focused teams without a software-engineering background | Low for teams already fluent in a supported language (Python, TypeScript, Go); steep for teams without that fluency, since the provider resource model and Pulumi's execution model must be learned together | Identical to Terraform's, since the syntax and model are unchanged; the only new concept is the governance and licensing difference, not the tool itself |
| Admin dependency | Moderate; policy-as-code (Sentinel) and HCP's managed layer require ongoing administration, now complicated by the resource-cap change on the free tier | Moderate to high; state-drift reconciliation and the broader surface area a general-purpose language allows both require more deliberate ongoing governance than a constrained DSL | Moderate; functionally identical to Terraform's admin burden, with the added step of selecting and managing a third-party platform if managed hosting is desired |
The pattern is that OpenTofu is not a third, independent complexity profile; it is Terraform's complexity profile, inherited wholesale, with the license risk removed and a short migration tax added for existing Terraform users. Pulumi is the architectural outlier of the three, trading a steeper migration and a different kind of ongoing governance burden for a programming model some engineering teams will find faster to work in once the initial investment is made.
Every finding below is independently documented and material enough to influence a purchasing decision. These are not edge cases or one-off complaints.
Terraform
|
Pulumi
|
OpenTofu
|
Design decides how infrastructure is written. Terraform and OpenTofu are functionally the same tool in HCL with different governance and license attached, so choosing between them is a risk and licensing decision, not a technical one. Pulumi is the technical alternative: A general-purpose language model with its own migration cost and ongoing governance.
Audience decides which one fits. Terraform suits teams that value the ecosystem and hiring pool and accept the license. OpenTofu suits teams whose only objection is the license. Pulumi suits engineering teams already fluent in Python, TypeScript, or Go.
Price follows the managed layer, and migration dominates Year 1. At 3,000 resources, HCP Standard lists at about $16,920 a year, Pulumi Enterprise at about $24,000, and OpenTofu at $0 plus any third-party platform. A migration from Terraform costs 1-3 days to OpenTofu and 2-4 weeks per module to Pulumi. The March 2026 free-tier change and the BSL are the risks to weigh: Terraform's license has changed once, and nothing in writing guarantees it will not change again.
The bottom line: