Skip to main content

πŸ”΄ Massive Release v2.373.1

⭐⭐ Moderate β€’ 15 commits β€’ 232 files
Widget 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

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
Customer Impact: Sharing widget links now directs prospects to a professional marketing page instead of a naked embed, increasing signup conversion and reducing friction.Kill Switch: PostHog feature flag 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
Customer Impact: Users see transparent feedback when achievements expire, preventing confusion about why claims fail. Community managers can trust achievement expiry rules are enforced.

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
Customer Impact: Admins can experiment with landing page components and tailor them to their community’s marketing strategy without code.

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
Customer Impact: New admins can set up widget embedding and configuration faster without getting lost in complex navigation.

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
Customer Impact: International communities can now fully localize their game experience, removing English-only friction points.

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
Customer Impact: Players have a smooth, glitch-free experience across all devices and game types. No more hidden balls or broken card images.

App-Shell Navigation Responsiveness

Shopify admin app navigation now responds to all screen sizes:
  • Responsive Design – Navigation collapses on mobile, expands on tablet/desktop
  • Mobile Navigation – Hamburger menu with smooth transitions on small screens
  • Touch-Friendly – Tap targets properly sized for mobile devices
  • Smooth Transitions – Navigation state changes are animated without jarring layout shifts
Impact: Shopify merchants can now manage their loyalty programs from their phone without cramped, unusable navigation.

App-Wide Skeleton Loading States

Every page in the Shopify app now shows skeleton loaders while content is fetching:
  • Consistent Pattern – Same skeleton style across loyalty, points, members, and settings pages
  • Accurate Proportions – Skeleton shapes match the final content layout, eliminating layout shift (CLS)
  • User Feedback – Clear indication that content is loading, not broken
Impact: Users understand that the app is working during network delays, reducing support requests about blank screens.

Members Page Improvements

Members page no longer shows unnecessary UI elements:
  • Removed Unused Selector – Community/member selector removed; content now focuses on member details
  • Optimized Fetch – Community data fetch eliminated, reducing load time
  • Cleaner Interface – Simplified page layout with only essential member information
Impact: Members page loads faster and looks less cluttered.

Achievement Expiry Backend Validation

Backend now validates achievement expiry before awarding XP:
  • Expiry Window Check – Claim endpoint validates current time against achievement claimStartDate and claimEndDate
  • 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
Safety: Prevents accidental XP awards and ensures fair achievement distribution.

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
Flexibility: Communities can customize game text per language without workarounds.

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_switch allows 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 TextContentModel to include translationMap with language-keyed text values
  • Skeleton loader pattern: Consistent skeleton-primitives across Shopify app for CLS-free loading states
  • Admin default community: New getDefaultAdminCommunity helper standardizes community selection logic across onboarding flows

Contributors

erek_d@me.com@erek_d@me.com5 commits β€’ +10543/-2165 lines

solicshop@gmail.com@solicshop@gmail.com4 commits β€’ +1033/-206 lines

dch@wenudj.com@dch@wenudj.com4 commits β€’ +429/-20 lines

jamescockayne@jamescockayne1 commit β€’ +658/-63 lines

Release Stats

MetricValue
Total Commits15
Lines Added+12,819
Lines Removed-2,442
Files Changed232

v2.373.1 deployed on June 10, 2026