Back to projects

Fitston — a calorie tracker that stays out of your way

A PWA for tracking calories and macronutrients, built from scratch — because no available app worked the way it should. The case study is being expanded alongside the product.

PWANext.jsTypeScriptMongoDB

The problem

Available calorie-tracking apps were slow, heavy and required a permanent internet connection. Product databases were often incomplete and macronutrient tracking was clunky.

The solution

A minimal PWA running in the browser: fast, with an extensive product database and a full nutritional profile — from energy, through fats and carbohydrates, to 12 minerals and 14 vitamins.

Architecture

Next.js on the frontend, Fastify on the backend, MongoDB as the database. Client and server exchange data through a REST API with JWT authentication.

Client — Next.js PWA

React + TypeScript + Sass. A browser-based interface, installable on a device.

Server — Fastify

REST API with helmet, rate-limit and MongoDB data sanitization (protection against NoSQL injection).

Key features

What sets Fitston apart from a typical calorie counter.

Barcode scanner

Add products from the shelf in seconds — no manual typing.

Full nutritional profile

265 products in the database, each with a full profile: energy, fats (including omega-3/6/9), fiber, proteins, 12 minerals and 14 vitamins.

Macronutrient goals

Customizable kcal, protein, fat and carbohydrate goals — broken down into grams and percentages.

See it in action

Screenshots from production — no stock images, real screens of the system in use.

Fitston — calorie tracker app
Fitston — main dashboard
Fitston — products list
Fitston — adding a new product
Fitston — product details
Fitston — settings

Technology stack

TypeScriptNext.jsReactPWASassFastifyMongoDBChart.js

Project status

265products in the database
26nutrients per product