← Work

Repcord

A local-first training log that never waits for the network

Year
2025
Status
in progress
Built with
Flutter, Drift, ASP.NET Core

Every set and session is written to the phone’s own SQLite database the instant you tap it. The network is never in the logging path — which matters, because gyms are exactly the sort of basement where signal dies.

How it syncs

A background service pushes unsynced rows up when it can. The client is the source of truth during a workout; the server catches up afterwards. Conflicts are rare by construction, because a set belongs to one device and one session.

Built with

Flutter and Riverpod on the client, Drift over SQLite for local storage, and a standalone ASP.NET Core API with EF Core and Postgres behind it.