---
title: Football Club Sim: 5k managers a month, playing every match live · Pavegrowth
description: A football management game for iPhone, where you play every match live and take on friends in online leagues. I built the app, the match engine, the online leagues and the website.
url: https://pavegrowth.co/work/football-club-sim/
---

[← Work](https://pavegrowth.co/work/) · Football Club Sim

Football Club Sim · Built & launched end to end

# Football Club Sim: 5k managers a month, playing every match live.

A football management game for iPhone where you don't just press simulate. You manage every match live, then take on your friends in private online leagues. I built the app, the match engine, the multiplayer backend on Cloudflare and the website, and took it from first line of code to the App Store in under six weeks.

Product

[playfcsim.com](https://playfcsim.com/)

Platform

iPhone

Services

Game design, App development (iOS), Multiplayer backend, Website

[App Store ](https://apps.apple.com/app/id6783129588) · [Website ](https://playfcsim.com/)

![Football Club Sim website: Manage the club. Play every match live.](https://pavegrowth.co/_astro/home-d.CJ8cONiA_ZVWqr4.webp)

The marketing site, in 21 languages · playfcsim.com

The numbers

## From first line of code to the App Store in under six weeks.

20k+ · Downloads

5k · Monthly active players

21 · Languages in the app

What I built

## A football manager you actually play.

Not a spreadsheet you press "simulate" on. The match, the career and the multiplayer, all designed and built by me.

### Every match, live

Both halves play out in a broadcast-style 3D view or on a classic 2D pitch. You change the tactics from the touchline at any minute, make the subs and give the team talks that swing momentum.

* 19 formations with a duty for every position
* Half-time talks, touchline shouts and up to five subs
* An engine tuned to real-world scoring

### A full career

Transfers, loans and contract talks. Finances and board reviews, a youth academy with hidden potential, scouting and ageing, plus challenge scenarios when a season isn't enough.

### A living football world

16 leagues and 320 clubs with promotion, relegation, cups and continental competitions, along with rivalries, press conferences and manager progression.

### Leagues with friends

Private online leagues for 2 to 10 managers, joined with a six-character code and played across several seasons. Every derby is settled head to head.

How the multiplayer works

## Friends' leagues on a serverless edge backend.

No game servers to run and no accounts to manage. A league is a handful of rows at the edge, and every phone rebuilds the rest from a shared seed.

1. Join  
### Create and invite  
A league is created at the edge and friends join with a six-character code. No sign-up: each player gets a private ID and recovery token, and only a hash of it is stored.
2. Play  
### Simulate locally  
Matches between AI clubs run on every phone from the shared seed, so they never need syncing. Your games against the AI play live on your phone.
3. Resolve  
### One result, on the server  
Friend-versus-friend matches are resolved once, on the server, from both locked team sheets. It runs the app's own match engine, bundled for the edge and pinned by version.
4. Advance  
### Leagues never stall  
When every human fixture is in, the week moves on. An hourly job plays absent managers on their saved team sheets, and long-absent clubs hand over to the AI.

Screens

## The site and the game.

![Website section: Live every minute, beside a live match in the Broadcast 3D view](https://pavegrowth.co/_astro/live-d.zmEtPN0t_LrKTD.webp)

Every match played live

![Website section: Play online with friends, beside a multiplayer league table](https://pavegrowth.co/_astro/friends-d.D3Lyn8yl_Z16Ajo2.webp)

Online leagues with friends

### In the game

![Live match screen: an 89th-minute winner in the Broadcast 3D view, with the score and timeline](https://pavegrowth.co/_astro/match-m.DMo9TDWF_xvHRc.webp)

Every match live in 3D

![Transfer screen: the selling club counters on fee, wage and contract length](https://pavegrowth.co/_astro/transfer-m.BntYKNTN_Z2jXwqS.webp)

Transfers that bargain back

![Press conference screen: a question before a title decider, with four answers from calm to fiery](https://pavegrowth.co/_astro/press-m.iUxpK9Yj_Z1FbxIf.webp)

The press room

How it's built

## A live match engine and a multiplayer backend, built solo.

A top-level look at the rest of the stack. The solo game runs entirely on the phone; the edge backend only handles what friends' leagues need.

See how it's built Optional, for the technically curious

Client

### One strict TypeScript codebase

Built on React Native, with a broadcast-style 3D match view and a 2D pitch, animation off the main thread, sound and haptics. Around thirty screens, laid out for iPhone, iPad and iPhone Duo from one codebase.

TypeScript, React Native, Expo, Reanimated, SVG

Match engine

### Deterministic and seeded

Elo ratings and a Poisson goal model with a low-score correction, tuned to real-world scoring and draw rates. The same seed gives the same match on any phone or on the server.

Seeded RNG, Elo, Poisson model, Golden tests

Backend

### One Worker, one database

Friends' leagues run on a single serverless Worker with a D1 database, scheduled jobs and rate limiting at the edge. The stored state is tiny; everything else is rebuilt from the seed.

Cloudflare Workers, D1, Cron Triggers, Rate limiting

Consistency

### Money can't be created

Every money or ownership change is one atomic, guarded SQL statement. Transfers are an append-only ledger replayed the same way on server and phone, and budgets are derived from it, never stored.

Atomic SQL, Append-only ledger, Idempotency keys

Offline

### Plays offline, syncs when back

The solo game never touches the network, and a test enforces it. Multiplayer moves made offline queue up and replay in order, safely, when the connection returns.

Offline queue, Polling sync, Local cache

Shipping

### Ship daily, in 21 languages

Signed over-the-air updates from a self-hosted update server, 21 in-app languages, and store listings in 50 locales pushed by script.

OTA updates, R2, fastlane, i18n

About![Josh Pavey](https://pavegrowth.co/_astro/avatar.BbmBhYNK_TT63c.webp)

**Josh Pavey** · Founder

**Currently** 

[Get in touch ](#contact)

UK time

## Senior strategy. Hands-on delivery.

I've spent **7+ years in paid advertising**, agency-side and in-house, most recently as **Head of Paid Search for 3+ years at Soar With Us**, a D2C agency, growing brands to **8+ figures**. I've since started Pavegrowth to continue my love of building and growing brands with that expertise.

Alongside the ad accounts I build Shopify themes, iOS apps and software products, including my own. Growth marketing and development under one roof. I utilise AI workstreams to support moving faster & streamlining internal & client workflows to ensure efficiency, whilst the strategy, judgement and accountability are mine. You talk directly to the person doing the work.

7+ · Years in paid ads

£10M+ · Ad spend managed

100s · Audits & accounts managed

30-minute intro call

## Let's grow your brand, together.

Thirty minutes to get to know your brand, your goals and where the growth is. No pitch deck, just a straight conversation about where we'd take it next.

1. 0–10 · Your brand, goals and growth targets
2. 10–25 · Where I'd look first for growth, and why
3. 25–30 · Fractional, a project, or not a fit

[Book an intro call ](https://calendar.app.google/xccypEeR4XJFWLWp6)

Email

[josh@pavegrowth.co](mailto:josh@pavegrowth.co)
