Rewards4
Platform
The Rewards4 platform powers a group of sports-focused loyalty websites — Rewards4Racing, Rewards4Golf, Rewards4RugbyLeague, and Rewards4Sport — allowing users to earn points through online shopping and redeem them with their favourite sports brands.
I led the front-end modernisation of these sites, migrating them from a legacy architecture to a scalable, component-based system using Vue 3 and TypeScript, while improving usability across the platform through incremental UX enhancements.
The existing platform was built on a legacy stack that had become difficult to scale and maintain — C#, .NET Core Razor Pages, SCSS, Bootstrap, and heavy reliance on jQuery and CMS-driven rendering.
Key Issues
- Performance limitations caused by server-heavy rendering
- Inconsistent user experiences across multiple brand sites
- Duplicated effort when updating styles and features
- Slow development workflows due to limited component reuse
Goals
- Modernise the front-end architecture
- Improve scalability and performance
- Standardise UX across brands
- Enable faster development workflows
- Improve usability without redesigning the core brand identity
I worked across both UX and front-end development, focusing on:
- Leading the migration to Vue 3 and TypeScript
- Refactoring legacy jQuery-based patterns
- Designing a scalable multi-brand architecture
- Improving mobile usability and UI consistency
- Collaborating with backend developers on API integration
Incremental Migration
Rather than rebuilding the platform all at once, I introduced a phased migration strategy focused on stability and continuous improvement — identifying high-impact areas for refactoring, rebuilding features as Vue components, and gradually replacing legacy functionality.
Component-Based Architecture
I introduced reusable UI components to replace duplicated logic across sites, enabling consistent UI patterns, faster development, and easier maintenance.
Tenant-Based Multi-Brand System
I helped implement a tenant-based structure where all brands shared a common platform while supporting brand-specific styling and configuration, reducing duplication across projects.
Performance Optimisation
- Reduced reliance on CMS-rendered content
- Shifted to API-driven data loading
- Loaded only required content per page
- Used Cloudflare for caching and delivery optimisation
Due to brand consistency requirements, a full redesign was not possible. Instead, I focused on incremental UX improvements that improved usability while preserving the existing visual identity.
- Standardised spacing, typography, and reusable components across all sites
- Introduced mobile-first layout improvements and improved key action visibility
- Simplified user flows and reduced friction in browsing and interaction
- Improved content grouping, hierarchy, and readability across devices
- Improved performance across all platforms
- Created a more consistent UX across multiple brands
- Reduced development time through reusable components
- Established a scalable architecture for future growth
- Improved usability without requiring a full redesign
This project strengthened my ability to modernise legacy systems while maintaining live products, design scalable multi-brand architectures, and deliver UX improvements within real-world constraints.
It reinforced the importance of incremental improvement — showing that meaningful UX gains can be achieved without large-scale redesigns.