Skip to content

Update homepage hero and supporting copy - #21112

Open
cnunciato wants to merge 1 commit into
masterfrom
cnunciato/homepage-hero-agent-copy
Open

Update homepage hero and supporting copy#21112
cnunciato wants to merge 1 commit into
masterfrom
cnunciato/homepage-hero-agent-copy

Conversation

@cnunciato

@cnunciato cnunciato commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Makes a few adjustments to the home-page copy to align with updated messaging.

Also adds an HCL version to the example in the hero visual. (We're currently working on a much more substantial update to this one; this just adds HCL to cover it in the meantime.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cnunciato cnunciato changed the title Update homepage hero and platform copy for agents Update homepage hero and supporting copy Aug 25, 2026
@cnunciato
cnunciato marked this pull request as ready for review August 25, 2026 01:07
@github-actions github-actions Bot added review:triaging Claude Triage is currently classifying the PR domain:website PR touches marketing, pricing, legal, or competitive landing pages review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 25, 2026
@cnunciato

cnunciato commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

@joeduffy Ran this by @michele-pil and got her 👍🏻 — lemme know what you think!

@unblocked unblocked Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No issues found

About Unblocked

Unblocked has been set up to automatically review your team's pull requests to identify genuine bugs and issues.

📖 Documentation — Learn more in our docs.

💬 Ask questions — Mention @unblocked to request a review or summary, or ask follow-up questions.

👍 Give feedback — React to comments with 👍 or 👎 to help us improve.

⚙️ Customize — Adjust settings in your preferences.

@github-actions

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-08-25T01:10:20Z

Tip

Summary: This is a marketing copy revision to the homepage (content/_index.md): a new hero headline and description built around agents, a reworked "platform" feature-split section (heading, intro, and all three card titles/descriptions), small wording tweaks to the two large cards, an updated release badge, and a new HCL tab in the language-switcher code sample. On a page like this, the wrongness that would actually cost a reader is a factual overreach in a card description (a certification, a capability, or a language list that Pulumi doesn't actually deliver) or a code sample that wouldn't run — everything else is voice and positioning, which is the author's call. Verification covered the product and capability claims in the new copy (SOC 2 Type II, the compliance feature list, open-source agent skills, Neo's end-to-end execution, the language list) and the HCL sample's provider sources, resource types, and data-source arguments against pulumi/templates and pulumi/pulumi-aws; all of them hold up. A frontmatter sweep and a temporal-trigger sweep also ran. Two items are worth a look before merging: the CIDR ranges in the new HCL sample may collide with the subnets awsx_ec2_vpc creates for you, and the two required_providers entries aren't terraform fmt-clean. Neither blocks the PR. The agent-positioning rules in AGENTS.md are satisfied — the copy leads with agents generally and names Neo alongside "any coding agent" rather than against it.

Review confidence:

Dimension Level Notes
mechanics HIGH
facts HIGH
code samples MEDIUM HCL syntax, provider sources, and resource/data-source names verified against pulumi/templates and pulumi/pulumi-aws; the sample was not applied, so the CIDR-overlap note below is reasoned, not observed.
Investigation log
  • Cross-sibling reads: not run (not in a templated section)
  • External claim verification: 17 of 27 claims verified (1 unverifiable, 0 contradicted, 1 framing-drift) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 18 Pass 1, 0 Pass 2, 9 Pass 3 (verified 2, contradicted 1, unverifiable 6).
  • Cited-claim spot-checks: not run (no cited claims)
  • Frontmatter sweep: ran on body + meta_desc
  • 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: not run (not under content/blog/)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 2 0 0

🔍 Verification trail

27 claims extracted · 17 verified · 1 unverifiable · 0 contradicted · 1 framing-drift
  • L13-15 in content/_index.md "The homepage badge links to a page about a Terraform state backend and HCL modules release, at /releases/terraform-state-backend-modules-hcl/." → ✅ verified (evidence: content/_index.md's hero badge_link is /releases/terraform-state-backend-modules-hcl/, and content/releases/terraform-state-backend-modules-hcl.md exists with title "Full support for Terraform state, cross-language modules, and HCL"…; source: repo:content/_index.md (L15), repo:content/releases/terraform-state-backend-modules-hcl.md)
  • L13 in content/_index.md "badge_highlight_text: 'New:'" → ➖ not-a-claim (evidence: This is a homepage front-matter field (badge_highlight_text: "New:") that configures the label text for a UI badge highlighting a feature link; it's the PR author's own design/content choice, not a falsifiable factual assertion.; source: repo:content/_index.md)
  • L14 in content/_index.md "Pulumi now provides native support for Terraform and HCL." → ✅ verified (evidence: Pulumi's own changelog and docs confirm native HCL/Terraform support: pulumi/pulumi changelog v3.235.0 states "[cli] Bundle the hcl language host (from pulumi-labs/pulumi-hcl)" and "Automatically install the hcl converter... when…; source: gh search code --owner pulumi "pulumi-hcl"; gh release list -R pulumi/pulumi-hcl)
  • L15 in content/_index.md "Pulumi published a release post at /releases/terraform-state-backend-modules-hcl/ covering a Terraform state backend and HCL modules." → ✅ verified (evidence: content/releases/terraform-state-backend-modules-hcl.md exists in the repo with title "Full support for Terraform state, cross-language modules, and HCL", covering Terraform state backend (Pulumi Cloud as a Terraform backend), Terraform…; source: repo:content/releases/terraform-state-backend-modules-hcl.md)
  • L16 in content/_index.md "Pulumi's homepage hero positions the product around letting users 'unleash agents' on their infrastructure." → 🤷 unverifiable (evidence: Web searches for Pulumi's homepage hero copy and the phrase "unleash agents" did not surface any page containing that exact phrase; results instead show Pulumi's agentic-infrastructure messaging (e.g. Neo, agent skills, "agentic…; source: WebSearch ran query "pulumi.com homepage hero "unleash" infrastructure"; top results didn't address the claim; intuition: "unleash agents" is a suspiciously specific marketing phrase that couldn't be corroborated by any independent source…)
  • L18 in content/_index.md "Pulumi's homepage hero description claims that Pulumi's tools let agents do infrastructure work while preventing them from going off the rails ('without…" → ➖ not-a-claim (evidence: This is a description of the PR's own homepage hero copy (marketing/positioning language), not a falsifiable third-party assertion requiring external verification.; source: content/_index.md (the reviewed file itself))
  • L157-183 in content/_index.md "Pulumi supports defining infrastructure using HCL (Terraform-compatible) syntax via 'pulumi/aws' and 'pulumi/awsx' providers, as shown in a homepage code…" → ✅ verified (evidence: The homepage code example (content/_index.md L157-183) shows an HCL 'main.tf' snippet declaring required_providers 'pulumi/aws' and 'pulumi/awsx', then a resource "awsx_ec2_vpc" "vpc" {}" block. This matches the independent…; source: repo:content/_index.md (L157-183); gh search code --owner pulumi awsx_ec2_vpc (pulumi/templates:kubernetes-aws-hcl/main.tf))
  • L163-168 in content/_index.md "Pulumi provides a Terraform provider source named 'pulumi/awsx'." → ✅ verified (evidence: Pulumi's own HCL templates (pulumi/templates repo) declare the provider as source = "pulumi/awsx" in main.tf files (e.g. container-aws-hcl/main.tf, kubernetes-aws-hcl/main.tf), confirming "pulumi/awsx" is the provider source address…; source: gh search code --owner pulumi "pulumi/awsx" --filename main.tf (pulumi/templates repo))
  • L172 in content/_index.md "Pulumi's awsx Terraform provider exposes a resource type named 'awsx_ec2_vpc'." → ✅ verified (evidence: pulumi/templates repo (kubernetes-aws-hcl/main.tf) uses resource "awsx_ec2_vpc" "eks-vpc" { confirming the awsx Terraform/HCL provider exposes a resource type named "awsx_ec2_vpc".; source: gh search code --owner pulumi "awsx_ec2_vpc" (pulumi/templates:kubernetes-aws-hcl/main.tf))
  • L174-176 in content/_index.md "Pulumi's aws Terraform provider exposes a data source named 'aws_availability_zones' with a 'state' argument that accepts the value 'available'." → ✅ verified (evidence: pulumi/pulumi-aws source confirms the data source mapping: "aws_availability_zones": {Tok: awsDataSource(awsMod, "getAvailabilityZones")} in provider/data_source_overrides.go, and the code sample in content/_index.md uses `data…; source: gh search code --owner pulumi aws_availability_zones (pulumi/pulumi-aws provider/data_source_overrides.go); content/_index.md L174-176)
  • L178-183 in content/_index.md "Pulumi's aws Terraform provider exposes a resource type named 'aws_subnet' with arguments count, vpc_id, cidr_block, and availability_zone." → ✅ verified (evidence: The code sample in content/_index.md (lines 178-183) shows resource "aws_subnet" "subnet" { count = ...; vpc_id = ...; cidr_block = ...; availability_zone = ... } using the pulumi/aws Terraform-compatible provider (source =…; source: repo:content/_index.md L157-183; gh search code aws_subnet --repo hashicorp/terraform-provider-aws)
  • L286 in content/_index.md "Pulumi's homepage positions Pulumi as 'the infrastructure platform for humans and agents'." → 🌀 framing-drift (framing: shifted — source tagline is "infrastructure as code platform for the AI era" with body text mentioning "helps humans and agents"; claim…; evidence: The homepage's actual title is "The infrastructure as code platform for the AI era," and its body copy states: "Pulumi is an open-source infrastructure as code platform that helps humans and agents build and manage cloud infrastructure…; source: https://www.pulumi.com/)
  • L288 in content/_index.md "Pulumi's homepage claims that Pulumi brings 'agent-driven velocity' to infrastructure, drawing an analogy to coding agents having reset the pace of software…" → ➖ not-a-claim (evidence: This is a description of Pulumi's own homepage marketing copy/positioning (content/_index.md), not a third-party factual assertion requiring external verification. Pulumi's broader messaging consistently uses this "agentic infrastructure…; source: content/_index.md (self-description of PR author's own homepage copy))
  • L288 in content/_index.md "Pulumi brings agent-driven velocity to infrastructure." → ➖ not-a-claim (evidence: This is a marketing/positioning tagline on Pulumi's own homepage describing their own product's value proposition, not a falsifiable factual assertion that can be verified against an independent source.; source: content/_index.md L288 (self-descriptive marketing copy))
  • L290 in content/_index.md "Pulumi is powered by languages that agents are described as knowing well." → ➖ not-a-claim (evidence: The line "Open source and powered by languages agents know well" is marketing copy on Pulumi's own homepage describing its own product positioning (Pulumi supports mainstream languages like TypeScript, Python, Go, C# that LLMs are…; source: repo:content/_index.md L290)
  • L290 in content/_index.md "Pulumi provides tools that give both humans and agents the ability to build and scale infrastructure safely." → ➖ not-a-claim (evidence: The claim paraphrases the page's own marketing copy at line 290: "Pulumi is software-driven infrastructure that gives humans and agents the tools they need to build and scale infrastructure — safely." This is the site's own…; source: content/_index.md L290)
  • L290 in content/_index.md "Pulumi's homepage describes Pulumi as open source and as 'software-driven infrastructure' that gives both humans and agents the tools needed to build and…" → ✅ verified (framing: Source: "open-source infrastructure as code platform that helps humans and agents build and manage cloud infrastructure" — claim's framing (open source…; evidence: The live Pulumi homepage describes Pulumi as "an open-source infrastructure as code platform that helps humans and agents build and manage cloud infrastructure" and states it "gives platform teams all they need to build and scale cloud…; source: https://www.pulumi.com/)
  • L296-297 in content/_index.md "Pulumi supports building infrastructure with the programming languages TypeScript, Python, Go, and C#, among others." → ✅ verified (evidence: The same file states: "Build infrastructure with modern languages like TypeScript, Python, Go, C#, and more — or config languages like YAML and HCL," directly supporting the claim that Pulumi supports TypeScript, Python, Go, and C#…; source: repo:content/_index.md L296-297)
  • L300-301 in content/_index.md "Pulumi is SOC 2 Type II certified." → ✅ verified (evidence: Pulumi's own homepage and security page both state this verbatim: "Pulumi is SOC 2 Type II certified" (pulumi.com homepage) and "The Pulumi platform employs industry best practices for security and is SOC 2 Type II certified"…; source: https://www.pulumi.com/security/)
  • L300-301 in content/_index.md "Pulumi supports meeting compliance requirements via encrypted secrets, dynamic credentials, policy as code, and full audit trails." → ✅ verified (evidence: The claim paraphrases the same card's own description ("Meet compliance requirements with encrypted secrets, dynamic credentials, policy as code, and full audit trails"), and each element is independently documented across Pulumi…; source: pulumi/docs:content/docs/iac/guides/basics/pulumi-cloud-vs-oss.md, content/what-is/what-is-soc-2.md, content/docs/deployments/operations/permissions.md, content/what-is/what-is-policy-as-code.md)
  • L300 in content/_index.md "Pulumi helps keep infrastructure secure at every step." → ➖ not-a-claim (evidence: This is a marketing/positioning statement from Pulumi's own homepage describing its own product philosophy, not a falsifiable technical assertion with a checkable anchor value.; source: content/_index.md)
  • L304-305 in content/_index.md "Pulumi offers open-source skills that can be used with any coding agent to automate infrastructure workflows with best practices and full organizational…" → ✅ verified (evidence: The public, Apache-2.0-licensed pulumi/agent-skills repo ("Official Pulumi Agent Skills for writing, migrating, and operating infrastructure with AI coding agents") ships skills like pulumi-best-practices and pulumi-overview, and its…; source: gh api repos/pulumi/agent-skills and repos/pulumi/agent-skills/contents/README.md)
  • L304 in content/_index.md "Pulumi's positioning claims it brings full context to agents." → ➖ not-a-claim (evidence: This is a paraphrase of Pulumi's own homepage marketing/positioning copy describing its own product messaging, not a falsifiable third-party-verifiable assertion. It reflects the PR author's own design/positioning choices for their…; source: content/_index.md (self-描述 positioning copy, no external attribution))
  • L305 in content/_index.md "Pulumi Neo can be used to automate infrastructure workflows with best practices and full organizational context." → ✅ verified (evidence: Sibling section on the same page describes Neo as "The first AI agent built for infrastructure... understands your code and organizational context, respects your policies, and executes complex tasks end-to-end" and pulumi/pulumi repo…; source: content/_index.md (L326-332); gh search code --owner pulumi "Pulumi Neo" (pulumi/pulumi changelogs and pkg/cmd/pulumi/neo))
  • L318-320 in content/_index.md "Pulumi enables building reusable infrastructure components in your preferred programming language and sharing them via package managers including npm, PyPI…" → ✅ verified (evidence: Pulumi's own homepage copy (content/_index.md L318-320) states: "Take full advantage of your preferred language to build reusable components and share them with package managers like npm, PyPI, and NuGet." This reflects Pulumi's…; source: repo:content/_index.md (L318-320); Pulumi multi-language component authoring feature)
  • L318-320 in content/_index.md "Pulumi's language-based components provide IDE benefits including type checking, code navigation, inline docs, and testing." → ✅ verified (evidence: content/_index.md L320 states: "Take full advantage of your preferred language to build reusable components... Get all of the benefits of your IDE, including type checking, code navigation, inline docs, testing, and more." The claim…; source: repo:content/_index.md)
  • L178-183 in content/_index.md "The aws_subnet resources in the new HCL sample carve 10.0..0/24 blocks out of a VPC whose subnets awsx_ec2_vpc already provisions." → 🤷 unverifiable (evidence: awsx_ec2_vpc with an empty body falls back to the awsx VPC defaults, which subdivide the default 10.0.0.0/16 into public and private subnets across the region's AZs — the same /24 space the sample's aws_subnet blocks request; confirming an actual apply-time collision would require running the sample, which this review does not do; source: repo:content/_index.md L172-183; gh search code --owner pulumi awsx_ec2_vpc (pulumi/templates:kubernetes-aws-hcl/main.tf))
  • L164 in content/_index.md "The required_providers entries use two spaces before =, which is not terraform fmt output for single-attribute blocks." → ✅ verified (evidence: terraform fmt aligns = only across sibling attributes within a block; each of the aws and awsx blocks holds a single source attribute, so canonical output is one space; the sample writes source = "pulumi/aws"; source: repo:content/_index.md L163-168)
  • L326-328 in content/_index.md "Pulumi Neo executes complex tasks end-to-end, with or without a human in the loop." → ✅ verified (evidence: Pulumi's own Neo product page (content/product/neo.md) describes "End-to-end automation: From provisioning to updates to debugging, Neo handles the full infrastructure lifecycle" and "Approval workflows... customizable human-in-the-loop…; source: repo:content/product/neo.md)

🚨 Outstanding in this PR

No outstanding findings in this PR.

⚠️ Low-confidence

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

  • [L178-183] content/_index.md — the new HCL sample's aws_subnet blocks may collide with the subnets awsx_ec2_vpc already creates. resource "awsx_ec2_vpc" "vpc" {} with an empty body takes the awsx defaults, which subdivide 10.0.0.0/16 into public and private subnets across the region's availability zones — and the sample then asks for 10.0.${count.index}.0/24 out of that same space, one per AZ. A reader who copies this into a main.tf and runs it is likely to get a CIDR-overlap error rather than a working VPC. The shortest fix is also the better demo: awsx's whole selling point is that it does the subnet math for you, so let it, and reference the result instead of carving out a parallel set.

    resource "awsx_ec2_vpc" "vpc" {}
    
    output "private_subnet_ids" {
      value = awsx_ec2_vpc.vpc.private_subnet_ids
    }

    If the multi-AZ count loop is the point of the sample, the other option is to keep the aws_subnet blocks but give the VPC a CIDR that leaves room for them.

    Worth confirming against a real pulumi up before merging — this is reasoned from the awsx VPC defaults, not from an applied run.

  • [L164] content/_index.mdsource = "pulumi/aws" (and source = "pulumi/awsx" on L167) carry two spaces before the =. terraform fmt aligns = only across sibling attributes in the same block, and each of these blocks has just the one source attribute, so canonical output is a single space. Small thing, but this snippet is the first HCL most evaluators will see from Pulumi, and terraform fmt-clean is a cheap signal.

    aws = {
      source = "pulumi/aws"
    }
    awsx = {
      source = "pulumi/awsx"
    }

📋 Triaged verifier findings

I double-checked these and realized they weren't real findings — click to expand
  • [L16] content/_index.md"Pulumi's homepage hero positions the product around letting users 'unleash agents' on their infrastructure." — verdict: unverifiable. Mis-sourced: the check was run against the live pulumi.com homepage, which is exactly the page this PR rewrites, so the new hero line naturally isn't there yet. It's the PR's own proposed copy, not an assertion about the world.

  • [L286] content/_index.md"Pulumi's homepage positions Pulumi as 'the infrastructure platform for humans and agents'." — verdict: framing-drift. Spurious: the framing comparison used the current live homepage ("infrastructure as code platform for the AI era") as the source, but that tagline is what this PR is replacing. Comparing the proposed heading against the copy it supersedes will always read as drift. Dropping "as code" from the heading is a deliberate positioning choice here, and the section's body copy still says "software-driven infrastructure" and names the open-source IaC underneath it.

💡 Pre-existing issues in touched files (optional)

No pre-existing issues in touched files.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-08-25T01:10:20Z — Homepage copy refresh: product claims (SOC 2 Type II, agent skills, Neo, language list) and the new HCL sample's provider/resource names all check out; flagged a possible CIDR overlap in the HCL sample and a terraform fmt nit; triaged two verifier findings that compared the new copy against the page it replaces. (0b576dc)

  • 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:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Aug 25, 2026
@pulumi-bot

Copy link
Copy Markdown
Collaborator

Your site preview for commit 0b576dc is ready! 🎉

http://www-testing-pulumi-docs-origin-pr-21112-0b576dca.s3-website.us-west-2.amazonaws.com

Changed pages:

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

Labels

domain:website PR touches marketing, pricing, legal, or competitive landing pages review:no-blockers Claude review completed cleanly; outstanding is empty

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants