← gitpulse
Merged
Size
XL
Change Breakdown
New Feature70%
Refactoring15%
Bug Fix15%
#7feat(releases) phase C: frontend — Special Edition cards, list, detail

Release editions surface on homepage and at /releases/

The homepage now displays release editions above PR features, and a new /releases/ section lists every release with hero cards, compact rows, and full detail pages with changelogs.

Release data now appears across the site as "Special Edition" cards — on the homepage feed and at dedicated release pages. Visitors landing on /releases/ see a hero card for the latest release, followed by standard and compact listings of older editions. Each release detail page displays the release tagline, a stat bar showing PR count and contributors, top stories from that release period, and a full changelog linking back to individual stories.

The components are ports from gitsky, adapted for this site's single-repo model: owner and repo name chips were stripped, imageUrl fields removed, the stat bar reduced from six to four cells (dropping Highlights and Coverage metrics), and client-side panel navigation replaced with simple Link components. A UTC date formatter ensures release dates don't shift unexpectedly on hosts in different time zones.

Canonical URLs are enforced — alternate slugs for the same release tag now return 404 rather than serving duplicate content. The sitemap includes /releases/ and each individual release entry. Open Graph images are generated for social sharing at 1200×630, handled automatically by the existing rename-og-png postbuild script.

For sites with no releases yet (the current state of znat/gitpulse), a sentinel workaround prevents Next.js 16's static export from failing on an empty generateStaticParams — the route emits a placeholder that 404s until the first real release is tagged.