Article pages have no og:title / og:description / og:image / twitter:card meta tags. Sharing any review URL on Twitter / LinkedIn / Slack / iMessage shows a bare URL with no preview — kills the viral surface that should be free.
Scope
layouts/default.stx(or a sibling helper): expose a way for individual views to push OG / Twitter meta into the head.views/article/[id].stx/ArticleView.stx: emit:og:title— "Hon. Roberts — review on Bench Review" (or use review title)og:description— first 150 chars of the review's stripped textog:image— judge's photo (already on the model), 1200x630 idealog:url— canonical URLog:type—articleog:site_name— Bench Reviewtwitter:card—summary_large_imagetwitter:title/twitter:description/twitter:image— mirrors of OG
- Same treatment on
/judges/{id}/profile,/court-houses/{id}/profile,/user/{id}(once that lands).
Acceptance
- Pasting a review URL into Twitter / LinkedIn / Slack / iMessage produces a rich preview with the judge name, review snippet, and judge photo.
- LinkedIn Post Inspector / Twitter Card Validator both green-check the page.
- Default fallback (home page, list pages) gets a generic Bench Review card.
Files to touch
resources/layouts/default.stxresources/components/Bench/ArticleView.stxresources/components/Bench/Judge/ProfileHeader.stxresources/components/Bench/Court/CourtHeader.stx