Sali

Gym tracker

A gym tracker for a few friends, made for logging between sets.

Why I built it

I wanted logging a set to take one thumb and two seconds, and to share my workouts with friends.

The Train screen: your workouts with the next one highlighted, and a workout a friend shared.
Type
Web app, PWA
Status
In use
Code
Private
Revision
2026.10

The problem

Gym apps are either bloated or locked to one person. I wanted one that is fast enough to use between sets and that a few friends can share.

What it does

How it’s built

Functional block diagram

Inputs

  • Phone, one thumb between sets
  • Invite and password-reset links
  • Exercise library

Core

  • Hono API
  • SQLite, one file
  • Sessions, remembered weights and progress
  • Suggestions and weekly summary (AI)

Outputs

  • Installable web app, Finnish and English
  • End-to-end test of every screen
Functional block diagram.

Specifications

Sali at a glance
PlatformInstallable web app (PWA)
UsersA few friends, each with their own sign-in
StorageOne SQLite file
HostingHome server, reached over Tailscale
LanguagesFinnish, English
StatusIn use
Built2026
StackTypeScript, React, TanStack Query, Hono, SQLite, Vite, vitest, Playwright, PWAs
CodePrivate

Revision history

Revision history
RevDateChange
E2026-10-26Drag to reorder workouts, and a recovery view per muscle group.
D2026-10-24Alternative exercises on the logging screen; in use on a home server.
C2026-10-20AI notes when progress stalls, and a weekly summary.
B2026-10-19The logging screen, rest timer, progress charts and records.
A2026-10-18Accounts, invites and sessions backend; remembered weights; history.