Atmos Football

Blog

The Start

· 6 min read

Why this blog exists — the real origin of Atmos Football as an AI stress test on private football data, plus the honest reasons behind building the blog itself.

history · ai · development · origin

The Data

· 7 min read

How the Atmos Football dataset went from chaotic OneNote scribbles (2015) to a clean, historic master table — and why the early AI tests kept failing until Claude finally cracked it in 2026.

data · history · ai · development

The Elo Problem: When Fair Teams Don't Feel Fair

· 9 min read

The team generator says the teams are balanced. The players say they're not. Then the game happens and the numbers were right all along. How Elo ratings work in casual 5-a-side football, and why trusting them is harder than understanding them.

elo · ratings · football · statistics · team-generation

Building with AI: How Claude Helped Write This App

· 6 min read

An honest account of using Claude as a development partner for a real side project — what works, what doesn't, and when it gets in the way.

ai · development · claude · workflow

From 60k Reads a Day to Under 1k: Cutting Firestore Costs on the Free Tier

· 6 min read

How a casual football app was burning through Firestore's free tier quota and the techniques used to reduce reads by over 95%.

firebase · firestore · cost · performance

The Two-Environment Workflow: How We Actually Build Features with AI

· 7 min read

Planning in one environment, implementing in another. After 40 versions and several months of building an app with AI, here is the system that made it work — and why separating thinking from doing turned out to be the most important decision.

ai · workflow · development · claude · react

What 40 Versions Taught Me About AI-Assisted Development

· 8 min read

After several months and roughly 40 releases built with AI assistance, here is what actually worked, what did not, and what I would tell someone starting the same journey today.

ai · development · workflow · lessons · indie-dev

Push Notifications for a PWA — FCM on Web and Android with Capacitor

· 7 min read

How we added weekly match notifications to a React PWA and Android app using Firebase Cloud Messaging — covering web push, Capacitor native, and the permission flow.

pwa · android · firebase · notifications · capacitor

GDPR for a Hobby App: What I Learned Building a Privacy-Compliant Football Tracker

· 8 min read

What GDPR actually means for a small web + Android app — data minimisation, consent banners, the right to erasure for shared game records, and how to handle it without a legal team.

privacy · gdpr · indie-dev · firebase

How a £0.10 Firebase Bill Revealed Two Hidden Cost Drivers

· 7 min read

Our Firebase bill went from £0.00 to £0.10 after adding push notifications. The cause wasn't what we expected — it was a region mismatch and an O(N) query hiding inside every notification trigger.

firebase · cloud-functions · cost-optimisation · firestore · indie-dev

Adding Fitness Tracking to a Football App: What Sounded Simple Wasn't

· 8 min read

We wanted to let players see "how far did I run in last week's game?" The feature needed GDPR Article 9 compliance, Health Connect integration, a workout scoring algorithm, and a complete privacy notice rewrite — for data only one person would ever see.

health-connect · capacitor · fitness · android · privacy · gdpr

Running a Blog Inside Your Own React App — A Dual-Output Pipeline

· 10 min read

Most indie dev blogs sit on Substack or Ghost. We chose to host the blog inside the React app itself — partly for SEO consolidation, partly to avoid another subscription. Here is the markdown → HTML + MD + index.json pipeline, the two renderers it feeds, and the trade-offs that came with it.

react · vite · markdown · seo · indie-dev · adsense

Building Group Discovery for a Multi-Tenant Football App

· 8 min read

Three releases shipped a feature that lets a player open the app, grant location access, see nearby football groups, and request to join one — without the organiser ever seeing the player's email. Here is the architecture: rating snapshots for cheap reads, opt-in discovery listings for the geosearch, and portable rating cards for cross-group identity.

firebase · firestore · react · geosearch · privacy · multi-tenant · indie-dev

Why Auto-Rotating a Football Heat Map Is Harder Than It Looks

· 11 min read

I tried four progressively more sophisticated algorithms to make a GPS heat map auto-align the football pitch to my screen. None of them worked reliably. The reason is something the maths can't see.

gps · pca · geospatial · leaflet · algorithm · indie-dev