Bundles everything since v0.22.0:
Success-stories wall (/stories)
- Public, no-login moderated submission form (zod validation, honeypot,
IP rate-limit) feeding an admin approval queue — same trust model as the
opportunities review queue. - Empty-wall guard: only renders once there are 3+ approved stories.
- Modern card treatment: colored initials avatars, decorative quote marks,
alternating tilt that straightens on hover, staggered fade-in, 3-column
layout on desktop. - Added to the header nav (with a mobile nav-overflow fix alongside it).
PWA polish
- iOS home-screen icon + meta tags (apple-icon, appleWebApp metadata,
theme-color) — iOS Safari ignores the web manifest entirely, so without
these "Add to Home Screen" fell back to a plain screenshot thumbnail. - Offline fallback page, cached by the service worker and served on failed
navigations instead of the browser's default connection-error screen. - Richer manifest (id, scope, shortcuts for Submit / My saved items).
- Custom install-prompt component (Chrome/Edge/Android) on the account page.
Fixes
- Eligibility-profile "Matches you" badge now matches on either
audience or region (was requiring both, which meant most researcher-
tagged opportunities — nearly all Global/Remote — could never match a
UK-based profile). - Light-theme contrast fixes: the About page pull-quote panel and two
lime-colored links were unreadable in light mode.
Migration: 20260710000000_stories.sql.