π΄ Massive Release v2.373.1
ββ Moderate β’ 15 commits β’ 232 filesWidget landing pages debut with standalone viewing, while games and achievements get critical fixes. Community members can now share widget links that open as full landing pages with hero sections and benefits. Games are fully translatable, achievements no longer award points when expired, and theme colors persist across saves. Admin onboarding is cleaner, and Shopify integration gets responsive navigation with smoother loading states.
Whatβs New
- Standalone Widget Landing Pages β Direct widget links now display as full branded landing experiences with hero sections, member counts, benefits, and FAQ instead of showing just the iframe
- Widget Landing Configuration β Admins can toggle standalone landing pages per community and customize content visibility (benefits, FAQ, join cards)
- Game UI Full Translations β Memory game and all game modals now support translations across UI text, buttons, and in-game messages
- Expired Achievements Fixed β Achievements past their claim window no longer award XP or appear as claimable; users see clear βexpiredβ state instead
- Theme Colors Persist β Challenge completion colors now save correctly when updating community theme settings
- Shopify Responsive Navigation β Shopify admin app now has responsive navigation and app-wide skeleton loading states for better mobile UX and loading feedback
- Admin Onboarding Simplified β Widget onboarding flow streamlined with clearer navigation and improved section organization
- Game Rendering Polish β Flick game ball stays on-screen on both desktop and widget, with proper image fallbacks for broken card images
Apps Updated
User App
β Updated - Widget landing, game translations, achievement expiry
API
β Updated - Achievement expiry logic, theme persistence, game configs
Admin
β Updated - Onboarding simplification, widget landing config, theme colors
MCP Server
β No changes
Website
β No changes
Games
β Updated - Full translation support, rendering fixes, memory card polish
Detailed Changes
User App β Widget & Achievements
User App β Widget & Achievements
Standalone Widget Landing Pages
When users visit a widget route directly (not in an iframe), they now see a professionally designed landing page instead of just the widget embed:- Hero Section β Community name, logo, customizable tagline, and headline with call-to-action
- Live Widget Preview β The actual widget rendered in a centered device frame on desktop, full-width on mobile
- Member Count & Social Proof β Shows community size and visitor activity, building trust for sign-ups
- Benefits Grid β Admin-configured list of program benefits and features
- FAQ Accordion β Frequently asked questions about the loyalty program
- Responsive Design β Desktop shows full layout with hero + device frame + benefits; mobile streamlines to widget + top bar for speed
- Join Card β Clear sign-in prompt for logged-out visitors with theme-aware styling
widget_standalone_landing_kill_switch allows instant global disable if needed.Achievement Expiry Protection
Achievements with claim windows now correctly handle expiry:- Expiry Check on Render β Achievement cards show βExpiredβ state when outside the claim window; claim button is disabled
- XP No Longer Awarded β Backend validation prevents XP credit when claim is attempted on expired achievements
- Clear User Messaging β Users understand why they canβt claim: βThis achievement expired on [date]β
- Accurate Aggregations β Achievement counts and dashboard totals no longer include expired achievements
Admin β Widget & Theme Management
Admin β Widget & Theme Management
Widget Landing Configuration
New admin controls in Brand Kit / Widget section for configuring standalone landing pages:- Enable/Disable Toggle β Turn standalone landing pages on or off per community
- Content Visibility Controls β Choose which sections display (benefits, FAQ, member count, join card)
- State-Based Display Rules β Show/hide content based on whether visitor is logged in or guest
- Seamless Integration β Works with existing widget theme and branding, no additional configuration needed
Theme Color Persistence
Challenge completion colors now save correctly when updating community theme:- Problem Fixed: Challenge complete colors would reset or disappear when saving other theme settings
- Solution: Theme color data now includes achievement completion styling in the persistence layer
- Impact: Admins can confidently customize challenge colors knowing theyβll stick across theme updates
Admin Onboarding Simplification
Widget onboarding flow has been reorganized for clarity:- Reduced Navigation Depth β Fewer menu levels to reach key widget configuration pages
- Clearer Section Organization β Related settings grouped logically (embedding, branding, configuration)
- Improved Defaults β Guest mode defaults properly applied in widget onboarding context
- Streamlined Walkthrough β Focused guidance on essential setup steps
Games β Translations & Rendering
Games β Translations & Rendering
Full Game UI Translation Support
Memory game and all game modals now support translations:- Modal Text Translatable β βPlay Gameβ, buttons, instructions, and game-over messages all support i18n
- In-Game Messaging β Score displays, timer text, and game state messages use the userβs language
- Configuration Defaults β Game text defaults are now translatable through the admin game config form
- 14+ Languages β All default text automatically available in English, Spanish, French, Portuguese, German, Chinese, and more
Game Rendering Fixes
Fixed critical rendering issues affecting gameplay:- Flick Game Ball On-Screen β Ball now correctly stays within bounds on desktop and widget views; physics no longer escape viewport
- Memory Card Image Fallback β Broken or missing card images no longer cause layout shifts; graceful placeholder handling
- Game Modal Stability β Play-game modals render correctly even when inside complex parent layouts (wizard contexts, journey actions)
- Device-Specific Adjustments β Mobile perf optimized with proper animation frame timing
Shopify β Navigation & Performance
Shopify β Navigation & Performance
API & Backend Services
API & Backend Services
Achievement Expiry Backend Validation
Backend now validates achievement expiry before awarding XP:- Expiry Window Check β Claim endpoint validates current time against achievement
claimStartDateandclaimEndDate - XP Prevention β If outside window, system returns error; no XP is credited
- Aggregation Filter β Achievement counts exclude expired achievements from totals
- Audit Trail β Claim attempts on expired achievements are logged for support debugging
Game Config Translation Enhancements
Game configuration now includes full translation support:- Text Content Model β Game config schema expanded to support translated text per language
- Default Translations β Built-in defaults for Memory game and Catch game text in all supported languages
- Admin Config Form β Game admin form allows per-language text entry
Admin Highlights
- Widget Landing Page Toggle β Enable standalone landing pages in Brand Kit with one click; customize which sections (hero, benefits, FAQ) display per login state
- Theme Color Persistence β Challenge completion colors now correctly save when updating community theme settings
- Game Translation Defaults β All game text (Memory, Catch, Flick) pre-translated in 14+ languages; admins can override per game
- Achievement Expiry Enforcement β Achievements outside their claim window show βExpiredβ state; XP is never awarded past the deadline
- Simplified Widget Onboarding β Streamlined onboarding flow with reduced navigation depth and clearer section organization
- Admin Onboarding Guidance β Widget installation, configuration, and troubleshooting are now easier to find and follow
User Highlights
- Beautiful Widget Landing Pages β When sharing widget links, viewers see a professional landing page with community info, benefits, and the live widget instead of a bare embed
- Internationalized Games β Memory, Catch, and Flick games now display in your chosen language, including all UI text and in-game messages
- Transparent Achievement Expiry β Expired achievements clearly show βExpiredβ state; no more confusion about why you canβt claim
- Smooth Shopify Mobile Experience β Shopify merchants can now manage loyalty programs on mobile with responsive navigation and clear loading states
Breaking Changes
None.Technical Notes
- Widget landing kill switch: PostHog feature flag
widget_standalone_landing_kill_switchallows immediate disable if issues arise - Achievement expiry window: Enforced at both API claim endpoint and aggregation layer; expiry times validated server-side only
- Game text schema: Updated
TextContentModelto includetranslationMapwith language-keyed text values - Skeleton loader pattern: Consistent
skeleton-primitivesacross Shopify app for CLS-free loading states - Admin default community: New
getDefaultAdminCommunityhelper standardizes community selection logic across onboarding flows
Contributors
@jamescockayne1 commit β’ +658/-63 linesRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 15 |
| Lines Added | +12,819 |
| Lines Removed | -2,442 |
| Files Changed | 232 |
v2.373.1 deployed on June 10, 2026




