raycer - habit accountability PWA for ray and cer
Find a file
Spencer Flagg 392bd6416e fix: current streak should not reset to zero before today's check-in
currentStreak() was starting its backward walk from today, so if the
user hadn't checked in yet today the first lookup missed and it
returned 0 — even with a perfect streak on previous days.

Now when today's entry is absent and the goal is still active, the
count starts from yesterday instead. Once the goal window has closed
the original end-of-window anchor is preserved.
2026-04-25 13:29:43 +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: current streak should not reset to zero before today's check-in 2026-04-25 13:29:43 +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