Skip to main content

πŸ”΄ Release v2.213.3

⭐⭐⭐ Complexity β€’ 22 commits β€’ 336 files changed
v2.213.3 brings a comprehensive redesign of admin analytics, powerful CSV bulk import for rewards, production-grade observability with OpenTelemetry, and game-changing features for community engagement including action hints, birthday questions, and improved Shopify onboarding. This massive release focuses on streamlining community manager workflows, delivering better insights into engagement metrics, and improving end-user experience across platforms.

What’s New

  • Completely redesigned analytics dashboard with real-time engagement timeline, interactive stat cards, and community activity heatmaps
  • CSV bulk upload for reward winners β€” import hundreds of eligible users at once with automatic verification
  • Action hints system β€” guide users with optional hints while penalizing rushed answers, configurable per challenge
  • Birthday question action type β€” collect birthdates with calendar UI and automatic age validation
  • Shopify onboarding replaced with server-verified checklist β€” faster, more reliable onboarding with instant completion tracking
  • Split wallet layout β€” separate navigation for Points, Streaks, and Rewards with custom theme support
  • OpenTelemetry observability β€” replaced Sentry with production-grade distributed tracing via BetterStack
  • Localized game defaults β€” French and German text templates for all game types

Apps Updated

User App

βœ“ Updated - 8 changes

API

βœ“ Updated - 11 changes

Admin

βœ“ Updated - 15 changes

MCP Server

βœ“ Updated - 1 change

Website

β€” No changes

Games

β€” No changes

Detailed Changes

Admin Highlights

  • Analytics Suite Redesign – Completely overhauled engagement dashboard with timeline charts, stat cards showing live metrics (active users, completion rates, earning trends), and community activity calendar with drill-down capability
  • CSV Bulk Upload for Rewards – Import CSV files with user identifiers to instantly qualify hundreds of users for reward drops, eliminating manual entry
  • Localized Game Text Defaults – Automatic French and German text templates for Catch, Flick, Memory, and Scratch games, reducing setup time for international communities
  • Draft Reward Support – Save incomplete reward configurations and publish later, enabling content planning workflows
  • Preview Auth Restoration – Fixed admin preview modal authentication to properly display content previews for challenges, rewards, and achievements
  • Reward Sidebar Fixes – Improved sidebar UI consistency across reward creation and editing workflows
  • Select-from-List Button Fix – Show β€œAdd Option” button even when field has 6+ existing options
  • Engagement Stat Cards – New dashboard stat cards showing users active now, upcoming completions, and trending engagement patterns
  • Achievement Configuration Badges – Visual badges showing achievement type, distribution method, and rewards status at a glance
  • Challenge Stats Redesign – Enhanced challenge statistics page with improved timeline visualization and action completion tracking

User Highlights

  • Action Hints System – Challenges can now include optional hints that guide users through questions, with configurable XP penalties for using hints (e.g., -10% XP if hint used)
  • Birthday Question Action – New action type for challenges to collect user birthdates with calendar-based date picker and automatic age validation
  • Split Wallet Layout – New navigation structure with separate wallet tabs for Points, Streaks, Rewards, and Transactions, customizable per community theme
  • Wallet Page Improvements – Dedicated pages for wallet assets and entries with improved scrolling and filtering

Shopify Updates

  • Onboarding Checklist – Replaced multi-step wizard with server-verified completion checklist showing all required setup steps (branding, challenges, rewards, leaderboards) with instant feedback on completion status
  • Widget FAB Fix – Fixed Floating Action Button getting stuck at 0 opacity on storefront display
  • Programme Disable Button – Wired up programme disable toggle to properly update widget visibility API

API & Core Services

  • OpenTelemetry Integration – Migrated observability from Sentry to OpenTelemetry with BetterStack backend, providing distributed tracing, structured logging with context correlation, and automatic span enrichment with request metadata (procedure name, endpoint, user/org context, error details)
  • Action Hint Mutation – New reveal-action-hint mutation for tracking hint usage with automatic XP penalty calculation
  • Action Hint DTOs – Added ActionHintDto, ActionConfigDto with hint configuration fields, and EventActionHintUsedDto for event tracking
  • Games Pagination Filter – Added featured filter to games list endpoint for discovering featured games
  • Post Template Fixes – Fixed like count reset when creating post from template

