Skip to content

Surface recent blog posts and the next event on the homepage - #20665

Open
jeffmerrick wants to merge 3 commits into
masterfrom
jeffmerrick/issue-20584-latest-on-homepage
Open

Surface recent blog posts and the next event on the homepage#20665
jeffmerrick wants to merge 3 commits into
masterfrom
jeffmerrick/issue-20584-latest-on-homepage

Conversation

@jeffmerrick

@jeffmerrick jeffmerrick commented Aug 3, 2026

Copy link
Copy Markdown
Contributor
Screenshot 2026-08-03 at 1 59 54 PM

Proposed changes

Adds a "What's new at Pulumi" section near the bottom of the homepage: a three-tile row of the latest blog posts (excluding the general category), with the next upcoming event in the last slot and a fallback to three posts when nothing is coming up. It reuses the existing blog and event card partials rather than inventing new tiles — which meant making the event card portable, so it now derives its own link and date from the event page and renders just the <article>, with the filterable <li> moved to events/event-list-item.html and the "what's upcoming" query moved to events/upcoming.html so the events list and the homepage can't drift apart. blog/feed.html now also returns its non-general post pool, and the new blog/card/contained.html boxes the medium card in a .card so it sits comfortably beside the event tile.

The rendered /events/ page was diffed against master and is byte-identical apart from one intentional tweak: the event card's internal gap-16 is now gap-6, which only affects the card in a narrow column (justify-between already pins the date chip right when there's room). The countdown badge renderer in resources.ts is no longer gated on the events list, so the "in X days" chip also shows on the homepage.

Related issues (optional)

Fixes #20584

Adds a "What's new at Pulumi" section near the bottom of the homepage: a
three-tile row of the latest blog posts (excluding the general category)
with the next upcoming event in the last slot, falling back to three posts
when nothing is coming up.

Reuses the existing card partials rather than inventing new tiles. To make
the event card usable outside /events/, it now derives its own link and
date from the event page and renders just the <article>; the filterable
<li> moved to events/event-list-item.html, and the "what's upcoming" query
moved to events/upcoming.html so the list page and the homepage can't
drift. blog/feed.html exposes its non-general post pool, and the new
blog/card/contained.html boxes the medium card in a .card so it sits
alongside the event tile. The countdown badge renderer is no longer gated
on the events list.

Refs #20584

Co-Authored-By: Claude <noreply@anthropic.com>
@jeffmerrick
jeffmerrick marked this pull request as ready for review August 3, 2026 18:56
@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 domain:mixed PR touches more than one domain domain:infra PR touches workflows, scripts, infra, Makefile, or build config review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-08-03T18:59:33Z

Tip

Summary: This is a website/templating PR, not a content PR: it adds a "What's new at Pulumi" row to the homepage (content/_index.md) backed by a new latest_posts template section, and refactors the event card so it can be reused outside /events/. The substantive work is a refactor — events/event-card.html now derives everything from the event page instead of six caller-supplied params, its filterable <li> wrapper moves to a new events/event-list-item.html, "what counts as upcoming" moves into a new shared events/upcoming.html helper consumed by both the events list and the homepage row, blog/feed.html exports its pool collection, and resources.ts now renders event countdowns on any page rather than only the events list. The failure modes that matter here are mechanical rather than editorial: a missing partial or a renamed parameter left behind at a call site would break the build or silently drop a section. I checked each of those by hand against the head commit — the section dispatcher resolves latest_poststemplate-latest-posts.html dynamically, every partial the two new files reference (blog/has-feature-image.html, blog/feature-image.html, blog/category-badge.html, blog/post-meta.html, external-link-attrs.html, icon.html, badge.html) exists, btn-xl / btn-link are real classes in shared/_button.scss, $pool is defined at top level in feed.html so the added return key resolves, the removed $nowUnix has no remaining references in list-section.html, and list-section.html is the only caller of event-card.html so no stale call site is left on the old parameter shape. resources.ts is imported by theme/src/ts/main.ts, so the unconditional renderEventCountdowns() call does reach the homepage. Passes that ran: claim extraction and verification across the diff (40 claims), frontmatter sweep, temporal-trigger sweep, and a manual templating pass. I found nothing that blocks merge.

