From d656ec3d1097f057f1afc182b05a49e8c65c4499 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Mon, 17 Aug 2026 11:26:12 +0000 Subject: [PATCH] Per-card pages with card-art link previews, and consistency fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every card now has its own page — /cards/ for Series One and /hacking-legends/ for Series Two — so a legend can be shared as a link instead of a screenshot. Sharing: - Each page generates a 1200x630 opengraph-image at build time with the card art on the left and the stat line on the right. The card faces are 500x745 portrait, which X and LinkedIn refuse to render large, so a landscape composite is what actually shows the card in a preview. - All 77 OG images are prerendered by generateStaticParams; no runtime image work. SEO: - Canonical URLs on every page, Person JSON-LD on card pages, and sitemap.xml covering all 82 URLs plus robots.txt. - The card grids now link to the detail pages, so all 47 Series One permalinks are crawlable from /cards. Consistency, all now derived from the data rather than hardcoded: - Homepage said both 47 and 50 legends. The stat strip read "50"; it now reads cards.length, and gained the Series Two roster count. - Collector's Box advertised "All 16 cards" -> All 47 cards. - Homepage said Hacking Legends had no artwork while its own page showed 30/30 rendered. It now reports illustrated and locked counts from the roster. The "what ships next" list no longer promises illustration that already happened. Sourcing: - Hacker gains a required `sources` field, populated for all 30 entries. Every URL was fetched and returned 200 before being written in. - Sources render on the card page and in the expanded roster report, so the historical claims can be checked. RosterCard is an
rather than a