The MERN build.
Three years after the first 2019 prototype, I rebuilt the somatotype as a real web application — React and TypeScript on the front, Express and MongoDB on the back, with accounts, a dashboard, a blog, and five BeCode interns I led on what was, for the first time, my own project. The first time the AfitPilot idea looked like a product.
From a static page to a real application.
The 2019 calculator was a single HTML page. You typed in nine numbers, JavaScript ran the Heath-Carter equations, a canvas drew the triangle. Useful, but it forgot you the moment you closed the tab.
By late 2022 I wanted something that remembered. Something that stored a profile. Something you could log into, save results to, come back to a month later and see how your numbers had moved. So I rebuilt the whole thing from scratch as a MERN-stack application — MongoDB, Express, React with TypeScript, Node — and pulled in a small team of interns from the BeCode bootcamp to ship it with me.
Work started toward the end of 2022 and the build came together in earnest between January and March 2023 — call it roughly two months of real shipping. Five people contributed across the lifecycle. The repository ran to 430+ pull requests. We added authentication, password reset by email, a profile dashboard, a blog with comments, a powerlifting calculator alongside the somatotype, social sharing, a contact form, and bilingual content. None of it was polished by 2026 standards. All of it was honest production work — the first time I had built something that needed a database to be itself.
It is also the project where I learned what it feels like to lead a small team on something that was mine. I had shipped code with others before, on other people's projects. This was the first time I was the one setting the direction, writing the tickets, and merging the PRs. Tickets on a Google Sheet. A `dev` branch and forked PRs. Review comments. Merge conflicts. Everything that followed at AfitPilot — the workflows, the review discipline, the way we ship — started here.
The 2022 build in motion.
Short captures from the running application — taking the test, exploring the somatotype categories, and comparing your result against an athlete library.
What the application was built on.
A standard MERN stack for the era, with TypeScript on both sides of the wire.
- Frontend
- React 18 + TypeScript, Material UI, react-swipeable-views
- Backend
- Node + Express, TypeScript, bcrypt + JSON Web Tokens for auth
- Database
- MongoDB Atlas, Mongoose schemas, six collections (users, profiles, blogs, comments, shares, contact)
- Nodemailer with templated HTML for password reset and contact
- Analytics
- react-ga4 (Google Analytics 4)
- Sharing
- react-share — Twitter, Facebook, LinkedIn, WhatsApp
- Hosting
- Render — single web service running both API and built React client
- Process
- Forked-repo PR flow, ticketed via Google Sheets, reviewed and merged by hand
The first team I led on my own project.
The 2019 calculator was a solo project. The 2022 build was the first time I led a small team on something that was mine — five interns from the BeCode bootcamp, contributing alongside me across the lifecycle of the repo. Their pull requests are still in the history.


- Walter ClaytonAuthor, lead engineer
- Bhama GuruswamiContributor
- Younes El MiriContributor
- Arnaud DalcqContributor
- Prince KyeiContributor
- JojoContributor
Source, references, and the original Heath-Carter manual.
What this build taught me, and what AfitPilot kept.
The 2019 page proved the idea could exist. The 2022 build proved it could be a product — that you could put a database behind it, an account in front of it, a team around it, and ship the result. Everything AfitPilot does today rests on lessons from this codebase: how to model a profile, how to handle auth without becoming a security incident, how to review and merge other people's code without breaking trust, how to ship slowly enough to be correct and fast enough to still be alive.
AfitPilot kept the architecture and threw away the implementation. The MERN stack gave way to a different one. The single-purpose somatotype calculator became one of seven coaching calculators on a much larger platform. The dashboard became something far more ambitious — an adaptive training plan, not a saved snapshot. But the loop is the same loop: measurements in, system in the middle, personalised output back to the athlete.
The 2022 codebase is no longer running. The reason is not nostalgia — it is that the things it was built to do are now done better, by AfitPilot, in production. Keeping this page is how I keep the lineage visible without keeping a server alive to host a project that has already done its job.