Overview
Most sport-tracking apps are built around one main activity — running, cycling, lifting, or a fixed training template. That breaks down when a training week mixes gym sessions, climbing, runs, volleyball, cold plunges, and saunas, each with notes that don't belong in the same generic form.
EffortMaxx is a personal multisport logging system built for that messier reality — one place where different session types carry different fields and context:
- A climbing session shouldn't ask for the same data as a run.
- A sauna or cold plunge shouldn't be treated like a workout with distance and pace.
That makes it a configurable logging product rather than a fitness-tracker clone.
The product itself uses no AI for analytics or recommendations — the AI part is the development process: I directed the build through Codex and Claude Code, shaping requirements, reviewing outputs, and testing flows while the agents wrote the application code.
Technical Approach
EffortMaxx uses a frontend deployed on Vercel, a FastAPI backend deployed on Render, and Supabase for the database and authentication layer.
| Layer | Technology |
|---|---|
| Frontend hosting | Vercel |
| Backend | Python, FastAPI |
| Backend hosting | Render |
| Database | Supabase PostgreSQL |
| Auth | Supabase Auth |
| Development workflow | Codex, Claude Code |
FastAPI provides the API surface for session creation, retrieval, and activity-specific logic. Supabase keeps the system practical for a solo project: authentication, hosted PostgreSQL, and managed infrastructure without needing to build a custom auth service. Vercel handles the frontend deployment separately from the backend service.
AI-Coded Development
This project was intentionally built with AI coding tools as the main implementation layer. Codex and Claude Code wrote the application code across backend structure, UI iteration, debugging, and deployment; the engineering work on my side was deciding what the app should do, giving the agents precise context, reviewing generated code, connecting the pieces, and testing real flows.
The main lesson: agents work best as implementation partners, not magic autocomplete. Output quality tracked directly with the context I gave them — a clear product goal, concrete constraints, existing code structure, and small steps. And because the whole app was AI-coded, the review loop mattered more, not less: I stayed responsible for architecture, product behavior, testing, and deployment decisions.
Current Status
The app is deployed and available at:
The GitHub repository is private for now.