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.