Supporting Packages

  • Database Migrations – New migrations for action hints fields and birthday action XP config support
  • Models Updates – Extended ActionDto, ActionConfigDto, and ActionParticipationDto with hint-related fields; added ActionHintDto and EventActionHintUsedDto
  • Design System – Added calendar component with locale support for birthday question UI
  • API Client Schema – Updated admin and integration API schemas with new action hint and birthday action endpoints
  • Birthday question action with calendar date picker and age validation
  • New action hint system with XP penalty display
  • Split wallet layout with separate navigation tabs (Points, Streaks, Rewards, Entries)
  • Dedicated wallet assets and entries pages with modal and full-page views
  • Improved navigation drawer with wallet section visibility toggle
  • Enhanced calendar component with international locale support
  • OpenTelemetry trace instrumentation with structured span attributes (procedure name, endpoint, org/user context, error details)
  • Structured logging with context correlation and automatic heartbeat pinging
  • New reveal-action-hint mutation with XP penalty calculation
  • Birthday action support in action participation tracking
  • Featured filter for games pagination endpoint
  • Post template like count reset on creation
  • Additional language support for action attribute alignment in birthday actions
  • Completely redesigned analytics dashboard with community activity timeline, stat cards (active users, upcoming completions), and engagement patterns
  • New engagement callout strips with key metrics summary
  • Hero timeline visualization with event history drill-down
  • CSV bulk upload for reward user selection with file import and validation
  • Birthday action form with XP penalty override configuration
  • Localized game text defaults for French and German across all game types
  • Draft reward workflow support
  • Enhanced reward studio with proper sidebar layout
  • Challenge form improvements with split sidebar layout
  • Achievement configuration with visual badges
  • Post form sidebar reorganization
  • Challenge statistics redesigned with improved timeline charts
  • Leaderboard sidebar layout enhancements
  • Updated Next.js configuration for OpenTelemetry compatibility

Technical Details

OpenTelemetry Architecture

The migration from Sentry to OpenTelemetry enables distributed tracing with automatic context propagation:
  • Traces: Collected via @vercel/otel with OTLPHttpJsonTraceExporter to BetterStack
  • Logs: Sent via @opentelemetry/sdk-logs with OTLPLogExporter for automatic log↔trace correlation
  • Span Enrichment: tRPC handler automatically adds procedure name, endpoint, org/user context, and error information to spans
  • Heartbeat Monitoring: Cron jobs ping BetterStack heartbeats for uptime monitoring (Parquet Drop, Leaderboard Daily/Weekly)
See CLAUDE.md for detailed BetterStack source IDs, query patterns, and observability configuration.

Database Migrations

  • 20260305220601-add_action_hints_fields.ts: Adds hint configuration, reveal count, and penalty fields to action collections
  • 20260306225016-add_birthday_action_to_xp_config.ts: Extends action birth month/year fields for birthday action support

Action Hints Configuration

{
  "hints": {
    "enabled": true,
    "text": "Hint for this question",
    "xpPenalty": 10  // percentage penalty (0-100)
  }
}

Contributors

Derek Counihan@erek_d@me.com8 commits β€’ +3,981/-1,612 lines

dchnudj@dch@wenudj.com6 commits β€’ +21,343/-6,604 lines

Zuhayry K@ZuhayrK005 commits β€’ +4,867/-78 lines

James Cockayne@jamescockayne1 commit β€’ +1,348/-1,702 lines

Saad@SaadK941 commit β€’ +218/-4 lines

Release Stats

MetricValue
Total Commits22
Lines Added+32,245
Lines Removed-9,958
Files Changed336
SizeπŸ”΄ Massive
Complexity⭐⭐⭐ Complex

v2.213.3 deployed on March 10, 2026