The problem

Most small neighbourhood gyms track memberships on paper or in Excel, and usually have no separate promotional site. The gym software on the market is designed for chains: role hierarchies, online payment collection, an integration layer — a weight a one-person gym would never use.

The solution

I built a system with a Firebase Firestore backend that brings member management and promotion into one app. I decided up front what I would not build: no online payments (the owner takes cash anyway, and the app simply records that cash), and a single admin account with no reception or staff screen — because that is how this gym actually works.

Technology

Expo / React NativeFirebase Firestore

A detail worth highlighting

I documented the scope decisions as clearly as the code. Rather than a product that does everything, the goal was a tool the owner would genuinely use every day — leaving a feature out is an engineering decision too.

Every feature left out of scope was written down together with how it could be added later if needed. Keeping the difference between "we did not" and "we cannot" in writing makes the conversation about the next version much shorter.

Let's talk about a similar problem

A tool a small business would genuinely use, or a scope that has swollen and needs simplifying — both go to the same address.