FotMob Clone

FotMob clone · Sports scores app · built by the Vibecode team

FotMob Clone rebuilds FotMob, the football scores app, with its real name, wordmark, green and card layout. Swipe through days of matches across six leagues; today's games run live, so minutes tick, goals flash in the list and scores, commentary, ratings and stats build up as you watch. Open a match for Facts, Commentary, a green-pitch Lineup with player ratings, Stats, the table and head-to-head, or vote in Who will win. League, team and player pages have colour headers, tables, squads as a depth chart, heatmaps, season stats and your own scouting notes. All clubs and players are fictional and generated on the phone, so everything works offline, in light or dark mode.

  • iPhone · Swift
  • Hand-built
  • Free to remix
FotMob Clone, sports scores app built with Vibecode
Remix this template

Remix copies the working app into your account for free, exactly as we built it. It runs in Vibecode's cloud iOS simulator, in your browser.

The prompt that builds it

We wrote FotMob Clone by hand. This prompt describes the finished app: paste it into a new app to build your own version, or change it first.

Prompt · 1,000 words

Build a polished native iOS clone of FotMob, the football live-scores app, in SwiftUI with SwiftData: matches by day with live minutes and goals, match pages (Facts, Commentary, Lineup with player ratings, Stats, Table, H2H), league tables, team and player pages, news, follows and scouting notes. All leagues, clubs and players are fictional and generated on device, so it works offline.

It is FotMob on screen: its name, the FOTMOB wordmark (heavy wide caps, two speed lines on the F, drawn in SwiftUI), green #00995B, white rounded cards (radius 16) on a #F2F2F2 page, and its words ("Matches", "Leagues", "Following", "Live", "Today", "Yesterday", "Tomorrow", "Hide all", "Full time", "Half time", "Who will win?", "Player of the Match", "Top stats", "Ball possession", "Expected goals (xG)", "Team form", "Next match", "Daily summary", "Follow", "Following", "Predicted lineup"). Full dark mode (black page, #1C1C1E cards).

SHELL
iOS 26 floating tab bar: Matches, News, Leagues, Following, plus the Search tab. Opens on Matches, Today: no splash, onboarding, login, paywall or permission prompt. The menu button on the Matches header opens More (settings) as a sheet.

DATA
Six fictional leagues (England "Premier Division" 20 clubs, Spain "Liga Primera", Germany "Erste Liga", Italy "Serie Alta", France "Division Elite", USA "National Soccer League"), each club with two kit colours, a crest drawn in code (shield, roundel, pointed, badge or diamond; plain, stripes, halves, sash, hoop or chevron; an SF Symbol emblem), stadium, capacity, coach and a 20-man squad (formation-based roles, shirt numbers, age, nationality from per-country name pools, height, foot, market value, contract). A seeded double round-robin season: round 12 is played around today, earlier rounds are results, later ones fixtures. Each match is simulated from its id (Poisson goals by strength, scorers weighted by role and on the pitch at that minute, assists, penalties, own goals, yellow cards, 3-5 subs, possession, xG, shots, passes, corners). Today's games are laid out around the first launch of the day: some finished, some live, some later. Live games tick in real time: minute (45+2', HT, 90+3'), score, events, commentary, ratings and stats grow as the clock runs.

SCREENS
1. Matches: wordmark left; Live pill (filters to live games, turns green) and a calendar icon showing the day number (graphical date picker sheet); menu circle. Day strip (Sat, Yesterday, Today, Tomorrow, Wed, then dates), swipe between day pages. League cards (flag + "England - Premier Division", tap opens the league, chevron collapses), followed leagues first, then a "Hide all" capsule. Rows: status column (green live minute, HT, FT), home short name + 24 pt crest, kickoff time on two lines or the score (green pill while live), away crest + name; winners bold at FT. On a goal the row flashes green, the minute reads GOAL and the score ticks. Empty days say so.
2. Match: league + round chip, two 54 pt crests (tap for the team), big score or kickoff time, status, scorers grouped "Wardle 36', 38'" with a ball icon. Compact "crest 2 - 0 crest" title when scrolled. Share, bell and star in the bar. Tabs (Preview / Lineup / Table / H2H before kickoff):
- Facts: Match report (written from the data, Read more), Events timeline (goals with assist, cards, subs), Player of the Match, Top stats, Who will win? poll (vote stored, shows % split and total votes), venue card (stadium, city, date, attendance or capacity, referee, weather).
- Commentary: newest first, Goal! cards tinted green, filler lines (saved shots, corners, fouls, offsides), half time and full time.
- Lineup: one green pitch with both XIs in their formations, kit-shirt avatars with numbers, rating badges, goal balls, yellow cards, sub-off arrows with minute; team bars with average rating and formation; benches with coach, sub-on minutes and ratings.
- Stats: possession split bar in team colours, xG, shots, on target, big chances, passes, corners, fouls, offsides; the leader's value in a team-colour pill. Live games scale with the minute.
- Table: the league table with both clubs highlighted. H2H: wins/draws/wins and past meetings.
3. League: league-colour header with badge, name, country, season menu, Follow pill; tabs Table (Short / Full / Form, qualification stripes and legend), Fixtures (round stepper), Player stats (Top scorer, Assists, FotMob rating, See all), Teams grid.
4. Team: team-colour header with crest; Overview (next match, team form chips with opponent crests, daily summary, top scorer, stadium facts), Matches, Table, Squad (depth chart: coach, keepers, defenders, midfielders, attackers with role, age, contract, value), Stats.
5. Player: team-colour header with a big kit avatar and season rating; info grid (height, shirt, age, foot, country, market value, position, contract, league); season card (matches, goals, assists, rating, minutes, started, yellows); season heatmap by role; recent matches with result chips and ratings; Scouting notes (1-5 stars + text, add sheet, delete from the context menu).
6. News: For you / Latest / Transfers; a hero story and cards with generated cover art (club colours on a diagonal, crests, the score); stories are written from real results ("X scores twice as Y beat Z") plus transfer, injury and award features; article page links to the match and clubs.
7. Following: Teams (position, form bars, next or live match row), Players (goals, assists, rating), Leagues (current leader); Follow more opens Search.
8. Search: popular teams, then teams, players and leagues as you type, each with a follow star.
9. More: theme System / Light / Dark, show player ratings, offline mode (pauses live updates, banner on Matches), sort matches by league or time, collapse all, notifications, about.

RULES
Everything is deterministic from seeds and relative to today, so it never looks stale. Follows, votes and notes persist in SwiftData; first launch follows two clubs, two players and two leagues and seeds two scouting notes whose dates shift forward. Launch args: -DemoTour YES, -DemoScreen <name>, -DemoTime 15:41, -ResetDemo YES.

REMIX-READY
Brand/Theme.swift (name, colours, words), Data/Fixtures.swift (leagues, clubs, name pools, news templates), simulation and stats in small Data files, one folder per feature, README.md with a file map and remix ideas.
All templates