Fantasy tennis, engineered for the serious fan.
A full React Native redevelopment of a FlutterFlow app — delivering a sophisticated fantasy tennis platform with dynamic pricing algorithms, a virtual coin economy, and season-long social leagues for ATP tournaments worldwide.
UbiTennis is an Italian tennis media and data platform with a passionate, knowledgeable fanbase. iCodeLabs was brought in to fully redevelop the UbiTennis mobile app — migrating from FlutterFlow to React Native while preserving and extending the existing Firebase backend.
The centrepiece of the redevelopment is a fully API-driven Fantasy Tennis feature covering all ATP tournaments, complete with a dynamic tier and pricing engine, a UbiCoin virtual economy, automated withdrawal management, a gamified scoring system, and persistent season-long social leagues.



The Challenge
The client had a functional FlutterFlow app but needed a scalable, maintainable, and feature-extensible mobile product that FlutterFlow's constraints couldn't deliver. iCodeLabs migrated the entire app to React Native — preserving the existing Firebase backend while making targeted backend changes to support the new Fantasy Tennis feature set.
The fantasy system itself required significant algorithmic engineering: a dynamic tier and pricing model that auto-adapts to every ATP tournament's entry list, an automated withdrawal and replacement engine, a virtual coin economy, and a season-long league architecture — all driven by live ATP API data with zero manual operator intervention.



Tech Stack
A React Native rebuild over an extended Firebase backend, driven end-to-end by the ATP API — engineered to run the entire fantasy economy without manual operator intervention.
Mobile App
React Native
Original Platform
FlutterFlow (migrated from)
Backend
Firebase
Data Source
ATP API (live tournament & match data)
Economy
UbiCoin virtual currency engine
Architecture
API-driven, minimal manual management
Modern fonts and dynamic colours of UbiTennis
Bold, sports-forward, and data-rich — a dark-first mobile UI with high-contrast tournament cards, dynamic player pricing displays, and a league interface that makes statistical depth feel accessible. The UbiCoin economy is given its own visual identity — reinforcing its status as a premium engagement layer separate from the core competitive experience.
Romance
#1C820A
RGB: 28, 130, 10Butterfly Blue
#26ACF6
RGB: 38, 172, 246Cerise Pink
#E83F6F
RGB: 232, 63, 111Pale Gold
#FFDF64
RGB: 255, 223, 100Dune
#333333
RGB: 51, 51, 51Unbounded
Bold
What We Built
FlutterFlow → React Native Migration
The full UbiTennis mobile app was redeveloped in React Native, replacing the FlutterFlow codebase while retaining the existing Firebase backend. Backend modifications were made to support the new Fantasy Tennis data architecture, new API integrations, and the UbiCoin economy layer — with full data migration ensuring existing users experienced no disruption.
ATP API Integration — Fully Automated Tournament Data
The platform is driven entirely by live ATP API data — requiring zero manual tournament management by the operator. The system pulls tournament IDs, names, categories, start and end dates, official entry lists, ATP ranking snapshots at team-open time, real-time match results, and match statistics (aces, duration, sets) — all automatically, for every ATP tournament across 250s, 500s, Masters 1000s, Slams, and the Finals.
Dynamic Tier & Pricing Algorithm
A sophisticated dynamic pricing engine was built to prevent all-top-player teams and ensure genuine strategic variety across every tournament. The algorithm takes the full entry list, sorts players by ATP ranking, and auto-assigns them to six tiers relative to that specific tournament's field. Pricing within each tier follows a power curve formula — Price = round(minPrice + (maxPrice - minPrice) * (1 - x)^2.2) — producing fair, differentiated prices that adapt automatically to whether the tournament is a 32-player ATP 250 or a 128-player Grand Slam. No manual price updates are ever required.
Fantasy Team Creation & Locking
Users build a 6-player team within a 100-credit budget, selecting at least one player from each tier. Teams open 3–5 days before the tournament and lock automatically at the first match. Post-lock, teams are frozen — withdrawal management handles player changes automatically without user intervention.
Automated Withdrawal Management
A fully automated withdrawal engine handles player withdrawals at every stage of the tournament lifecycle. Before lock, withdrawals are detected via API, the user is notified, the player is auto-removed, and credits are refunded for replacement. After lock but before a match, the system automatically replaces the withdrawn player with the next available ranked player — or the closest-price alternative if none is available. During a match, the withdrawn player scores zero with no replacement.
Gamified Scoring System with Automatic Bonuses
A structured points system awards base points by round (1 point for R128/R64 through to 13 for the Final) with five automatic API-driven bonuses: Upset Bonus (+3 for beating a player ranked 15+ places higher), Fast Win (+2 for winning in under 60 minutes), Sharpshooter (+2 for 10+ aces), Ruthless (+2 for a 6–0 set), and Straight Sets (+1 for a 2-set win outside Slams). All bonuses are computed automatically from live match statistics.
UbiCoin Virtual Economy
Unused budget credits (up to 10 per tournament) convert automatically to UbiCoin at a 1:1 rate. Users also earn UbiCoin through daily quizzes and achievements. UbiCoin can be spent on tactical advantages — Spy Mode (8 coins: see an opponent's team before lock), Quiz Second Chance (3 coins), and exclusive badges, avatars, and profile titles. UbiCoin never buy points — maintaining competitive integrity while rewarding engagement.
Daily Quiz Engine
A daily quiz feature was built with a 15-second per-question timer, automatic question locking on timeout, and topics covering daily ATP matches, historical tennis trivia, and player stats. Correct answers reward 3–5 UbiCoin, with a one-time second-chance option costing 3 UbiCoin.
Season-Long Social Leagues
Leagues are created once and persist for the full ATP season (January–December). Public leagues are open to all; private leagues use invite codes. Each tournament generates a fresh league ranking while the season total accumulates across all tournaments. Tie-breakers are resolved by tournament points, upset count, credits spent, and team creation timestamp — in that order. Members who don't participate in a tournament receive 0 points and a "Did not participate" badge.
Multi-Tier Ranking Architecture
Three parallel ranking systems were built: a global tournament ranking across all users, a per-league tournament ranking computed on read, and a persistent global UbiCoin ranking tracking virtual currency accumulation across the season.



Technical Highlights
- Full FlutterFlow → React Native redevelopment with Firebase backend migration and extension
- ATP API integration driving all tournament data with zero manual operator management
- Dynamic relative tier assignment and power-curve pricing algorithm auto-adapting to every tournament field
- Automated withdrawal detection and player replacement engine covering pre-lock, post-lock, and in-match scenarios
- API-driven scoring engine computing base points and five automatic match stat bonuses
- UbiCoin virtual economy with earn, spend, and conversion mechanics — fully decoupled from competitive scoring
- Season-persistent league architecture with per-tournament rankings and cumulative season totals
- Multi-tier global, league, and UbiCoin ranking systems





Ready to Build Your Sports or Media Marketplace?
UbiTennis migrated its fantasy tennis app from FlutterFlow to React Native on the existing Firebase backend, with ATP API integration for automated tournament data and a UbiCoin-powered virtual economy. We build sports, media, and content marketplaces from $3,000. Fixed price. 90-day bug-free guarantee.
- 50+Marketplaces Delivered
- 90 DaysBug-Free Guarantee
- $3,000Starting Price
Real stories, Real Result

UbiTennis Team
Founding Team
"iCodeLabs rebuilt UbiTennis from FlutterFlow to React Native and shipped a fully API-driven fantasy tennis platform — dynamic pricing, automated withdrawals, and season-long leagues, all running without manual operator intervention."





















