- TypeScript 66.9%
- CSS 28.7%
- JavaScript 2.9%
- Nix 0.9%
- HTML 0.6%
| public | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| eslint.config.js | ||
| flake.lock | ||
| flake.nix | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| server.mjs | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
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.