Skip to content

feat(seo): expand structured data with shared jsonld helpers (#126) - #140

Open
Escelit wants to merge 1 commit into
wraith-protocol:developfrom
Escelit:feat/structured-data-expansion-126
Open

feat(seo): expand structured data with shared jsonld helpers (#126)#140
Escelit wants to merge 1 commit into
wraith-protocol:developfrom
Escelit:feat/structured-data-expansion-126

Conversation

@Escelit

@Escelit Escelit commented Aug 25, 2026

Copy link
Copy Markdown

Summary

Generalizes the ad-hoc Article JSON-LD in CaseStudies.tsx into a typed src/utils/jsonld.ts helper module and closes the structured-data coverage gaps across the site.

Changes

  • New src/utils/jsonld.ts: typed helpers organization(), article(), faqPage(), howTo(), breadcrumbList() (plus exported SITE_URL).
  • CaseStudies.tsx: refactored to consume article() + now emits a BreadcrumbList on /case-studies/:slug.
  • Blog.tsx: emits an Article per blog post (from MDX frontmatter) + BreadcrumbList on both the list and /blog/:slug.
  • Faq.tsx: emits a FAQPage built from src/data/faq.json.
  • Grants.tsx: emits a HowTo for the grant application steps derived from wave.
  • New BlogAuthor.tsx + /blog/author/:id route: emits a BreadcrumbList (closes the third nested-route gap).
  • scripts/validate-jsonld.mjs: rebuilds every emitted blob from real data and validates it against a local schema.org structural validator. Wired into CI via pnpm validate:jsonld.

Acceptance

  • Every blog post emits a valid Article block
  • /faq emits a valid FAQPage block with every Q&A
  • Nested routes emit BreadcrumbList (/case-studies/:slug, /blog/:slug, /blog/author/:id)
  • Validator script exits 0 in CI
  • Build passes (tsc + vite build green)
  • Lighthouse SEO unchanged (adds structured data only)

Test plan

  • pnpm validate:jsonld → all 8 blobs valid, exits 0
  • pnpm build → green
  • pnpm format:check → clean

Closes #126

@drips-wave

drips-wave Bot commented Aug 25, 2026

Copy link
Copy Markdown

@Escelit Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

@Escelit is attempting to deploy a commit to the truthixify's projects Team on Vercel.

A member of the Team first needs to authorize it.

@truthixify

Copy link
Copy Markdown
Contributor

Thanks @Escelit. Conflicts on src/pages/Blog.tsx against #136.

This is the last of the three in the order I suggested on #138, since the BreadcrumbList here covers the /blog/author/:id route that #138 adds. Worth rebasing after those two land so you only do it once.

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.

Structured data expansion (Organization, FAQPage, Article, HowTo)

2 participants