LeCo — Fitness & Nutrition App
From a Google Sheet in 2021 to a full-stack PWA
The Problem
In 2021, I was looking for a tool to seriously track my nutrition and training. Existing apps were either too basic, too generic, or locked the features I actually cared about behind a paywall. I started with a makeshift Google Sheet. For four years, I used it daily, improved it iteration after iteration — until it became too limited for what I wanted to do with it. And people around me at the gym kept asking me to share it. That's when the question arose: what if I turned it into a real app?
Approach
The first structural choice: one application or two separate apps (Diet and Training)? I had initially considered two distinct apps. A study conducted with very different user profiles showed that having both modules in a single app bothered nobody — even those who only wanted to use one module. And for coaches, having everything in one place is essential. Decision made: a modular app with à la carte activation.
Architecture built around coaches as central users: a coach can manage their clients, track their progress, assign programs. Clients access the app via a referral code. This is the B2B2C wedge — selling the tool to coaches to reach their clients.
Integration of the Ciqual 2025 food database from ANSES — the French reference for nutritional data. More reliable and complete than generic databases for a French market.
Launch of a public PWA with referral code for early testers, in parallel with iOS/Android app development. Real feedback collected from gym-goers — not friends, but actual potential users.
Fitness/nutrition blog in development with a target of 500 articles to cover the basics, then trend and scientific advancement tracking. Target pace: 25 articles per week.
Technical Details
PostgreSQL with Row Level Security: a coach's data and their clients' data are isolated at the database level — a client can never access another coach's or client's data, even in case of an application bug.
Modular architecture with feature flags: Diet and Training modules activate independently per user. Navigation adapts dynamically based on activated modules — a Diet-only user doesn't see Training screens.
Ciqual 2025 integrated as nutritional source of truth: 3,077 foods with complete nutritional values, queryable via text search. pgvector will be added soon to move to semantic search — finding 'grilled chicken breast' even if the user types 'chicken breast'.
PWA with referral code to control access during beta phase: allows testing with real users while managing growth and collecting structured feedback.
Challenges & Solutions
The hardest architectural decision was choosing between two separate apps and a unified app. Two apps would have simplified initial development but fragmented the coach experience. The user study was decisive — it objectified an intuition and avoided a major architectural mistake upfront.
Finding real testers — not compliant friends — required going directly to people at gyms. It's uncomfortable, but it's the only way to get honest feedback on a fitness product.
Building a blog at 25 articles per week with quality nutrition and fitness content requires a real editorial strategy and production processes — not just writing. It's a workstream running in parallel with product development.
Results & Impact
- Public PWA in production with referral code access — first active testers from local gyms.
- B2B2C model validated: approached coaches are willing to pay for the tool.
- Modularity validated: users who only want one module are not bothered by the presence of the other.
- Ciqual 2025 database integrated — 3,077 foods available for the Diet module.
- iOS/Android app in development, blog in production with 500-article target.
Architecture
Supabase auth + referral code → PostgreSQL RLS (coach/client isolation) → Diet/Training module feature flags → Diet module: meal logging + Ciqual 2025 (+ pgvector coming soon) → Training module: programs + session tracking → coach dashboard: aggregated client view → PWA (service worker, partial offline) → iOS/Android in development.
What I Learned
Four years on the same problem taught me that the best way to build a product is to use it yourself without indulgence. Every friction I experienced in the original Google Sheet became a feature in LeCo. And the user study on the single app vs two apps question reminded me that a product builder's intuition, however strong, must be tested against real data before becoming an architectural decision.