Review confidence:

Dimension Level Notes
mechanics MEDIUM The Hugo build preflight was skipped for this run, so the new section was never actually rendered. Partial references, the latest_posts dispatch name, class names, variable scoping, and call-site signatures were verified by inspection instead — but visual output (both the 3-up grid and the quiet-stretch fallback with no upcoming event) still needs a local make serve check.
facts HIGH No contradicted claims. Nearly all extracted claims are pre-existing homepage marketing copy on lines this PR didn't touch; the diff itself asserts almost nothing factual.
templating MEDIUM Reviewed by reading the head-commit sources of every touched and referenced template. Not exercised by a build.
Investigation log
  • Cross-sibling reads: not run (not in a templated section)
  • External claim verification: 29 of 40 claims verified (0 unverifiable, 0 contradicted) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 33 Pass 1, 0 Pass 2, 7 Pass 3 (verified 4, contradicted 0, unverifiable 3).
  • 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 0 0 0

🔍 Verification trail

40 claims extracted · 29 verified · 0 unverifiable · 0 contradicted
  • L2-3 in content/_index.md "Pulumi is an open-source infrastructure as code platform that helps humans and agents build and manage cloud infrastructure with real programming languages." → ✅ verified (evidence: The official Pulumi homepage states verbatim: "Pulumi is an open-source infrastructure as code platform that helps humans and agents build and manage cloud infrastructure with real programming languages."; source: https://www.pulumi.com/)
  • L19 in content/_index.md "Pulumi enables shipping cloud infrastructure at the speed of AI with languages and tools that stay out of your way." → ➖ not-a-claim (evidence: This is a subjective marketing/positioning tagline from Pulumi's own homepage describing its own product philosophy ("speed of AI", "stay out of your way"), not a falsifiable factual assertion that can be verified against an independent so…; source: content/_index.md (self-description, marketing copy))
  • L186 in content/_index.md "Pulumi is trusted by over 4,000 innovative companies." → ✅ verified (evidence: Pulumi's current homepage states: "Trusted by over 4,000 innovative companies" — matching the claim exactly.; source: https://www.pulumi.com/)
  • L268 in content/_index.md "Pulumi supports writing infrastructure code in TypeScript, Python, Go, C#, or Java." → ✅ verified (evidence: The page itself lists these languages, and Pulumi's official SDKs (per pulumi/pulumi releases and docs) include TypeScript/JavaScript, Python, Go, C#, and Java as first-class supported languages for writing infrastructure code, consistent…; source: repo:content/_index.md L268)
  • L272 in content/_index.md "Pulumi is SOC 2 Type II certified." → ✅ verified (evidence: Pulumi's homepage and security page both state this exact claim: "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." (pulumi.com/…; source: https://www.pulumi.com/ and https://www.pulumi.com/security/)
  • L272 in content/_index.md "Pulumi helps meet compliance requirements with encrypted secrets, dynamic credentials, and full audit trails." → ✅ verified (evidence: Multiple independent Pulumi docs corroborate each element: content/security/_index.md states "The Pulumi platform employs industry best practices for security and is SOC 2 Type II certified"; content/what-is/what-is-pulumi.md states "Unlik…; source: pulumi/docs:content/what-is/what-is-pulumi.md, content/security/_index.md, content/enterprise/_index.md)
  • L276 in content/_index.md "Users can bring their own coding agent or use Pulumi Neo to generate, debug, and refactor infrastructure code with built-in best practices and full organizatio…" → ✅ verified (evidence: The same page states Neo "understands your code and organizational context, respects your policies, and executes complex tasks end-to-end... It works alongside the coding agents you already use," and pulumi/pulumi CLI source confirms `pulu…; source: content/_index.md L297-303; gh search code pulumi/pulumi pkg/cmd/pulumi/neo/neo.go)
  • L280-283 in content/_index.md "Justin Fitzhugh, VP of Cloud Platform Engineering at Snowflake, is quoted saying Pulumi helped Snowflake's team ship a new product faster and that they needed…" → ✅ verified (evidence: content/_index.md itself contains: quote: "Pulumi helped our team to ship a new product faster. We needed one tool to set up and manage multi-cloud, multi-region Kubernetes clusters that infrastructure and applications teams could use coll…; source: repo:content/_index.md (L280-283); repo:content/b/_index.md (snowflake testimonial block))
  • L289-291 in content/_index.md "Pulumi allows building reusable components and sharing them with package managers like npm, PyPI, and NuGet." → ✅ verified (evidence: The site copy states components can be built and shared via npm, PyPI, and NuGet — this matches Pulumi's documented "component providers" feature, where components can be packaged as multi-language SDKs and published to standard package re…; source: content/_index.md L289-291 (feature description); consistent with Pulumi's documented component/package-publishing capability)
  • L291 in content/_index.md "Pulumi provides IDE benefits including type checking, code navigation, inline docs, and testing." → ✅ verified (evidence: content/_index.md L291 states: "Get all of the benefits of your IDE, including type checking, code navigation, inline docs, testing, and more." This is a direct restatement of the site's own marketing copy about Pulumi's IDE benefits.; source: repo:content/_index.md#L291)
  • L296 in content/_index.md "Pulumi's infrastructure as code product page is located at /product/infrastructure-as-code/." → ✅ verified (evidence: The page source exists at pulumi/docs:content/product/infrastructure-as-code.md, and numerous other files (content/product/_index.md, data/header_nav.yaml, data/footer.yml, blog posts) consistently link to it via the URL /product/infrastru…; source: gh search code --owner pulumi "product/infrastructure-as-code" (pulumi/docs:content/product/infrastructure-as-code.md, data/header_nav.yaml, data/footer.yml))
  • L297-299 in content/_index.md "Pulumi Neo understands the user's code and organizational context, respects the user's policies, and can execute complex tasks end-to-end, with or without a hu…" → ➖ not-a-claim (evidence: This is marketing/product-description copy about Pulumi's own product (Neo), taken verbatim from the same content file (content/_index.md L297-299: "Pulumi Neo understands your code and organizational context, respects your policies, and e…; source: repo:content/_index.md)
  • L297-299 in content/_index.md "Pulumi Neo is described as 'the first AI agent built for infrastructure.'" → ➖ not-a-claim (evidence: This is marketing/positioning copy authored by Pulumi describing its own product ("The first AI agent built for infrastructure. Pulumi Neo understands your code and organizational context..."), not a falsifiable factual assertion verifiabl…; source: repo:content/_index.md L297-299)
  • L299 in content/_index.md "Pulumi Neo works alongside coding agents that users already use." → ➖ not-a-claim (evidence: Line 299 of the same file states verbatim: "It works alongside the coding agents you already use." The extracted claim is a direct paraphrase of the page's own product-positioning copy for Pulumi Neo, not an independently checkable factual…; source: repo:content/_index.md L299)
  • L303 in content/_index.md "Pulumi Neo's product page is located at /product/neo/." → ✅ verified (evidence: The repo contains content/product/neo.md, and line 303 of content/_index.md sets cta_link: /product/neo/, matching dozens of other site references (data/docs_nav.yaml, content/product/_index.md, README.md) that all point to /product/neo/.; source: repo:content/product/neo.md; repo:content/_index.md#L303; repo:data/docs_nav.yaml)
  • L305-307 in content/_index.md "Pulumi provides a single interface across all of a user's secrets, pulling in Vault, AWS Secrets Manager, and Azure Key Vault." → ✅ verified (evidence: The actual file content reads: "A single interface across all of your secrets. Pull in Vault, AWS Secrets Manager, Azure Key Vault, and more, plus support for short-lived creds with OIDC" under the Pulumi ESC secrets management card — this…; source: repo:content/_index.md (L305-311))
  • L307 in content/_index.md "Pulumi ESC supports short-lived credentials via OIDC." → ✅ verified (evidence: Pulumi's own product page for secrets-management states: "Generate just-in-time, short-lived credentials via OIDC. Automatically revoke access when leases expire," directly corroborating the homepage claim that Pulumi ESC supports short-li…; source: pulumi/docs:content/product/secrets-management.md)
  • L311 in content/_index.md "Pulumi's secrets management product page is located at /product/secrets-management/." → ✅ verified (evidence: The docs repo contains content/product/secrets-management.md (confirmed via GitHub API listing of content/product/), which Hugo routes to the URL /product/secrets-management/ as referenced in content/_index.md's cta_link.; source: gh api repos/pulumi/docs/contents/content/product (lists secrets-management.md))
  • L312-314 in content/_index.md "Pulumi Insights & Governance allows users to find managed and unmanaged resources across clouds using natural language queries." → ✅ verified (evidence: The dedicated product page content/product/insights-governance.md states: "Search and govern every resource across all your cloud, including unmanaged resources, with natural language queries and full configuration history," and elsewhere…; source: repo:content/product/insights-governance.md)
  • L312-314 in content/_index.md "Pulumi Insights & Governance can enforce policies, track compliance in real-time, and find vulnerabilities before they become incidents." → ✅ verified (evidence: content/_index.md itself states: "Use natural language queries to find managed and unmanaged resources — even across clouds. Enforce policies, track compliance in real-time, and find vulnerabilities before they become incidents." matching…; source: repo:content/_index.md L312-314; repo:content/pricing/_index.md (Insights & Governance section))
  • L318 in content/_index.md "Pulumi's insights & governance product page is located at /product/insights-governance/." → ✅ verified (evidence: Repo search confirms content/product/insights-governance.md exists and is consistently linked as /product/insights-governance/ throughout the docs repo (header_nav.yaml, footer.yml, other content pages), matching the cta_link in content/_i…; source: gh search code --owner pulumi "insights-governance" (pulumi/docs:content/product/insights-governance.md))
  • L319-321 in content/_index.md "Pulumi's self-service infrastructure offering lets platform teams define golden paths for approved infrastructure using configurable components and customizabl…" → ✅ verified (evidence: Sibling product page content/product/internal-developer-platforms.md states: "Build golden paths with reusable components and templates. Enable self-service provisioning through code, YAML, or developer portals — with governance built in,"…; source: repo:content/product/internal-developer-platforms.md, repo:content/docs/idp/concepts/_index.md)
  • L325 in content/_index.md "Pulumi's internal developer platforms product page is located at /product/internal-developer-platforms/." → ✅ verified (evidence: The file content/product/internal-developer-platforms.md exists in pulumi/docs, and the same path /product/internal-developer-platforms/ is used consistently as the cta_link in content/_index.md, content/product/_index.md, data/footer.yml,…; source: gh search code --owner pulumi "internal-developer-platforms" (pulumi/docs:content/product/internal-developer-platforms.md, content/_index.md line 325))
  • L329 in content/_index.md "Pulumi is trusted by 4,000+ innovative companies." → ✅ verified (evidence: Pulumi's own homepage currently states: "Trusted by over 4,000 innovative companies" matching the claim's exact figure.; source: https://www.pulumi.com/)
  • L356-361 in content/_index.md "This PR adds a 'latest_posts' section to the homepage titled 'What's new at Pulumi' that displays 3 items and includes events (show_event: true)." → ➖ not-a-claim (evidence: content/_index.md lines 356-361 literally contain type: latest_posts, title: What's new at Pulumi, count: 3, and show_event: true — this is a faithful description of the PR's own homepage data change, not a checkable third-party as…; source: repo:content/_index.md)
  • L358-360 in content/_index.md "The homepage's latest-posts section description states it contains deep dives, product news, and live workshops from the Pulumi team." → ➖ not-a-claim (evidence: The line in content/_index.md literally reads: description: Deep dives, product news, and live workshops from the Pulumi team. This is the PR's own homepage copy being described, not a third-party factual assertion to verify.; source: repo:content/_index.md#L358)
  • L361 in content/_index.md "anchor: latest-posts" → ➖ not-a-claim (evidence: anchor: latest-posts is a section identifier/slug used by the page's own layout config (paired with type: latest_posts), not a falsifiable claim about recency.; source: repo:content/_index.md L356-361)
  • L374 in content/_index.md "A Twitter user (@BryanMigliorisi) is quoted saying Pulumi is a game changer that blows away CloudFormation, Terraform, and CDK." → ✅ verified (evidence: The file content/_index.md contains the tweet attributed to @BryanMigliorisi with linked tweet URL, text: "There is no way around the fact that devops is complicated but @pulumicorp is a game changer for me. Blows away CloudForamtion, Terr…; source: repo:content/_index.md (lines 369-374))
  • L380 in content/_index.md "A Twitter user (@justedagain) is quoted saying they switched from Terraform to Pulumi two years back and that using Terraform for their current use case would…" → ✅ verified (evidence: Source file quotes @justedagain: "As a prior Terraform user, the grass is substantially greener on this side. I'm so glad I made the switch two years back. Using Terraform for my current use case would be a massive downgrade." This matches…; source: repo:content/_index.md L376-380)
  • L386 in content/_index.md "A tweet from @hossambarakat_ recommends giving Pulumi a shot." → ✅ verified (evidence: The content file's social proof section attributes to @hossambarakat_ the tweet text: "Give Pulumi a shot and you will never look back @pulumicorp" — directly matching the claim that the tweet recommends giving Pulumi a shot.; source: repo:content/_index.md (lines 381-386))
  • L392 in content/_index.md "A Twitter user (@ddoomen) is quoted saying deploying cloud resources using Pulumi is amazing compared to using JSON, YAML, or other DSLs." → ✅ verified (evidence: The file content/_index.md at line 392 contains the testimonial attributed to @ddoomen: "Deploying cloud resources using @pulumicorp is just amazing. Why would anybody bother with JSON, YAML or some other DSL?" which matches the claim's pa…; source: repo:content/_index.md)
  • L398 in content/_index.md "A Twitter user (@meliora245) is quoted saying they used Pulumi with TypeScript for IaC managing Kubernetes and stateful databases and don't see themselves goin…" → ✅ verified (evidence: The file content/_index.md L393-398 contains exactly this testimonial: username "@meliora245", text "Been using Pulumi with Typescript for a IaaC managing k8s and stateful databases. Don't see myself going back to using terraform after thi…; source: repo:content/_index.md)
  • L404 in content/_index.md "The tweet by @rybavery links to https://pulumi.com/docs/iac/comparisons/terraform/ as a Pulumi vs. Terraform comparison page." → ➖ not-a-claim (evidence: The line in content/_index.md is a stored tweet testimonial where "Pulumi" mentions appear to be auto-linkified/substituted with docs URLs (compare the @swarupdonepudi tweet which similarly embeds "https://www.pulumi.com/docs/using-pulumi/…; source: repo:content/_index.md (lines 399-404, 417-424))
  • L404 in content/_index.md "A Twitter user (@rybavery) is quoted saying their team at devseed is gravitating toward using Pulumi instead of Terraform because it's all in Python, making it…" → ✅ verified (evidence: The file at content/_index.md L400-404 contains this exact tweet attributed to @rybavery: "our team at @DevSeed is now gravitating toward using ... pulumi ... instead of terraform because it's all in python so it is easier to onboard new p…; source: repo:content/_index.md (L400-404))
  • L410 in content/_index.md "A Twitter user (@sparkycodes) is quoted saying it wouldn't have been possible to build 'Sparky' without Pulumi." → ✅ verified (evidence: content/_index.md contains a testimonial entry: username "@sparkycodes", text: "It wouldn't have been possible to build Sparky without @pulumicorp. Shout out to the team and community for helping us get up and running!" — matching the clai…; source: repo:content/_index.md (lines 405-410))
  • L416 in content/_index.md "A tweet from @krangarajan states their new job uses Pulumi to manage AWS infrastructure, and after using Pulumi imports and writing tests, they became a conver…" → ✅ verified (evidence: The file contains the exact tweet text: "New gig uses @pulumicorp to manage AWS infra. Initially I was skeptical and was tempted to go back to Terraform, but after using pulumi imports and discovering the ability to write tests easily, I'm…; source: repo:content/_index.md (L411-416))
  • L421-424 in content/_index.md "A tweet from @swarupdonepudi states that Pulumi is about 50% of the reason they dared to build planton.cloud, and that an equivalent of 50,000 lines of declara…" → ✅ verified (evidence: The file content/_index.md (L417-424) quotes the tweet verbatim: "I love @pulumicorp so much because it is like 50% of the reason why we dared to build https://planton.cloud. An equivalent of 50K lines of declarative infra code has been pu…; source: repo:content/_index.md)
  • L50 in layouts/partials/events/event-card.html "<span data-event-countdown data-event-date='{{ $datetime | time.Format '2006-01-02T15:04:05Z07:00' }}' hidden>" → ➖ not-a-claim (evidence: This is a Hugo template line using the time.Format function with the standard Go reference layout to render an event's datetime as a data attribute for a countdown script. It is implementation code, not a falsifiable factual assertion.; source: layouts/partials/events/event-card.html (reviewed file, code snippet))
  • L76 in layouts/partials/events/event-card.html "with {{ range $i, $p := . }}{{ if $i }}, {{ end }}{{ $p.name }}{{ end }}" → ➖ not-a-claim (evidence: This is a Go template code snippet from event-card.html that renders a comma-separated list of names ($p.name) with "with" prefix; it is a faithful representation of the PR author's own template logic, not a falsifiable factual/numerical c…; source: layouts/partials/events/event-card.html (file under review))
  • L5 in layouts/partials/events/upcoming.html "An event counts as upcoming until 24 hours after its start time, so a session" → ➖ not-a-claim (evidence: (escalated from pass3) The line is a code comment describing the template's own logic, and the actual template code confirms it: $endUnix := add (.Params.sortable_date | time.AsTime).UnixMilli (duration \"hour\" 24).Milliseconds and `if…; source: repo:layouts/partials/events/upcoming.html)

🚨 Outstanding in this PR

No outstanding findings in this PR.

⚠️ Low-confidence

No low-confidence findings.

💡 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-03T18:59:33Z — No blockers: verified the event-card refactor left no stale call sites, every referenced partial and .btn class exists, and feed.html's new pool key resolves; visual render still unverified because the build preflight was skipped. (f734b23)

  • 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 3, 2026
@jeffmerrick
jeffmerrick requested a review from cnunciato August 3, 2026 19:05
@pulumi-bot

pulumi-bot commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Your site preview for commit bb3977b is ready! 🎉

http://www-testing-pulumi-docs-origin-pr-20665-bb3977b5.s3-website.us-west-2.amazonaws.com

Changed pages:

@pulumi-bot

pulumi-bot commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Lighthouse Performance Report

Commit: bb3977b | Metric definitions

Page Device Score FCP LCP TBT CLS SI
Homepage Mobile 🔴 30 3.2s 12.4s 2627ms 0.099 8.2s
Homepage Desktop 🟡 83 0.8s 1.4s 195ms 0.037 2.8s
Install Pulumi Mobile 🟡 56 6.0s 9.0s 112ms 0.053 8.5s
Install Pulumi Desktop 🟡 79 1.4s 2.1s 0ms 0.005 3.0s
AWS Get Started Mobile 🟡 55 5.9s 9.3s 13ms 0.099 8.3s
AWS Get Started Desktop 🟡 81 1.3s 1.9s 0ms 0.029 2.9s

The row took the newest posts straight off blog/feed.html's `pool`, so a post
pinned in blog_home.yaml led the blog homepage but not the site homepage. Take
`first N (featured | append feed)` instead — the blog homepage's own reading
order — so the two pages agree and editing blog_home.yaml moves both.

`pool` is back to being internal to blog/feed.html now that nothing consumes it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention and removed review:no-blockers Claude review completed cleanly; outstanding is empty labels Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:infra PR touches workflows, scripts, infra, Makefile, or build config domain:mixed PR touches more than one domain domain:website PR touches marketing, pricing, legal, or competitive landing pages review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Surface blog posts on homepage

2 participants