raycer - habit accountability PWA for ray and cer
- Landing page shows an "add to home screen" button when the browser install prompt is available (Android/desktop) or on iOS Safari with a share-menu hint; hidden when already running in standalone mode - Last visited user route (/ray or /cer) is saved to Dexie meta and restored on next open so the app reopens where you left off - Active user in the topbar brand renders as a filled accent-color pill - A 1px accent-color frame wraps the entire viewport while a user is active |
||
|---|---|---|
| backend | ||
| deploy | ||
| frontend | ||
| .editorconfig | ||
| .gitignore | ||
| docker-compose.coolify.yaml | ||
| docker-compose.yml | ||
| README.md | ||
raycer
A minimal habit-accountability PWA for two users (ray and cer).
- Frontend: vanilla HTML/JS/CSS, Dexie.js, service worker, installable PWA
- Backend: Node 20 + Hono + better-sqlite3
- Reverse proxy: Traefik on
raycer.test(see~/Code/Personal_TOOLS/traefik-local-proxy) - Sync: offline-first with outbox + last-write-wins server upsert
Run
docker compose up -d --build
~/Code/Personal_TOOLS/traefik-local-proxy/add-domain.sh raycer
open https://raycer.test
Layout
frontend/ nginx:alpine serving the static PWA, proxies /api to backend
backend/ Hono API + SQLite (volume: raycer-data)
Goals (preseeded)
- No sugar — 2026-04-23 → 2026-05-21
- No social media — 2026-04-23 → 2026-05-21