Skip to content

Add session announcement sharing links & OG images - #119

Merged
didierkrux merged 14 commits into
mainfrom
add-session-announcement-cards
Aug 28, 2026
Merged

Add session announcement sharing links & OG images#119
didierkrux merged 14 commits into
mainfrom
add-session-announcement-cards

Conversation

@Scott1UP

Copy link
Copy Markdown
Collaborator

No description provided.

- Move DC8_TRACK_IMAGES + normalizeTrackName from social-cards/data.ts
  (which imports sharp, server-only) into track-images.ts so the session
  share page can resolve badge art client-side
- data.ts keeps the same getTrackImage behavior via getDc8TrackImagePath
- Replace the placeholder night scene + ticket-back card with the DC8 KV
  scene design (Dev Handoff 5058/5060 frames): glowing logo, CSS-built
  session card (gradient, track badge, Mumbai block, speakers, type/track
  pill), card-width actions row (Get tickets + X/Farcaster/copy share)
- New session-sharing.module.scss authored at the 1200x675 card spec in
  container-query units; desktop/tablet/mobile layouts per the frames
  (mobile: bottom-anchored stacked actions over a dark fade)
- Keep tilt/parallax, gyro flow, and Matomo share tagging; bake the logo
  glow into a PNG (live drop-shadow stacks dropped the page to 22fps) and
  declare backdrop-filter unprefixed (lightningcss drops the standard
  property when a -webkit- duplicate is present)
- Multi-speaker: overlapped avatar stack + joined names; 5+ speakers
  shrink the stack; long titles downscale with line clamps
- Update anti-flash/theme color to the new scene (#221144)
- New renderDc8Card in api/social/schedule/[id] (Dev Handoff 5060:6142):
  KV backdrop with a centered 965x481 card - logo, Mumbai date block,
  length-bucketed title, speaker avatars + names, type/track pill, track
  badge bleeding off the corner; radius 32 after review
- DC7/SEA sessions keep the original Inter renderer untouched
- Add Poppins Regular/Bold to public/fonts (loaded via poppinsFonts())
  and public/social/dc8/kv-bg.jpg (hero KV resized to render size)
- Update the docs asset-layout notes accordingly
@Scott1UP
Scott1UP requested a review from didierkrux August 26, 2026 22:00
@netlify

netlify Bot commented Aug 26, 2026

Copy link
Copy Markdown

Deploy Preview for devcon-monorepo ready!

Name Link
🔨 Latest commit 9e317ca
🔍 Latest deploy log https://app.netlify.com/projects/devcon-monorepo/deploys/6a91a7cc56047f00088e980c
😎 Deploy Preview https://deploy-preview-119--devcon-monorepo.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@Scott1UP Scott1UP changed the title Add session announcement cards Add session announcement sharing links & OG images Aug 26, 2026
Scott1UP and others added 11 commits August 28, 2026 13:40
New 570px octagon badges (one per track) plus the Devcon 8 India logomark
for Community-Led Sessions, mapped via DC8_TRACK_BADGES/DC8_CLS_BADGE.
The old DC8_TRACK_IMAGES art stays until the OG card redesign lands.
Dev Handoff 5058:2837/3511/4860, 5060:6752 (scenes), 5058:3193/3624/4774,
5068:4650, 5071:5730 (cards): 30% KV overlay, brighter/more fireflies,
share buttons at 80%/100% hover, speaker names under the title, octagon
track badges in the bottom-right corner (logomark + CLS-formatted chip
for [CLS] tracks), solo avatars ringed, and stronger CTA/share shadows.
"Workshop 1h" now renders as WORKSHOP on the session share card, matching
the existing parenthetical strip for Talk/Lightning Talk.
track-images.ts now owns the per-track card colors (DC8_TRACK_COLORS from
the YT/OG Figma frames), the type-label cleanup (parens + durations), and
the CLS chip/name helpers, shared by the session share page and the satori
cards. The OG route's old octagon art (DC8_TRACK_IMAGES + track-*.png) is
replaced by the round-2 badges everywhere and deleted.
New shared renderer (Dev Handoff 5068:1593 ff, 27 frames): per-track canvas
color, 50%-opacity white logomark watermark, octagon badge off the
bottom-right, title + speakers centered between header and footer, and the
CLS gradient/glyph default. Serves /api/social/schedule at 1200x630 and
/api/social/av at 1920x1080 (scale 1.6 on a 675 base); the old renderDc8Card
and the AV route's DC8 prism placeholder are gone, DC7/SEA renderers are
untouched. Adds Poppins Medium to poppinsFonts() and an svg entry to the
asset MIME map (satori silently dropped SVG data URLs typed image/png).
Full-resolution webp-to-PNG conversions made multi-MB data URLs; with 5+
avatars the satori SVG crossed libxml2's 10MB parse cap and the render
503'd. 384px covers the largest avatar render (DC7 AV, 176px) at 2x.
The CSS-built card is replaced by the /api/social/schedule/{id} render
(Figma 5071:6944), so the sharing page, link embeds, and the YouTube
archive all show one consistent card. The tilt/parallax interaction stays;
the gradient card face doubles as a loading placeholder with a fade-in,
since cold renders take seconds until og-cache is re-enabled. Radius on
the square-cornered JPEG is 40.33px at the 1200 basis (measured from the
Figma mock's alpha channel), image sized 781px @1440 per the frame.

Removes the now-dead card DOM and ~220 lines of card styles (badge, CLS
glyph, title buckets, avatar stack, track pill, narrow-card wrapping);
SessionShareTalk slims to id + title. The CLS/type label helpers live on
in track-images.ts for the satori renderer, and getStaticProps keeps the
full talk mapping for the SEA Hero path.
A light band sweeps the gradient every 2s (1.2s sweep + rest beat) while
the social image renders, removed once it loads; disabled under
prefers-reduced-motion.
- Reveal the card when its image loads before hydration (the SSR'd img fired onLoad before React attached it, so the card stayed invisible); failed renders now settle on the gradient instead of shimmering.
- Give the AV route the Pretalx fallback, so devcon8 thumbnails stop 503ing.
- Emit og:image/og:url against the deploy's own origin, not devcon.org.
- Accept an optional cache-buster segment (/schedule/devcon8/CODE/v2/) so a redesign can refresh cards already shared, mirroring /ticket.
- Align the actions row to the card width; clamp long track labels.
… generation

- Updated SessionSharingProps to replace pageUrl with shareBaseUrl, clarifying its purpose for generating share links.
- Modified shareUrlFor function to create unique share URLs with a cache-buster segment, ensuring fresh links for social sharing.
- Adjusted usage of SessionSharing in the SpeakerCard component to align with the new props structure.
- Introduced a new API route for rendering social cards, enhancing the consistency of shared content across platforms.
…improved sharing links

- Introduced a shareNonce state to generate unique cache-buster segments for share URLs, ensuring fresh links for social sharing.
- Updated shareUrlFor function to utilize the new nonce, improving consistency across sharing platforms.
- Replaced window.open calls with direct href attributes for social sharing links, enhancing user experience on mobile devices.
- Adjusted share button behavior to roll the nonce on click, maintaining unique URLs for each share action.
@didierkrux
didierkrux merged commit bbccc68 into main Aug 28, 2026
31 of 32 checks passed
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.

2 participants