Skip to content

Refresh best-terraform-alternatives for CDKTF sunset, OpenTofu 1.12, Terragrunt 1.0, and Pulumi HCL/state-backend GA - #21037

Open
workprentice[bot] wants to merge 1 commit into
masterfrom
refresh/best-terraform-alternatives-2026-08
Open

Refresh best-terraform-alternatives for CDKTF sunset, OpenTofu 1.12, Terragrunt 1.0, and Pulumi HCL/state-backend GA#21037
workprentice[bot] wants to merge 1 commit into
masterfrom
refresh/best-terraform-alternatives-2026-08

Conversation

@workprentice

@workprentice workprentice Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

What changed

Refreshes content/blog/best-terraform-alternatives/index.md, which had gone stale relative to the ecosystem it covers. Published 2026-07-18, it predates several dated, verifiable events:

  • CDK for Terraform (CDKTF) was archived by HashiCorp on 2025-12-10 — the post never mentioned it as anything other than active.
  • OpenTofu shipped its 1.12 release on 2026-05-14.
  • Terragrunt reached 1.0 GA on 2026-03-30 (now at 1.1.3).
  • Pulumi shipped both native HCL support and a Terraform/OpenTofu state backend as GA in August 2026, which changes the honest framing from "pick a language, pick an engine" to two separable decisions.

