fix(seo): point the shell's default card at the crest - #87
Open
Amitoj02 wants to merge 2 commits into
Open
Conversation
DEFAULT_CARD_IMAGE was banner.png, a frame of Holdfast gameplay. It is the card for every shell-rendered page that has nothing of its own to show — the roster, an empty calendar, the generic card, a member with neither an avatar nor a banner — so all of them unfurled as the same anonymous battlefield under the regiment's name. It now names social-card.png, the crest centred on --ink-900 at 1200x630, and the declared dimensions move with it (853x480 -> 1200x630) because an unfurler lays the embed out from those numbers before the fetch lands. The precedence above it is untouched. An owner-set hero or regiment banner still wins on /home: the crest is the answer for a page nobody has spoken for, not an override of one.⚠️ COUPLED RELEASE with lords-regiment-dashboard T-0311. The asset ships in the Angular build and is served from this origin, so this constant is a cross-repo reference — deployed ahead of the web image it emits a card URL that 404s. 1292 tests green, eslint + prettier clean. Claude-Session: https://claude.ai/code/session_01QCDE7JStcg5XSdtvuLsLYb
Amitoj02
force-pushed
the
fix/link-preview-logo-card
branch
from
August 6, 2026 02:54
28f3f88 to
c8d2573
Compare
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.
The API half of a two-repo change. Frontend twin: lords-regiment-dashboard #78 — these must ship together, or the frontend first.
Why
DEFAULT_CARD_IMAGEwasbanner.png, a frame of Holdfast gameplay. It is the card image for every shell-rendered page with nothing of its own to show — the roster, an empty calendar, the generic card, a member with neither an avatar nor a banner — so all of them unfurled as the same anonymous battlefield under the regiment's name.What changed
DEFAULT_CARD_IMAGEnow names/assets/images/social-card.png: the regiment crest centred on--ink-900at 1200x630.DEFAULT_CARD_WIDTH/HEIGHTmove with it (853x480 → 1200x630) because an unfurler lays the embed out from those numbers before the image fetch lands.Wide rather than square is deliberate and is explained in the constant's docblock: the crest on its own is 256x256, and Discord inspects the real file and demotes a square image to a thumbnail whatever
twitter:cardclaims. The ink field is what buys the large card.What deliberately did NOT change
/homeprecedence.presentation.heroBannerUrl → bannerUrl → defaultis untouched. An owner who has uploaded a hero in Settings has said what that page's card should be; the crest is the answer for a page nobody has spoken for, not an override of one.The asset ships in the Angular build and is served from this origin, so this constant is a cross-repo reference this repo cannot verify. Deployed ahead of the web image it emits a card URL that 404s.
banner.pngis deliberately still present in the frontend build, so the reverse order (web first) is safe.Verification
jest: 1292 tests, 54 suites, all green. The two SEO assertions that pinnedbanner.pngnow pinsocial-card.png.eslint+prettier --checkclean;tsc --noEmitclean./rosterand/u/<slug>emitting the new URL, and that URL returning 200.Blueframe: T-0302.
https://claude.ai/code/session_01QCDE7JStcg5XSdtvuLsLYb