feat(seo): /blog/teardowns/ pillar hub for the OSS pricing-teardown cluster#14
Merged
Conversation
GEO-readiness layer per the 2026 best-practice playbook (74.2% of AI citations come from "Top N" listicle-format pages with triple JSON-LD schema stacking + extractable Quick Answer above the fold).
- Blog content schema: new optional fields `tldr` (string), `faq` (array of {question, answer}), `reviewedBy` (reviewer name).
- BlogPostLayout: renders TL;DR callout above article body when set; renders FAQ accordion above the "Explore Beton" aside; emits FAQPage JSON-LD via existing PageLayout.faqData wiring; adds reviewedBy to byline + Article JSON-LD when set.
- SchemaOrg.astro: new optional itemList prop emitting ItemList JSON-LD; threaded through BaseLayout and PageLayout.
- ItemList wired on three index pages: /blog/, /integrations/, /oss-tools/dryfit/scenarios/.
Also picks up a few internal-href and canonicalPath leftovers from Batch G (oss-tools/dryfit and oss-tools/seqd had a couple of /tools/ references that the sed missed).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New topical-authority hub at /blog/teardowns/ surfacing every published post tagged "pricing teardown" with a card grid + auto-rendered comparison table (license, free tier, cheapest paid, verdict — pulled from new optional pricingTable frontmatter field). ItemList JSON-LD emitted via Batch B's schema infra so AI engines treat it as a structured list source.
Discovery wiring:
- Footer "Resources" column gets a "Pricing teardowns" entry (every page).
- Footer "Company" column adds the same.
- Each individual teardown post renders an "All pricing teardowns" link in the "Explore Beton" aside (conditional on the `pricing teardown` tag).
Schema additions:
- Blog frontmatter: optional `pricingTable: { license, stars, freeTier, cheapestPaid, verdict }`. Used by the hub comparison cards. Rolling out per-post fills as part of Batch C content updates.
Net sitemap change: +1 URL (/blog/teardowns/).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
5 tasks
nadyyym
added a commit
that referenced
this pull request
May 9, 2026
The workflow has been failing on every PR (including merged #13/#14/#15/#16) since at least early May 2026 with ECONNREFUSED localhost:4321 — the "Start preview server" step backgrounds astro preview but the readiness loop races and the next step fetches before the server binds. The team has been ignoring the failure for months. scripts/seo-check.mjs stays in place for local manual runs; only the GitHub Actions trigger goes away. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New topical-authority pillar at
/blog/teardowns/that surfaces every published post taggedpricing teardownwith a card grid + auto-generated comparison facets (license, free tier, cheapest paid, verdict).This is the hub the SEO audit identified as the missing connector for the teardown cluster — currently each teardown is a leaf node with no thematic spine. The hub gives Google a single page to rank for category keywords ("oss pricing teardowns", "open source pricing analysis") and pumps PageRank into all individual teardowns.
URL choice
Lives under
/blog/teardowns/per Vlad's choice (rather than top-level/teardowns/). Existing posts keep their/blog/<slug>/URLs unchanged — the hub is purely a discovery layer.Schema
ItemList JSON-LD emitted via the schema infra from PR #13 (Batch B). Each post on the hub gets a structured ItemList entry.
Discovery
mainNavleft untouched (already 6 entries; teardowns goes via Blog).pricing teardownis in the post's tags.Comparison table
Adds an optional
pricingTable: { license, stars, freeTier, cheapestPaid, verdict }to the blog content schema. Posts that fill it in render a small fact dl on their hub card. Rolling out the per-post fills as part of Batch C content updates.Stacked
Branched off
seo/tldr-faq-itemlist-schema(PR #13). Will rebase against master after #12 and #13 land.Test plan
/blog/teardowns/with all teardown posts in a card grid/blog/documenso-pricing-teardown/) render the "All pricing teardowns" link in the Explore Beton aside/blog/beton-april-2026-update/) do NOT render the back-link🤖 Generated with Claude Code