Personal Project
Designing a Lightweight Multiplayer Stats Tracker for Casual Competitive Play
Mobile Product Design
UX/UI Design
Prototyping
Data Visualisation
No-Code / Vibe Coded
Personal Project
A lightweight mobile web app designed to track fixtures, results, and individual player stats for casual FIFA tournaments — built for one night, used by multiple users, and shipped end-to-end using Figma, AI tooling, and Supabase.






Role
Product Designer
Team
1 Product Designer
Tools
Figma
Figma Make
Overview
Problem
A group of friends in our 30s wanted to revive a tradition of playing FIFA together which is something we used to do regularly years ago.
The problem wasn’t the game itself, but the lack of structure and stakes. We wanted the evening to feel competitive without becoming overly serious, and none of the existing apps we found quite fit what we needed.
Most tools were either:
Too rigid (traditional formats only)
Too team-focused (no individual stats in 2v2)
Didn't have enough statistics to generate storylines
Or required account creation and setup friction
I decided to design and build a tool that fit exactly how we wanted to play.
Goals & Constraints
This project had very clear, opinionated requirements:
Support 1v1 and 2v2 formats
Track individual player stats, even in team games
Allow any number of players (six for this event)
Automatically generate fixtures
Control how many matches each player would play
Track stats beyond a traditional league table, including:
Most / least goals
Wins
Goals conceded
Recent form (last 3 games)
Add optional tracking for team star ratings to surface the RNG element
Be mobile-first only
Require zero account setup for players
Be quick to set up on the night
Focus on functionality over form
Design
Designing the Experience
I started by designing the app in Figma, focussing on a small number of core screens:
Home
Next fixture, recent result, quick access.
Fixtures
Past and upcoming matches.
Stats
League table plus callout-style highlights.
Setup
Players, match format, fixtures and options.
The interface was intentionally:
Calm and readable
Optimised for quick glances between matches
Designed for one-handed use
Focused on clarity over visual flair
Because the app would only ever be used on phones, I didn’t design responsive breakpoints — a deliberate constraint that kept the scope tight.
Progressive disclosure for deeper stat analysis
Rather than relying solely on a traditional table, I designed stat callouts to surface interesting narratives quickly like who’s on form, who’s struggling, and who can’t blame the star ratings anymore.
To keep the main stats view lightweight while still supporting deeper comparison, the stat callouts were designed to be fully interactive.
Tapping a stat (such as most goals or wins) opens a drawer-style modal showing a full breakdown of each player’s performance against every other player. This allowed more detailed analysis without overwhelming the primary screen.
This pattern made it easy to:
Surface key talking points at a glance
Dive into detail only when needed
Keep the core experience fast and readable during play
It also reflected how the app was actually used on the night with quick checks between matches, with occasional deeper dives when debates inevitably started.
Adding randomness without excuses
One important nuance was the team star rating system.
In FIFA, teams are often randomised, and historically this became an excuse for poor performance. To keep the game fun and fair, I added the ability to log star ratings per match and surface them as a stat.
This allowed us to:
Preserve the randomness
Keep the experience casual
Remove ambiguity when discussing results
It became one of the most talked-about features on the night.
Product Development
From Design to Working Product
Once the designs were complete, I used Figma Make to generate the initial codebase for the app.
Because this was a personal project with a very small audience, it meant I could:
Host it as a mobile web app
Run it on my home server
Deploy it via a Docker container
This allowed anyone connected to my home network to access the app instantly.
Multiplayer sessions without accounts
I wanted users to be able to enter a session on the app as a spectator similar to the golfing app VPAR. To achieve this I took inspiration from apps Jackbox, where:
One person hosts
Others join using a simple code
No accounts are required
I implemented a similar pattern:
The host creates a session
A short join code is generated
Other players join as spectators
Only the host can configure fixtures or enter results
The backend functionality for sessions and data persistence was handled using Supabase, integrated through Figma Make.
Reflections
Outcome
The app worked flawlessly on the night.
Fixtures generated correctly
Stats updated in real time
Players immediately understood how to use it
The star-rating tracking sparked constant debate (exactly as intended)
Most importantly, it elevated the entire experience by turning a casual gaming night into something memorable, competitive, and repeatable.
Several people asked if they could reuse it for future sessions.



