raycer - habit accountability PWA for ray and cer
Find a file
Spencer Flagg fade4c3ae5 fix: attach PWA install click handler at render time, not conditionally
beforeinstallprompt fires asynchronously after renderLanding() runs,
so the click handler was never attached when the prompt arrived late.
Always attach the handler and check deferredInstallPrompt at click time.
2026-04-23 20:38:08 +02:00
backend Initial commit: raycer accountability PWA 2026-04-23 16:45:06 +02:00
deploy deploy(coolify): record raycer app uuid and docker_compose_domains binding 2026-04-23 17:13:07 +02:00
frontend fix: attach PWA install click handler at render time, not conditionally 2026-04-23 20:38:08 +02:00
.editorconfig Initial commit: raycer accountability PWA 2026-04-23 16:45:06 +02:00
.gitignore Initial commit: raycer accountability PWA 2026-04-23 16:45:06 +02:00
docker-compose.coolify.yaml Initial commit: raycer accountability PWA 2026-04-23 16:45:06 +02:00
docker-compose.yml Initial commit: raycer accountability PWA 2026-04-23 16:45:06 +02:00
README.md Initial commit: raycer accountability PWA 2026-04-23 16:45:06 +02:00

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