Skip to content

feat(team): cleanup public team list + per-person bio pages#16

Merged
nadyyym merged 4 commits into
masterfrom
seo/team-bios-cleanup
May 7, 2026
Merged

feat(team): cleanup public team list + per-person bio pages#16
nadyyym merged 4 commits into
masterfrom
seo/team-bios-cleanup

Conversation

@nadyyym

@nadyyym nadyyym commented May 7, 2026

Copy link
Copy Markdown
Member

Summary

Public team page cleanup + per-person bio detail pages.

Team page cleanup

  • Remove aleks-zarovniannykh.md (no longer with company).
  • Remove svetoslav-ivanov.md (no longer with company).
  • Public /team/ now shows Vlad + Markelov only.

New per-person bio pages at /team/[slug]/

  • src/pages/team/[id].astrogetStaticPaths() over the team collection.
  • Renders name, role, bio, social links, "Posts authored" + "Posts reviewed" lists (filter blog by author === name and reviewedBy === name).
  • Emits Person JSON-LD via the existing personData wiring.
  • Optional markdown body in each team md gets rendered below the bio — room for extended bios without further schema changes.
  • TeamCard component links to the detail page (was index-only before).

Net sitemap change: +2 URLs (/team/vlad-nadymov/, /team/aleks-markelov/).

Reviewed-by infrastructure

The Article-JSON-LD reviewedBy field landed in PR #13. It's intentionally left unwired on every existing post — should only be applied per-post when there's been a real technical review. Recommendation in the plan: pilot on the n8n + Langfuse teardowns where Markelov can credibly sign off.

Stacked

Branched off seo/post-tldr-faq-frontmatter (PR #15). Will rebase against master after the prior batches land.

Test plan

  • /team/ shows Vlad + Markelov with "Read more →" links to detail pages
  • /team/vlad-nadymov/ and /team/aleks-markelov/ render with name, role, bio, social links
  • Person JSON-LD validates on the rich-results test
  • "Posts authored" lists posts where author === "Vlad Nadymov" (most posts) for Vlad's page
  • "Posts reviewed" sections render empty (no posts have reviewedBy set yet — by design)

🤖 Generated with Claude Code

nadyyym and others added 4 commits May 7, 2026 12:53
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>
…owns + 2 product updates

Fills in the GEO frontmatter introduced in PR #13 — extractable Quick Answer block above the fold + FAQPage JSON-LD + comparison facets for the /blog/teardowns/ hub (PR #14).

Posts updated:
- documenso-pricing-teardown
- firecrawl-pricing-teardown
- langfuse-pricing-teardown
- n8n-pricing-teardown
- plane-pricing-teardown
- twenty-crm-pricing-teardown
- beton-april-2026-update (TL;DR only, no FAQ — not FAQ-shaped)
- beton-late-april-2026-update (TL;DR + FAQ)

Each teardown gets:
- 100–150 word TL;DR — bullet-shaped, leads with the verdict, designed to be cited verbatim by ChatGPT/Perplexity.
- 4 FAQ Q/A entries derived from the post body. FAQPage JSON-LD now emits.
- pricingTable: license / freeTier / cheapestPaid / verdict — pulled into the /blog/teardowns/ comparison facets.

Body prose intact. Pure additive content edits.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Team page cleanup:
- Remove aleks-zarovniannykh.md (no longer with company)
- Remove svetoslav-ivanov.md (no longer with company)
- Public /team/ now shows Vlad + Markelov only.

New per-person detail pages at /team/[slug]/:
- src/pages/team/[id].astro — getStaticPaths over the team collection.
- Renders name, role, bio, social links, "Posts authored" + "Posts reviewed" lists (filter blog by author === name and reviewedBy === name).
- Emits Person JSON-LD via existing personData wiring.
- Optional markdown body in each team md gets rendered below the bio (room for an extended bio + writing history without schema changes).

TeamCard component links to the detail page (was index-only before). Net sitemap change: +2 URLs (/team/vlad-nadymov/, /team/aleks-markelov/).

Reviewed-by infrastructure (PR #13) stays unwired on existing posts — to be applied per-post only when there's been a real review.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
getbeton-ai-landings Ready Ready Preview, Comment May 7, 2026 8:05am

Request Review

@nadyyym nadyyym merged commit 0bddfa7 into master May 7, 2026
2 of 3 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant