π΄ Massive Release v2.471.1
ββ Moderate Complexity β’ 14 commits β’ 171 filesThis release brings powerful customization controls to your leaderboards and challenges, enhanced admin analytics for swipe-to-discover challenges, and important privacy hardening for analytics compliance. Admins can now fully brand their leaderboard podiums, toggle educational modals per-community, and view aggregated results for interactive challenges.
Whatβs New
- Brand Your Leaderboard Podiums β Configure exact colors for first, second, and third-place positions to match your communityβs theme
- Swipe-to-Discover Challenge Analytics β View comprehensive aggregated results and performance metrics for interactive swipe challenges
- Longest Streak Leaderboard Metric β New leaderboard type showcases user streaks alongside points and XP
- Community-Level Modal Controls β Disable educational info modals per-community for streamlined user experiences
- Enhanced Privacy Compliance β PostHog consent controls now hardened with explicit deny flows and withdrawal mechanisms
- Mobile UI Improvements β Better community title wrapping and improved responsive layouts across the app
- Security Enhancements β Stricter shared-hosting allowlist validation and improved quick-actions container protection
Apps Updated
User App
β Updated - Leaderboard theming, modal controls, UI polish
API
β Updated - Swipe-to-discover metrics, leaderboard types, models
Admin
β Updated - Challenge results UI, leaderboard configuration, analytics
MCP Server
β Updated - Tool schema updates for new metrics
Games
β No changes
Detailed Changes
User App
User App
- Leaderboard Podium Colors β Podium first, second, and third-place positions now render with admin-configured colors, with automatic shade/tint variations for visual depth
- Info Modal Toggles β XP info, coins/points info, rewards info, streak info, leaderboard info, effects info, and referral info modals can all be disabled at the community level
- Longest Streak Leaderboard β Leaderboard columns now support the new
longest-streakmetric type with formatted time-period display - Mobile Layout Fixes β Community titles now properly wrap on mobile devices, preventing text overflow
- Challenge Complete Flow β XP step in the challenge completion immersive flow now references longest-streak metric when available
Admin
Admin
- Swipe-to-Discover Challenge Results β New dedicated results UI in challenge analytics showing aggregated statistics for interactive swipe challenges
- Challenge Results Computation β Server-side computation of swipe-to-discover performance metrics including completion rates and aggregate analytics
- Leaderboard Metric Selection β Basic info step in leaderboard form now includes
longest-streakas a selectable metric option - Brand Kit Improvements β Added safeguards against preview image failures in the brand kit settings
- Settings Polish β Save buttons now consistently styled across Shopify settings sections and modals
API
API
- Longest Streak Metric β New
LeaderboardMetricFieldEnum.LongestStreakenum value for leaderboard configuration - Swipe-to-Discover Aggregation β New service layer helpers and validators for computing aggregated challenge results
- Event Aggregation Config β Shared configuration helpers for determining which event types contribute to different metrics
- Leaderboard Schema Updates β Admin and integration schemas now include longest-streak metric in leaderboard configuration validation
MCP Server
MCP Server
- Tool Schema Updates β Leaderboard mappers and schemas now reference the new longest-streak metric
- Quick Actions Protection β Improved container protection logic for quick-actions tool responses
- Replay Test Coverage β MCP replay test corpus extended with longest-streak examples
Admin Highlights
- Leaderboard Podium Customization β Configure custom RGB hex colors for first, second, and third-place podium positions; automatic color mixing generates semi-transparent shades for roofs and cards
- Swipe-to-Discover Analytics Dashboard β View aggregated performance data for interactive swipe-to-discover challenges with user participation and completion metrics
- Longest Streak Leaderboard Creation β New leaderboard metric type to showcase the longest active streaks across your community members
- Per-Community Modal Visibility β Toggle educational info modals (XP explained, coins explained, streak info, rewards guide, effects guide, leaderboard rules, referral info) on a per-community basis without code changes
- Enhanced PostHog Privacy Controls β Strengthened consent flows with explicit deny options, session replay masking, consent withdrawal with page reload, and improved consent audit logging
- Brand Kit Security β Safeguards against missing or broken preview images in brand kit sections
- Shopify Settings UX β Consistent primary button styling across all Shopify settings dialogs and modals
User Highlights
- Themed Leaderboard Podiums β First, second, and third-place podiums now display in your communityβs custom brand colors instead of generic gold/silver/bronze, creating a more cohesive visual experience
- Cleaner User Interfaces β Communities can disable educational info modals for a streamlined, less modal-heavy user experience if desired
- Streak Recognition β New leaderboard type highlights members with the longest active streaks, fostering momentum-based engagement
Breaking Changes
None in this release.Technical Notes
Swipe-to-Discover Results Architecture
- Moved band validation logic from individual challenge endpoints into a shared
get-event-aggregation-config.tshelper - Results computation runs server-side in the admin results route (
/api/challenges/v2/results) - Aggregation config determines which events contribute to specific challenge result metrics
Leaderboard Color Customization
- Podium colors derive from
community.theme.podiumColorsobject with optional per-position RGB hex values buildPodiumColorVars()utility generates CSS variables for color mixing (55% light, 70% dark, 35% roof) using native CSScolor-mix()function- Colors gracefully degrade: missing/invalid hex values are skipped and fall back to default theme colors
PostHog Privacy Hardening
- Consent stored in
nudj_cookie_consentfirst-party cookie; SDK initializes only after acceptance - Session replay masking:
maskAllInputs,maskTextClass,blockClassapplied at init time - Consent withdrawal reloads page and clears analytics state before banner reappears
- All AI observational telemetry (Vercel AI tracing) gated behind consent with
recordInputs: false/recordOutputs: false
Contributors
@dch7 commits β’ +3,547 / -754 lines
@tomcarroll093 commits β’ +2,654 / -988 lines
@solicshop3 commits β’ +686 / -75 linesRelease Stats
v2.471.1 deployed on August 4, 2026

