No description
  • TypeScript 66.9%
  • CSS 28.7%
  • JavaScript 2.9%
  • Nix 0.9%
  • HTML 0.6%
Find a file
2026-05-22 08:45:50 +02:00
public chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
src feat(dashboard): replace week grid and pain chart with Recharts exercise progress 2026-05-22 08:38:53 +02:00
.env.example feat(storage): replace localStorage with file-backed JSON server 2026-05-21 19:37:27 +02:00
.gitignore feat(storage): replace localStorage with file-backed JSON server 2026-05-21 19:37:27 +02:00
CLAUDE.md chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
eslint.config.js chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
flake.lock chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
flake.nix chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
index.html chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
package-lock.json feat(dashboard): replace week grid and pain chart with Recharts exercise progress 2026-05-22 08:38:53 +02:00
package.json feat(dashboard): replace week grid and pain chart with Recharts exercise progress 2026-05-22 08:38:53 +02:00
README.md docs: introduce the project 2026-05-22 08:45:50 +02:00
server.mjs feat(storage): replace localStorage with file-backed JSON server 2026-05-21 19:37:27 +02:00
tsconfig.app.json chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
tsconfig.json chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
tsconfig.node.json chore: init react+vite+ts scaffold with nix dev env 2026-05-21 17:48:16 +02:00
vite.config.ts feat(storage): replace localStorage with file-backed JSON server 2026-05-21 19:37:27 +02:00

regait

A play on "regain" and "gait"

A personal recovery log built during rehabilitation from a Grade 2 calf strain. The app tracks daily exercises and habits, visualizes progress over time, and provides guided exercise instructions to support a structured recovery routine.

Disclaimer: This project is vibe-coded by someone with no prior React knowledge, assisted by AI. It is intended for personal use only — there is no authentication, no multi-user support, and no production hardening.


Features

  • Log daily exercises and recovery habits
  • Dashboard with progress visualization (habit compliance, exercise history)
  • Exercise library with instructions and motion cues
  • Daily standing instructions (e.g. avoid prolonged static posture)

Dev

Prerequisites

The development environment is managed with Nix flakes. No manual Node installation needed.

nix develop

This drops you into a shell with Node.js 22 available.

Running the app

The app has two processes running concurrently: the Vite dev server (frontend) and a local JSON-backed data server (backend).

npm install       # first time only
npm run dev
  • Frontend: http://localhost:5173
  • Data server: http://localhost:3001 (default)

Note on nix: If running commands from outside the nix shell, prefix with:

nix develop --command bash -c "<command>"

Environment variables

Create a .env file at the project root to override defaults:

SERVER_PORT=3001          # port for the data server
DATA_FILE=./regait-data.json  # path to the local JSON data store

regait-data.json is the only persistence layer — it lives locally on disk and is not committed to the repository.

Tech stack

Layer Technology
Frontend framework React 19 + TypeScript
Build tool Vite
Charts Recharts
Backend Node.js HTTP server (no framework)
Data store Local JSON file
Dev environment Nix flakes (Node.js 22)
Linting ESLint + typescript-eslint

Deployment

TODO: Container image and self-hosting instructions are planned.