OneFootball reports more than 100 million monthly active users. Putting a shop inside an app that size means every pixel has to match the design system and every product, price and promotion has to change without shipping a new release.
About the brand
The OneFootball app is a free football app for iOS and Android with live scores, news, notifications, statistics and video, including live streams and highlights from selected competitions. OneFootball is based in Berlin. Source: Wikipedia. Source: OneFootball on Google Play.
My role
I worked on the OneFootball mobile app.
What I built
- Permanent role (Jan 2025 to Feb 2026): delivered OneFootball's Flutter e-commerce storefront, bringing merchandise purchasing into the consumer app.
- Contract role at Stadion (May to Nov 2024): built the Flutter commerce functionality behind the OneFootball Fan Shop, launched in Germany in October 2024 with 11teamsports Group to more than a million German users.
- Built supporting backend and internal tooling for sale items, promotions and time-limited campaigns.
Architecture and approach
- Flutter Add-to-App: Flutter modules embedded in established native iOS and Android apps, so new commerce screens shipped without rewriting the existing app.
- A private, reusable Flutter package that supports merchandise from multiple suppliers through one common commerce implementation.
- Melos-based monorepo with trunk-based development and modular package boundaries.
- GraphQL for product and order data, Stripe for in-app payments and order processing.
- Remote configuration of products, stock and promotions, so merchandising changes need no app release.
- Production UI built against OneFootball's design system across two codebases with different architectures and release processes.
Hard problems
Two codebases, two release processes
The shop spanned the Stadion and OneFootball codebases. The answer was a versioned private package with a clear public API, so each host app could adopt releases on its own schedule.
Flutter inside a native app
Add-to-App means sharing navigation, authentication state and lifecycle between native hosts and Flutter engines while keeping start-up and memory in check.
Holding quality while moving fast
Automated test coverage was held at 98%, with a GitHub check that rejects any push that lowers it.
Outcome
- Fan Shop launched in Germany in October 2024 to 1M+ users.
- Storefront delivered into a platform reporting 100M+ monthly active users (2022).
- 98% automated test coverage enforced in CI.
Tech and keywords
- Flutter
- Dart
- Add-to-App
- Melos
- Monorepo
- Trunk-based development
- GraphQL
- Stripe
- E-commerce
- Private packages
- Design system
- Remote config
- CI/CD
- Test coverage
Quick facts
- App: OneFootball
- Category: Sport and media
- Built by: David Miller, Digital Space Agency, Hamburg
- Type: Client work
Discuss a similar project All work
No mail app? Open in Gmail or write to info@dsa.team
FAQ
What did David Miller do on OneFootball?
I worked on the OneFootball mobile app. Details of scope and stack are shared on request.
Who developed the OneFootball app?
OneFootball work was done by David Miller of Digital Space Agency, a Flutter and mobile developer based in Hamburg. I worked on the OneFootball mobile app.
Can David Miller build a similar app?
Yes. I take contract engagements and am open to full-time roles, working in Hamburg or remotely on CET. Email info@dsa.team with a short description of the project.