Every twelve months, somebody publishes a blog post called 'Why we're moving off Terraform.' Every twelve months, we read it carefully, nod at the legitimate complaints, and stay where we are. Here's why.
The real competition
Pulumi and CDKTF are both serious tools. They solve real problems — TypeScript ergonomics, real loops, real abstractions, a faster path from idea to plan. If you have a strong opinion about your language and a small estate, they are excellent.
The catch is that infrastructure code outlives its authors more reliably than application code does. The Terraform you write today gets read by the engineer who joins in 2029 to fix a thing that broke at 2 a.m. That engineer is statistically not a TypeScript native; they're a generalist, and they need to grok what's there in five minutes.
What HCL gets right
HCL has roughly four constructs: resources, data sources, variables, and outputs. Modules compose them. That's it. There are no closures, no inheritance, no clever metaprogramming. The constraint sounds annoying. It is, mostly, the point.
Infrastructure code outlives its authors more reliably than application code does.
When the spec for a piece of infrastructure can only be expressed in four constructs, the design conversation happens in plain English instead of in code review. That makes the resulting modules easier to read, easier to test, and dramatically easier to onboard somebody onto.
Where it breaks
Three places, in our experience:
- Anywhere you genuinely need runtime data flow between resources that the dependency graph can't express. Rare, but real.
- Module versioning at scale. Once you have 40+ modules and 20+ consumers, semver discipline matters more than the language.
- Drift. Always drift. Not Terraform's fault, but Terraform doesn't help you find it either — that's a tooling layer on top.
The pragmatic answer
If you're starting from scratch in 2026 and have a strong TypeScript team, Pulumi is a reasonable bet. For everyone else — and especially for anyone inheriting an existing estate — Terraform is the tool that will still be readable by the person who joins in three years. That's the bar that matters.