Skip to main content

πŸ”΄ Massive Release v2.471.1

⭐⭐ Moderate Complexity β€’ 14 commits β€’ 171 files
This 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

  • 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-streak metric 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
  • 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-streak as 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
  • Longest Streak Metric – New LeaderboardMetricFieldEnum.LongestStreak enum 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
  • 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.ts helper
  • 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.podiumColors object with optional per-position RGB hex values
  • buildPodiumColorVars() utility generates CSS variables for color mixing (55% light, 70% dark, 35% roof) using native CSS color-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_consent first-party cookie; SDK initializes only after acceptance
  • Session replay masking: maskAllInputs, maskTextClass, blockClass applied 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

dch@wenudj.com@dch7 commits β€’ +3,547 / -754 lines
tomcarroll09@duck.com@tomcarroll093 commits β€’ +2,654 / -988 lines
solicshop@gmail.com@solicshop3 commits β€’ +686 / -75 lines

Release Stats


v2.471.1 deployed on August 4, 2026