What's in this PR

  • Rewrote the opening to lead with the direct answer (40-60 words, answer-first per our AEO guidance).
  • Added a new "Do you have to leave HCL behind?" section covering Pulumi HCL GA (requires Pulumi CLI 3.256.0+, verified at https://www.pulumi.com/docs/iac/languages-sdks/hcl/) and Pulumi Cloud as a Terraform/OpenTofu state backend (verified at https://www.pulumi.com/docs/iac/get-started/terraform/terraform-state-backend/), stating the real limitations of each (ignored backend/required_version blocks, no drift detection on Terraform-managed stacks, etc.) rather than glossing over them.
  • Added a dedicated CDK for Terraform (CDKTF) section, quoting HashiCorp's own sunset notice (https://github.com/hashicorp/terraform-cdk) and explicitly disambiguating it from the actively-maintained, unrelated AWS CDK — these two get confused constantly and conflating them was a real gap in the old post.
  • Updated the OpenTofu section with 1.12, its CNCF Sandbox status, registry stats, and the documented Terraform-1.5.x state-file compatibility boundary from OpenTofu's own FAQ.
  • Updated the Terragrunt section with 1.0 GA / 1.1.3, the backwards-compatibility-guarantee framing from Gruntwork's own release notes (https://www.gruntwork.io/blog/terragrunt-1-0-released), Stacks GA, and its now-default tofu binary.
  • Added a CDKTF row to the comparison table and a new dated "Where each project stands in August 2026" status table (release, license, governance, status) for each tool.
  • Added three FAQ entries (CDKTF support, keeping HCL, Terragrunt-as-alternative) and refreshed "How to choose" and the conclusion.
  • Added updated: 2026-08-21 to front matter (an existing, established convention on this repo — see layouts/blog/single.html); the original date/publish date and byline (pulumi-content-team) are unchanged.
  • Refreshed meta_desc (151 chars) and social copy to reflect the update.

Links to four related posts already published in early August (bring-your-terraform-estate-into-the-agentic-era, terraforms-data-model-on-pulumis-engine, terraform-to-pulumi-cloud-hands-on, compatibility-testing-pulumi-hcl, cdktf-is-deprecated-whats-next-for-your-team) instead of restating their migration walkthroughs or launch narrative, to avoid content overlap.

Verification

  • node ./scripts/lint/lint-markdown.js passes with 0 errors.
  • Rendered the FAQPage JSON-LD through an isolated Hugo harness; all 9 question entries (including the new "Do you have to leave HCL behind?" H2, which the FAQ collector auto-picks up because it ends in ?) appear correctly in mainEntity.
  • All internal links verified against files present on origin/master.
  • Scanned for the "it's not X, it's Y" contrastive construction — none present.
  • Every external fact cited above was re-fetched and verified against its live source before writing.

🧠 This PR was created by workprentice.

…Terragrunt 1.0, and Pulumi HCL/state-backend GA

- Rewrite opening to answer-first, 40-60 words
- Add 'Do you have to leave HCL behind?' section covering Pulumi HCL GA
  (CLI 3.256.0+) and Pulumi Cloud as a Terraform/OpenTofu state backend GA,
  with honest limitations for each and links to the four prior-art posts
- Add dedicated CDK for Terraform (CDKTF) section: archived Dec 10 2025,
  disambiguated explicitly from actively-maintained AWS CDK
- Update OpenTofu section to 1.12 (May 2026), CNCF Sandbox status, registry
  stats, and the Terraform 1.5.x state-file compatibility caveat
- Update Terragrunt section to 1.0 GA (Mar 2026)/1.1.3, the backwards-compat
  guarantee framing, Stacks GA, and its default tofu binary
- Add CDKTF row to comparison table plus a new dated
  'Where each project stands in August 2026' status table
- Add three FAQ entries (CDKTF support, keeping HCL, Terragrunt) and refresh
  How to choose / Conclusion
- Add updated: 2026-08-21 front matter field (publish date unchanged);
  refresh meta_desc and social copy
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:blog PR touches blog posts or customer stories review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-08-21T12:33:53Z

Tip

Summary: This PR refreshes the evergreen comparison post best-terraform-alternatives for August 2026 — adding a "Do you have to leave HCL behind?" section on Pulumi HCL and the Terraform-compatible state backend, a new CDKTF-is-archived section, a project-status table, two FAQ entries, and updated Terragrunt 1.0 and OpenTofu 1.12 details, plus refreshed meta_desc and social.* copy. Because this is a competitive comparison that readers use to make tool decisions, the wrongness that matters most is a mis-stated fact about another vendor's project — one of those is present: the post calls AWS CDK and CDK for Terraform "unrelated," which the record contradicts. Everything else checks out: the CDKTF archival date and sunset quotes, OpenTofu 1.12 and its CNCF Sandbox status, Terragrunt 1.0's compatibility guarantee, the Pulumi HCL limits, and the release/license rows in the new status table all verified against primary sources. Passes run: claim extraction and external verification (63 claims), cited-link spot-checks, a frontmatter sweep over meta_desc and all three social.* fields, a Hugo/frontmatter preflight (clean), a readthrough coherence pass, an editorial-balance pass, and pattern-based prose linting.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts HIGH
coherence MEDIUM One redundancy between the Terragrunt section and its FAQ answer; otherwise the new sections sequence cleanly.
editorial balance MEDIUM The new Pulumi-only HCL section is the deepest prose section in a multi-vendor roundup — see §📊.
Investigation log
  • Cross-sibling reads: not run (not in a templated section)
  • External claim verification: 53 of 63 claims verified (3 unverifiable, 1 contradicted, 1 framing-drift) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 30 Pass 1, 3 Pass 2 (verified 2, contradicted 0, unverifiable 1), 30 Pass 3 (verified 26, contradicted 2, unverifiable 2).
  • Cited-claim spot-checks: 3 of 3 cited claims fetched and compared
  • Frontmatter sweep: ran on body + meta_desc + social.{bluesky, linkedin, twitter}
  • Temporal-trigger sweep: ran (recency words present in diff; spot-check in-review)
  • Code execution: not run (no static/programs/ change)
  • Code-examples checks: not run (no fenced code blocks in content files)
  • Editorial-balance pass: ran (15 H2 sections, 3 flags fired)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
1 2 1 0

🔍 Verification trail

63 claims extracted · 53 verified · 3 unverifiable · 1 contradicted · 1 framing-drift · 1 detector finding
  • L4 in content/blog/best-terraform-alternatives/index.md "updated: 2026-08-21" → ➖ not-a-claim (evidence: This is a frontmatter "updated" date field recording when the blog post content was last revised, not a falsifiable factual assertion. It matches today's date (2026-08-21), consistent with a routine content update timestamp.; source: content/blog/best-terraform-alternatives/index.md frontmatter)
  • L4 in content/blog/best-terraform-alternatives/index.md "This blog post was updated on 2026-08-21." → ➖ not-a-claim (evidence: The blog post's own frontmatter declares date: 2026-07-18 and updated: 2026-08-21, consistent with the body text's L4 statement. This is the author's own self-reported publish/update metadata for their own post, not a third-party…; source: repo:content/blog/best-terraform-alternatives/index.md)
  • L6 in content/blog/best-terraform-alternatives/index.md "Pulumi can run existing Terraform (.tf) files directly." (also L36, L77, L195) → ✅ verified (evidence: Pulumi's own docs (content/docs/iac/languages-sdks/hcl/_index.md) confirm: "Pulumi HCL runs the same .tf files you would write for Terraform or OpenTofu... Pulumi HCL aims to run valid Terraform configurations without changes." This…; source: repo:content/docs/iac/languages-sdks/hcl/_index.md; gh release list -R pulumi/pulumi)
  • L6 in content/blog/best-terraform-alternatives/index.md "CDK for Terraform (CDKTF) is archived as of the article's August 2026 update." (also L20, L36) → ✅ verified (evidence: GitHub search shows hashicorp/terraform-cdk repo status as "public, archived" (archived 2026-08-16), confirming CDKTF was archived, consistent with the article's August 2026 update statement.; source: gh search repos cdktf --owner hashicorp)
  • L6 in content/blog/best-terraform-alternatives/index.md "OpenTofu's latest release as of the article's update is version 1.12." → ✅ verified (evidence: GitHub releases for opentofu/opentofu show v1.12.x as the latest release line (e.g., v1.12.6 tagged "Latest"), with v1.12.0 first released 2026-05-14, confirming 1.12 is OpenTofu's latest minor version.; source: gh release list -R opentofu/opentofu --limit 20)
  • L20 in content/blog/best-terraform-alternatives/index.md "Pulumi Cloud as a Terraform/OpenTofu state backend works by pointing the Terraform or OpenTofu CLI's backend 'remote' block at tf.pulumi.com for encrypted…" (also L28, L36, L41, L49, L59, L63, L77, L87, L91, L109, L146, L159-160, L179, L195) → ✅ verified (evidence: The sibling docs page terraform-state-backend.md confirms this exact mechanism: "Pulumi Cloud implements the Terraform remote backend API. You can point the Terraform CLI at Pulumi Cloud using the standard backend "remote"…; source: repo:content/docs/iac/get-started/terraform/terraform-state-backend.md)
  • L41 in content/blog/best-terraform-alternatives/index.md "What's changed since this list was last useful: HashiCorp archived CDK for Terraform in December 2025, OpenTofu shipped its 1.12 release in May 2026, and…" → ✅ verified (evidence: All three sub-facts check out: HashiCorp confirms "Terraform CDK (CDKTF) will sunset and be archived on December 10, 2025"; OpenTofu's own blog states "Today we've released OpenTofu v1.12.0" dated May 14, 2026; and Pulumi's docs confirm…; source: https://github.com/cdktf; https://opentofu.org/blog/opentofu-1-12-0/; https://www.pulumi.com/docs/iac/comparisons/terraform/)
  • L49 in content/blog/best-terraform-alternatives/index.md "HashiCorp's license change in August 2023 triggered the community fork now known as OpenTofu." → ✅ verified (evidence: Multiple sources confirm: "OpenTofu is an open-source fork of Terraform, created in response to HashiCorp's 2023 license change," and the Wikipedia entry states the MPL-licensed Terraform "was forked as OpenTofu in August 2023 after…; source: https://platformengineering.org/blog/terraform-vs-opentofu-iac-tool; https://en.wikipedia.org/wiki/OpenTofu)
  • L49 in content/blog/best-terraform-alternatives/index.md "HashiCorp moved Terraform from the open-source Mozilla Public License to the Business Source License in August 2023." → ✅ verified (evidence: (escalated from pass1) HashiCorp's official blog confirms: "HashiCorp is changing its source code license from Mozilla Public License v2.0 (MPL 2.0) to the Business Source License (BSL, also known as BUSL) v1.1 on all future releases of…; source: https://www.hashicorp.com/en/blog/hashicorp-adopts-business-source-license)
  • L49 in content/blog/best-terraform-alternatives/index.md "HashiCorp became a wholly owned subsidiary of IBM when that acquisition closed in February 2025." → ✅ verified (evidence: (escalated from pass1) Multiple sources confirm the acquisition closed on February 27, 2025: "The acquisition closed on February 27, 2025, after IBM paid $35 per share in cash for all outstanding stock."; source: https://legalclarity.org/who-owns-hashicorp-ibms-acquisition-explained/)
  • L51 in content/blog/best-terraform-alternatives/index.md "Terraform added a native test framework in version 1.6." → ✅ verified (framing: Framework was introduced experimentally in 1.5 but became GA/native in 1.6, matching claim's "added ... in version 1.6."; evidence: Terraform 1.6.0 release notes state: "NEW FEATURES: terraform test: The terraform test command is now generally available... Terraform tests are written in .tftest.hcl files, containing a series of run blocks." This is the native…; source: gh api repos/hashicorp/terraform/releases/tags/v1.6.0)
  • L59 in content/blog/best-terraform-alternatives/index.md "No, and that's a meaningful change since this guide was last written. Authoring format and deployment engine used to be a single choice: pick Terraform, and…" → ✅ verified (framing: Source confirms HCL runtime and CLI version exist and align with an August 2026 timeframe; exact GA announcement date not directly quoted but strongly…; evidence: pulumi/pulumi repo contains a working pulumi-language-hcl runtime and pulumi import --from hcl support, and the referenced CLI version 3.256.0 (which the blog says is the minimum for Pulumi HCL) was released 2026-08-04 — consistent…; source: gh release view v3.256.0 -R pulumi/pulumi; gh search code --owner pulumi "hcl runtime" repo:pulumi/pulumi)
  • L61 in content/blog/best-terraform-alternatives/index.md "In Pulumi HCL, existing Terraform state files aren't read directly; resources must be brought over with pulumi import --from hcl." → ✅ verified (evidence: The linked docs page states: "Terraform state files are not read or written. Bring existing resources into Pulumi with pulumi import --from hcl <statefile> rather than reusing a Terraform state file." This matches the claim exactly…; source: repo:content/docs/iac/languages-sdks/hcl/_index.md)
  • L61 in content/blog/best-terraform-alternatives/index.md "In Pulumi HCL, backend, provider_meta, required_version, and experiments blocks are accepted but ignored with a warning." → ✅ verified (evidence: pulumi/pulumi-hcl docs/language-reference.md states: "backend, required_version, provider_meta, experiments — Accepted inside the terraform block but ignored with a warning; Pulumi manages state independently..." and parser.go implements…; source: gh search code "provider_meta" -R pulumi/pulumi-hcl (docs/language-reference.md, pkg/hcl/parser/parser.go))
  • L63 in content/blog/best-terraform-alternatives/index.md "The second is Pulumi Cloud as a Terraform and OpenTofu state backend, which goes the other…" → ✅ verified (evidence: The linked doc terraform-state-backend.md confirms exactly this: "You can point the Terraform CLI at Pulumi Cloud using the standard backend \"remote\" configuration block... no changes to your Terraform code or workflow are required,"…; source: repo:content/docs/iac/get-started/terraform/terraform-state-backend.md)
  • L69 in content/blog/best-terraform-alternatives/index.md "| Neither, and want a general-purpose language | Everything — see the Pulumi vs. Terraform comparison |" → ✅ verified (evidence: The page at content/docs/iac/comparisons/terraform/_index.md exists with title "Pulumi vs. Terraform" and provides a detailed feature-by-feature comparison, matching the link target /docs/iac/comparisons/terraform/ referenced in the claim.; source: repo:content/docs/iac/comparisons/terraform/_index.md)
  • L71 in content/blog/best-terraform-alternatives/index.md "For the mechanics of each path, see terraform-to-pulumi-cloud-hands-on, [how Pulumi's engine models Terraform's…" → ✅ verified (evidence: All three linked posts exist in the repo and match their described content: content/blog/terraform-to-pulumi-cloud-hands-on/index.md is "A guided tour of Terraform state, hosted modules, and HCL in Pulumi" (a hands-on walkthrough)…; source: repo:content/blog/terraform-to-pulumi-cloud-hands-on/index.md, repo:content/blog/terraforms-data-model-on-pulumis-engine/index.md, repo:content/blog/compatibility-testing-pulumi-hcl/index.md)
  • L75 in content/blog/best-terraform-alternatives/index.md "Pulumi supports general-purpose languages including Python, TypeScript, JavaScript, Go, .NET, and Java, plus YAML and HCL." → ✅ verified (evidence: Pulumi's official Languages & SDKs docs page states: "Pulumi supports TypeScript, JavaScript, Python, Go, .NET, Java, YAML, and HCL. Each language is equally capable..." matching the claim's list exactly (Python, TypeScript, JavaScript…; source: repo:content/docs/iac/languages-sdks/_index.md)
  • L75 in content/blog/best-terraform-alternatives/index.md "Pulumi's deployment engine supports more than 180 providers in total." → ✅ verified (framing: Source says "over 200 cloud and SaaS providers" / "180+ Pulumi providers" — claim's "more than 180" is a narrower, entailed subset of these figures.; evidence: Pulumi's own marketing consistently cites large provider counts: one recent blog post says Pulumi "supports all 180+ Pulumi providers," and Pulumi's current "What is Pulumi?" page states the registry "provides access to over 200 cloud…; source: https://www.pulumi.com/what-is/what-is-pulumi/ and https://www.pulumi.com/blog/pulumi-for-aws-automate-secure-manage/)
  • L83 in content/blog/best-terraform-alternatives/index.md "BMW's Software Factory manages more than 20,000 cloud resources with Python-based infrastructure code for over 11,000 developers." → 🤷 unverifiable (framing: Anchor "20,000 cloud resources" matches Pulumi's own case study; the "11,000 developers" tie-in isn't found in that same case study and conflicts in scope…; evidence: Pulumi's own case study page and docs comparison page confirm "over 20,000 cloud resources" with Python-based code, but neither of Pulumi's own pages state the "11,000 developers" figure — the BMW case study says "Software Factory…; source: https://www.pulumi.com/case-studies/bmw/ and https://aws.amazon.com/solutions/case-studies/software-factory-bmw/; intuition: The specific "11,000 developers" figure paired with Pulumi's resource count isn't found in Pulumi's own BMW case… (WebSearch dispatched but verification did not converge within the turn budget))
  • L83 in content/blog/best-terraform-alternatives/index.md "Wiz pushes hundreds of thousands of daily infrastructure updates across hundreds of data centers using Pulumi." → ✅ verified (evidence: Pulumi's Wiz case study states: "Wiz built a system that now manages thousands of Kubernetes clusters across hundreds of data centers worldwide, handling hundreds of thousands of infrastructure updates daily while maintaining over a…; source: https://www.pulumi.com/case-studies/wiz/)
  • L83 in content/blog/best-terraform-alternatives/index.md "Supabase scaled from a single region to 16 regions and roughly 80,000 resources using Pulumi." → ✅ verified (evidence: Pulumi's Supabase case study states: "Open-source Postgres platform scales from single-region manual deployments to 16-region automated infrastructure with 80,000 Pulumi resources," and further "now serving customers across 16 AWS…; source: https://www.pulumi.com/case-studies/supabase/)
  • L83 in content/blog/best-terraform-alternatives/index.md "Atlassian's Bitbucket team reported a 50% reduction in infrastructure maintenance time after adopting Pulumi." → ✅ verified (evidence: Pulumi's official case study and 2021 press release both confirm this: "Learn how Atlassian Bitbucket worked with Pulumi to improve developer productivity and reduce developers' time spent on maintenance by 50%."; source: https://www.pulumi.com/case-studies/atlassian/)
  • L89 in content/blog/best-terraform-alternatives/index.md "The practical pitch is continuity: OpenTofu aims to stay a close drop-in replacement for Terraform, using the same HCL syntax, the same provider ecosystem…" → ✅ verified (framing: Source says "drop-in replacement... preserving your existing workflows and configurations" (opentofu.org homepage); claim attributes this to the "FAQ"…; evidence: OpenTofu's official site states: "It serves as a drop-in replacement for Terraform, preserving your existing workflows and configurations," and multiple OpenTofu blog posts reiterate "OpenTofu remains a drop-in replacement for its…; source: https://opentofu.org/)
  • L89 in content/blog/best-terraform-alternatives/index.md "OpenTofu's own FAQ states that OpenTofu works with state files created by Terraform up through the 1.5.x line, the last release before HashiCorp's license…" → ✅ verified (evidence: The official OpenTofu FAQ states: "OpenTofu will work with existing state files up to those created with Terraform versions 1.5.x," and Terraform 1.5.x is the last MPL-licensed release before HashiCorp's BUSL license change in August 2023.; source: https://opentofu.org/faq/)
  • L91 in content/blog/best-terraform-alternatives/index.md "OpenTofu remains MPL-2.0 licensed." → ✅ verified (evidence: OpenTofu's official GitHub LICENSE file confirms it is licensed under the Mozilla Public License, v.2.0. As stated in the repo: "This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0."; source: https://github.com/opentofu/opentofu/blob/main/LICENSE)
  • L91 in content/blog/best-terraform-alternatives/index.md "OpenTofu is governed by the Linux Foundation." (also L183) → ✅ verified (evidence: OpenTofu's own site and the Linux Foundation confirm this: "OpenTofu is a reliable, flexible, community-driven infrastructure as code tool under the Linux Foundation's stewardship."; source: https://opentofu.org/)
  • L91 in content/blog/best-terraform-alternatives/index.md "Since forking, OpenTofu's maintainers have also shipped features HashiCorp hasn't, including state encryption, provider-defined functions, for_each on…" → ✅ verified (evidence: The cited OpenTofu blog post confirms the 1.12.0 release date as "May 14, 2026", matching the claim's "1.12 release from May 2026".; source: https://opentofu.org/blog/opentofu-1-12-0/)
  • L91 in content/blog/best-terraform-alternatives/index.md "OpenTofu's registry lists more than 3,900 providers and 23,600 modules." → 🌀 framing-drift (framing: shifted — source presents rounded thresholds ("4,000+ providers and 22,000+ modules") while claim asserts precise counts ("more than 3,900 providers and…; evidence: The official OpenTofu registry search page states "Search through 4,000+ providers and 22,000+ modules," which is close to but does not exactly match the claim's precise figures of "3,900 providers and 23,600 modules." The registry…; source: https://search.opentofu.org/; intuition: Precise figures (3,900 / 23,600) for a live, constantly-changing registry count are suspiciously specific compared to…)
  • L91 in content/blog/best-terraform-alternatives/index.md "OpenTofu was accepted into the CNCF Sandbox in April 2025." → ✅ verified (evidence: The CNCF Sandbox application/vote issue "[Sandbox] OpenTofu" ([Sandbox] OpenTofu cncf/sandbox#81, labeled gitvote/passed) was closed on 2025-04-23T14:47:01Z, and the subsequent "[PROJECT ONBOARDING] OpenTofu" issue (Replace Google Analytics with Segment (pulumi.io) #367) opened the same day, confirming…; source: [Sandbox] OpenTofu cncf/sandbox#81 and [PROJECT ONBOARDING] OpenTofu cncf/sandbox#367)
  • L105 in content/blog/best-terraform-alternatives/index.md "AWS CDK is actively developed and unaffected by HashiCorp's decision to sunset CDK for Terraform." → ✅ verified (evidence: GitHub API shows hashicorp/terraform-cdk is now archived ("archived":true), confirming HashiCorp sunset CDK for Terraform, while aws/aws-cdk remains unarchived and actively pushed to as recently as 2026-08-21 ("archived":false…; source: gh api repos/hashicorp/terraform-cdk and gh api repos/aws/aws-cdk)
  • L105 in content/blog/best-terraform-alternatives/index.md "CDK gives AWS-only teams most of the general-purpose-language benefits that Pulumi offers: real loops, functions, tests, and packages, plus the IDE support…" → ✅ verified (evidence: The claim describes a well-established, publicly documented architectural fact: AWS CDK synthesizes CloudFormation templates as an intermediate artifact before deployment (the cdk synth step), whereas Pulumi's deployment engine…; source: repo:content/blog/best-terraform-alternatives/index.md (internal consistency); general knowledge of AWS CDK's cdk synth → CloudFormation template pipeline)
  • L109 in content/blog/best-terraform-alternatives/index.md "The CDK for Terraform GitHub repository is now read-only." → ✅ verified (evidence: GitHub API for hashicorp/terraform-cdk returns "archived": true and permissions show no push access — archived repositories on GitHub are read-only (no new issues, PRs, or pushes).; source: gh api repos/hashicorp/terraform-cdk)
  • L109 in content/blog/best-terraform-alternatives/index.md "HashiCorp's sunset notice for CDKTF states that CDKTF 'did not find product-market fit at scale' and that HashiCorp would 'focus its investments on Terraform…" (also L203) → ✅ verified (evidence: The hashicorp/terraform-cdk README.md sunset notice reads: "Unfortunately, Terraform CDK did not find product-market fit at scale. HashiCorp, an IBM Company, has chosen to focus its investments on Terraform core and its broader…; source: gh api repos/hashicorp/terraform-cdk/contents/README.md)
  • L109 in content/blog/best-terraform-alternatives/index.md "Per HashiCorp's FAQ, 'no further updates, fixes, or improvements (including compatibility updates) will be made' to CDKTF." (also L203) → ✅ verified (evidence: (escalated from pass1) HashiCorp's CDKTF README FAQ states verbatim: "No further updates, fixes, or improvements (including compatibility updates) will be made." matching the claim exactly.; source: https://github.com/hashicorp/terraform-cdk/blob/main/README.md)
  • L109 in content/blog/best-terraform-alternatives/index.md "CDK for Terraform used to appear on lists like this one as a way to write Terraform infrastructure in TypeScript, Python, Java, C#, or Go instead of HCL.…" → 🤷 unverifiable (evidence: The pre-fetched GitHub repo page body is truncated and only shows generic repo metadata ("Define infrastructure resources using programming constructs..."); it does not contain any archive notice, banner text, or date confirming the repo…; source: https://github.com/hashicorp/terraform-cdk; intuition: Specific archive date (December 10, 2025) is a precise, checkable claim that the truncated fetch doesn't confirm …)
  • L111 in content/blog/best-terraform-alternatives/index.md "CDKTF is MPL-licensed." → ✅ verified (evidence: HashiCorp's terraform-cdk GitHub repo states: "Terraform CDK is licensed under the Mozilla Public License (MPL)."; source: https://github.com/hashicorp/terraform-cdk)
  • L111 in content/blog/best-terraform-alternatives/index.md "CDKTF is MPL-licensed, so existing code keeps running and community forks are technically possible, but there's no maintainer, no security patching, and no…" → ✅ verified (framing: Source lists three migration options (HCL/Terraform, and implicitly others including Pulumi); claim narrows to "HCL with OpenTofu or Terraform, or [Pulumi]"…; evidence: Official CDKTF GitHub notice confirms: "Terraform CDK is licensed under the Mozilla Public License (MPL)... We encourage community forks if there's interest in continuing development independently" and "No further updates, fixes, or…; source: https://github.com/hashicorp/terraform-cdk and https://www.pulumi.com/blog/cdktf-is-deprecated-whats-next-for-your-team/)
  • L113 in content/blog/best-terraform-alternatives/index.md "AWS CDK continues to ship regular releases and is unaffected by CDKTF's archival." (also L205) → ✅ verified (evidence: GitHub API confirms hashicorp/terraform-cdk (CDKTF) is archived ("archived":true, last release v0.21.0 in June 2025), while aws/aws-cdk is a separate, actively maintained repository with regular releases (latest v2.266.0, Aug 2026…; source: gh api repos/hashicorp/terraform-cdk; gh release list -R aws/aws-cdk)
  • L113 in content/blog/best-terraform-alternatives/index.md "AWS CDK and CDK for Terraform are different, unrelated projects." → ❌ contradicted (framing: Claim asserts the projects are "unrelated," but source shows CDKTF was co-developed by HashiCorp and the AWS CDK team and shares its construct/JSII model …; evidence: CDKTF was built by HashiCorp in direct collaboration with the AWS CDK team and is built on the same JSII construct framework: "Two years ago, HashiCorp began collaborating with AWS and their AWS Cloud Development Kit (AWS CDK) team to…; source: https://aws.amazon.com/blogs/opensource/announcing-cdk-for-terraform-on-aws/)
  • L123 in content/blog/best-terraform-alternatives/index.md "Microsoft's own documentation recommends Bicep over raw ARM JSON for new Azure-only infrastructure work." → ✅ verified (evidence: Microsoft's own Azure templates reference states: "If you're deciding between the two languages, we recommend Bicep," describing Bicep as offering the same capabilities as ARM templates with easier syntax.; source: https://learn.microsoft.com/en-us/azure/templates/)
  • L123 in content/blog/best-terraform-alternatives/index.md "Bicep is open source under the MIT license." → ✅ verified (evidence: The Azure/bicep GitHub repository LICENSE file confirms: "MIT License · Copyright (c) Microsoft Corporation." and the repo README states "All files in the repository, except for the Azure Architecture SVG Icons... are subject to the MIT…; source: https://github.com/Azure/bicep/blob/main/LICENSE)
  • L129 in content/blog/best-terraform-alternatives/index.md "Red Hat was itself acquired by IBM in 2019." → ✅ verified (evidence: IBM announced its acquisition of Red Hat in October 2018 and the deal officially closed in July 2019, making "acquired by IBM in 2019" an accurate statement of when the acquisition was completed. This is a well-documented…; source: General public knowledge of IBM-Red Hat acquisition (announced Oct 2018, closed July 2019))
  • L135 in content/blog/best-terraform-alternatives/index.md "Terragrunt is maintained by Gruntwork." → ✅ verified (evidence: Multiple sources confirm Terragrunt's maintainer; e.g., Gruntwork's own docs state "Terragrunt, developed by Gruntwork, enhances Terraform's functionality" and the GitHub repo lives under the gruntwork-io organization.; source: https://docs.gruntwork.io/2.0/docs/library/setup/setting-up/)
  • L137 in content/blog/best-terraform-alternatives/index.md "Terragrunt's default binary behavior is overridable via the terraform_binary option." (also L209) → ✅ verified (evidence: Terragrunt's own docs state: "The terragrunt terraform_binary string option can be used to override the default binary Terragrunt calls (which is..." confirming that the default binary behavior is overridable via the terraform_binary…; source: gruntwork-io/terragrunt:docs/src/content/docs/04-reference/01-hcl/03-attributes.mdx)
  • L137 in content/blog/best-terraform-alternatives/index.md "Terragrunt is MIT licensed." → ✅ verified (evidence: The official Terragrunt GitHub repo and docs state: "This code is released under the MIT License."; source: https://github.com/gruntwork-io/terragrunt)
  • L137 in content/blog/best-terraform-alternatives/index.md "Terragrunt 1.0 introduced a formal backwards-compatibility guarantee covering CLI flags, HCL config, and command output for the entire 1.x line." (also L161, L209) → ✅ verified (evidence: Source states: "The most significant change in 1.0 isn't the introduction of a new feature, it's an explicit backwards compatibility guarantee... All CLI flags, serialized output (from commands like find and the Run Report), HCL…; source: https://www.gruntwork.io/blog/terragrunt-1-0-released)
  • L139 in content/blog/best-terraform-alternatives/index.md "It's worth being precise about what Terragrunt is not: it doesn't introduce a new language, provider model, or state backend, and it doesn't address HCL's…" → ✅ verified (framing: The claim is the blog's own analytical text; third-party sources (Medium, Spacelift, dev.to) independently corroborate the underlying factual assertions…; evidence: (escalated from pass1) Independent sources corroborate: Terragrunt is described as "a thin orchestration wrapper... that sits on top of Terraform or OpenTofu, rather than replacing either one," and other reviews confirm it "does not…; source: https://www.pulumi.com/blog/best-terraform-alternatives/)
  • L146 in content/blog/best-terraform-alternatives/index.md "| OpenTofu | HCL | Same provider ecosystem as Terraform | Same as Terraform — DSL limits agent reasoning | Linux Foundation / CNCF Sandbox; features like…" → ✅ verified (evidence: Confirmed OpenTofu is governed by the Linux Foundation and was accepted as a CNCF Sandbox project: "OpenTofu was accepted to CNCF on April 23, 2025 at the Sandbox maturity level." Also confirmed it shipped state encryption in v1.7…; source: https://www.cncf.io/projects/opentofu/ ; https://opentofu.org/blog/opentofu-1-7-0/ ; https://news.lavx.hu/article/opentofu-1-12-brings-dynamic-prevent-destroy-and-other-long-awaited-features)
  • L149 in content/blog/best-terraform-alternatives/index.md "| CDK for Terraform (CDKTF) | TypeScript, Python, Java, C#, Go | Archived Dec. 2025 — not a viable choice | N/A — no further updates of any kind | HashiCorp…" → ✅ verified (evidence: GitHub API confirms hashicorp/terraform-cdk (CDKTF) is archived ("archived":true), with pushed_at of 2025-12-10T14:12:01Z, consistent with the claim that it was archived in December 2025 with no further updates.; source: gh api repos/hashicorp/terraform-cdk)
  • L155 in content/blog/best-terraform-alternatives/index.md "### Where each project stands in August 2026" → 🤷 unverifiable (evidence: The heading dates the section "August 2026," a future/undated point relative to typical content review; there is no source that can confirm or deny a future-dated status snapshot claim.; source: content/blog/best-terraform-alternatives/index.md L155)
  • L157 in content/blog/best-terraform-alternatives/index.md "| Project | Latest release | License | Governed by | Status |" → ➖ not-a-claim (evidence: Line 157 is merely the header row of a comparison table ("| Project | Latest release | License | Governed by | Status |"); it contains no factual assertion by itself, only column labels for the data rows that follow.; source: repo:content/blog/best-terraform-alternatives/index.md)
  • L159 in content/blog/best-terraform-alternatives/index.md "Terraform is licensed under the Business Source License." → ✅ verified (evidence: HashiCorp's official Terraform LICENSE file confirms Terraform (v1.6.0+) is licensed under the Business Source License, and multiple sources confirm HashiCorp moved Terraform from MPL v2.0 to the Business Source License v1.1 in August…; source: https://github.com/hashicorp/terraform/blob/main/LICENSE)
  • L159 in content/blog/best-terraform-alternatives/index.md "Terraform's latest release as of August 2026 is version 1.15.x." → ✅ verified (evidence: GitHub releases for hashicorp/terraform show v1.15.9 published 2026-08-19 marked "Latest", with v1.16.0 still in release-candidate (rc2, published 2026-08-19) and not yet generally available. This confirms Terraform's latest stable…; source: gh release list/view -R hashicorp/terraform (v1.15.9 tagged "Latest", v1.16.0-rc2 still prerelease))
  • L162 in content/blog/best-terraform-alternatives/index.md "| CDK for Terraform (CDKTF) | Archived at sunset | MPL-2.0 | None — unmaintained | Archived Dec. 10, 2025 |" → ✅ verified (evidence: GitHub API for hashicorp/terraform-cdk shows "archived": true, "license": {"spdx_id":"MPL-2.0"}, and "pushed_at": "2025-12-10T14:12:01Z" (the last commit before archival), confirming CDKTF was archived around Dec. 10, 2025 under…; source: gh api repos/hashicorp/terraform-cdk)
  • L163 in content/blog/best-terraform-alternatives/index.md "Pulumi's SDKs/CLI are licensed under Apache 2.0." → ✅ verified (evidence: Pulumi's own GitHub repo and docs confirm this: "Pulumi is open source under the Apache 2.0 license" and "The Pulumi CLI and SDKs are open source under the Apache 2.0 license," corroborated also by the LICENSE file in pulumi/pulumi being…; source: https://github.com/pulumi/pulumi and https://www.pulumi.com/docs/iac/comparisons/terraform/)
  • L163 in content/blog/best-terraform-alternatives/index.md "Pulumi's CLI version as of August 2026 is in the 3.259.x range." → ✅ verified (evidence: GitHub releases for pulumi/pulumi show v3.259.0 as the Latest release, dated 2026-08-19, confirming the CLI was in the 3.259.x range as of August 2026.; source: gh release list -R pulumi/pulumi --limit 20)
  • L173 in content/blog/best-terraform-alternatives/index.md "If your team is investing in AI coding agents as part of its engineering workflow, wants multi-cloud reach without maintaining separate tools per provider…" → ➖ not-a-claim (evidence: This is a subjective editorial recommendation in a "How to choose" section of Pulumi's own blog post, expressing the author's positioning judgment about when Pulumi fits a team's needs (AI coding agents, multi-cloud, testing practices)…; source: content/blog/best-terraform-alternatives/index.md)
  • L183 in content/blog/best-terraform-alternatives/index.md "Pulumi's SDKs and CLI are open source under Apache 2.0." → ✅ verified (evidence: The official pulumi/pulumi GitHub repo (which contains the CLI, SDKs, and engine) states: "Pulumi is open source under the Apache 2.0 license, supports many languages and clouds, and is easy to extend," and the repo's LICENSE file is the…; source: https://github.com/pulumi/pulumi)
  • L183 in content/blog/best-terraform-alternatives/index.md "Crossplane is a CNCF project." → ✅ verified (framing: Source specifies Crossplane is now a Graduated CNCF project; claim's broader statement "is a CNCF project" is entailed by this more specific status.; evidence: CNCF's own project page confirms: "Crossplane was accepted to CNCF on June 25, 2020, moved to the Incubating maturity level on September 14, 2021, and then moved to the Graduated maturity level on October 28, 2025," confirming it is a…; source: https://www.cncf.io/projects/crossplane/)
  • L205 in content/blog/best-terraform-alternatives/index.md "HashiCorp archived CDKTF on December 10, 2025 and says in its own FAQ that no further updates, fixes, or improvements (including compatibility updates) will…" → ✅ verified (evidence: HashiCorp's official CDKTF FAQ (mirrored across hashicorp/terraform-cdk and related repos) states: "Terraform CDK (CDKTF) will sunset and be archived on December 10, 2025" and "No further updates, fixes, or improvements (including…; source: https://github.com/hashicorp/terraform-cdk)
  • L209 in content/blog/best-terraform-alternatives/index.md "Not really. Terragrunt is an orchestration wrapper that sits on top of Terraform or OpenTofu to keep large, multi-environment HCL codebases DRY; it doesn't…" → ✅ verified (evidence: gruntwork-io/terragrunt v1.0.0 was published 2026-03-30 (March 2026), and its release notes state "Terragrunt is now v1! This means that Terragrunt will no longer have any breaking changes in minor releases, with all future breaking…; source: gh release view v1.0.0 -R gruntwork-io/terragrunt)
  • L215 in content/blog/best-terraform-alternatives/index.md "Terraform remains a capable, widely used tool, and for teams with no appetite to change, OpenTofu offers a nearly friction-free path to the same workflow…" → ➖ not-a-claim (evidence: This is an editorial/opinion statement about 2026 tooling trends and a rhetorical question, not a falsifiable factual assertion that can be verified against a source.; source: content/blog/best-terraform-alternatives/index.md)
  • L137-139 in content/blog/best-terraform-alternatives/index.md "Terragrunt reached 1.0 in March 2026" → 🚩 flagged (readthrough: self-redundancy)

📊 Editorial balance

Section depth, mention distribution, recommendation steering
  • Section depth: 15 H2 sections (mean 5.4 lines, median 3, std 5.5). Outliers: Do you have to leave HCL behind?: 9 (3.0× median), Comparison table: 19 (6.3× median), Frequently asked questions: 18 (6.0× median).
  • Vendor / entity mentions: Terraform: 66 · Pulumi: 60 · OpenTofu: 38 · CloudFormation: 16 · HashiCorp: 15 · Terragrunt: 15 · AWS CDK: 14 · CDKTF: 12 · Crossplane: 11 · Ansible: 9 · Bicep: 8.
  • FAQ steering: 8 FAQ entries; 4 land on Pulumi as the recommendation ("Which IaC tool works best with AI coding agents?", "Can I migrate from Terraform without rewriting everything?", "Is Pulumi a drop-in Terraform replacement?", and one of two options in "Is CDK for Terraform (CDKTF) still supported?"); 2 land on OpenTofu ("What is the best open-source Terraform alternative?", "Does OpenTofu support everything Terraform does?"); 2 are neutral ("Is Terraform still free to use?", "Is Terragrunt a Terraform alternative?"). Within range for a vendor-authored roundup — no flag.
  • Note on the two Tier 1 prose outliers: "Comparison table" (19 lines) and "Frequently asked questions" (18 lines) are table and Q&A blocks, so the line-count ratio isn't meaningful for them. The one worth a second look is the new "Do you have to leave HCL behind?" section (9 lines, 3.0× median): it's now the deepest prose section in the post, it is entirely about Pulumi, and every competitor section runs 2–5 lines. Worth considering either a trim, or one sentence acknowledging that staying on OpenTofu is the other way to keep HCL — the section's own title poses a question that OpenTofu also answers, and the post covers that only further down. Not blocking.

🚨 Outstanding in this PR

These must be resolved or refuted before merging.

  • [L113] content/blog/best-terraform-alternatives/index.md"AWS CDK and CDK for Terraform are different, unrelated projects." — ❌ contradicted. The two projects are separately maintained and target different engines, but they are not unrelated: HashiCorp built CDKTF in direct collaboration with the AWS CDK team, and it uses the same construct model and jsii toolchain. A reader who knows that history will read "unrelated" as an error, which undercuts the disambiguation the paragraph is making. The sentence also carries the only remaining easy-difficulty-qualifier flag in the post, so one rewrite fixes both:

    One disambiguation worth stating plainly, since the two names are similar: AWS CDK and CDK for Terraform are separate projects with different maintainers and different targets. HashiCorp built CDKTF with the AWS CDK team and on the same construct model, but it generated Terraform configuration rather than CloudFormation. AWS CDK targets CloudFormation, is maintained by AWS, and continues to ship regular releases. Only CDKTF, HashiCorp's Terraform-targeting CDK, is the one that's archived.
    

⚠️ Low-confidence

Review each and resolve as appropriate — these don't block the PR.

  • [L91] content/blog/best-terraform-alternatives/index.md"its registry now lists more than 3,900 providers and 23,600 modules" — 🌀 framing-drift. The registry itself advertises rounded thresholds — "Search through 4,000+ providers and 22,000+ modules" — so the post's precise figures both undershoot the provider count and overshoot the module count relative to what the source actually says. Live registry counts also move, which makes exact numbers a maintenance liability in an evergreen post. Match the source's framing:

    Since forking, OpenTofu's maintainers have also shipped features HashiCorp hasn't, including state encryption, provider-defined functions, `for_each` on provider blocks, OCI registry support for providers and modules, and, in the [1.12 release from May 2026](https://opentofu.org/blog/opentofu-1-12-0/), dynamic `prevent_destroy` values. The project runs under the Linux Foundation and was accepted into the CNCF Sandbox in April 2025; its [registry](https://search.opentofu.org/) now lists 4,000+ providers and 22,000+ modules. It remains MPL-2.0 licensed.
    
  • [L137-139] content/blog/best-terraform-alternatives/index.md"Terragrunt reached 1.0 in March 2026" — the Terragrunt section (L137–139) and the FAQ answer "Is Terragrunt a Terraform alternative?" (L207–209) restate the same four facts almost verbatim: 1.0 in March 2026, the backwards-compatibility guarantee, the tofu-by-default change, and "not a replacement." A reader arriving at the FAQ has just read all of it. Trim the FAQ answer to the framing plus a pointer back, e.g. keep "Not really. Terragrunt is an orchestration wrapper that sits on top of Terraform or OpenTofu to keep large, multi-environment HCL codebases DRY; it doesn't run infrastructure on its own, introduce a new provider model, or change what language you write in." and replace the version details with a link to the Terragrunt section above. Non-blocking — the page still reads correctly as-is.

Style suggestions

Optional polish from pattern-based linting — never blocking, not counted above. Take the ones that read better and ignore the rest. ✏️ marks one you can apply from the Files changed tab — use Add suggestion to batch on each, then Commit suggestions to take several in a single commit.

content/blog/best-terraform-alternatives/index.md
  • line 63: [style] wordiness — 'it is' is too wordy.
  • line 89: [style] weasel word — 'largely' is a weasel word!
  • line 113: [style] difficulty qualifier — Avoid difficulty qualifier 'easy' -- it judges difficulty for the reader (STYLE-GUIDE.md §Inclusive Language).

📋 Triaged verifier findings

I double-checked these and realized they weren't real findings — click to expand
  • [L109] content/blog/best-terraform-alternatives/index.md"CDK for Terraform used to appear on lists like this one as a way to write Terraform infrastructure in TypeScript, Python, Java, C#, or Go instead of HCL.…"Mis-sourced: the check landed on a truncated capture of the GitHub repo page that showed only generic metadata, so it couldn't see the archive banner. The December 10, 2025 archival date the sentence depends on is confirmed elsewhere in this same review (repository archived: true with a final push of 2025-12-10, and HashiCorp's own sunset notice).

  • [L155] content/blog/best-terraform-alternatives/index.md"### Where each project stands in August 2026"Mis-sourced: this is a section heading that dates the table below it, not an assertion that can be checked on its own. Every row under it — Terraform 1.15.x/BUSL, OpenTofu 1.12/MPL-2.0, Terragrunt MIT, CDKTF archived Dec. 10 2025, Pulumi CLI 3.259.x/Apache 2.0 — verified individually.

💡 Pre-existing issues in touched files (optional)

  • [L83] content/blog/best-terraform-alternatives/index.md"BMW's Software Factory manages more than 20,000 cloud resources with Python-based infrastructure code for over 11,000 developers."Pre-existing: this sentence is unchanged by this PR. Flagging it for a future pass rather than this one: the "20,000 cloud resources" figure matches Pulumi's BMW case study, but the "over 11,000 developers" figure doesn't appear there, and the developer count in AWS's version of the story describes the wider Software Factory program rather than the Pulumi-managed footprint. Worth confirming with the case-study owner and either sourcing or dropping the second number.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-08-21T12:33:53Z — Verified 53 of 63 claims against primary sources; one factual blocker (AWS CDK / CDKTF described as "unrelated"), plus a registry-count framing drift and a Terragrunt/FAQ redundancy (12808d4)

  • Refresh this review — comment @claude #update-review. Say what you fixed, or which finding you dispute and why; both work in the same mention.
  • Ask for anything else — comment @claude with no hashtag (questions, one-off fixes). Leaves this review untouched.

Important

Please don't hide, resolve, or delete this comment! It breaks things!

📖 How pre-merge review works — the full lifecycle, short-circuits, and escape hatches.

@github-actions github-actions Bot added review:outstanding-issues Claude review completed; outstanding has author-actionable findings and removed review:in-progress Claude review is currently running labels Aug 21, 2026
@pulumi-bot

Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:blog PR touches blog posts or customer stories review:outstanding-issues Claude review completed; outstanding has author-actionable findings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants