Tasks checklist app (tasks.justinsforge.com)¶
Mobile-first clickable task list so triage is one tap, not a natural-language round-trip. Built 2026-06-06 after Justin pointed out NL is worse than a checkbox for completion.
- Code:
scripts/forge_tasks_checklist_app.py(Flask, self-contained, HTML inline) - Service:
forge-tasks-checklist.serviceon Console, port 8097, enabled+Restart=on-failure - Public: https://tasks.justinsforge.com via VR Alliance tunnel (the
*.justinsforge.comtunnel on Console), gated by Cloudflare Access (allow[email protected], app uid64e2d18b-5f6f-4b6f-9dc5-246221c72b14) - Home link: gold CTA button at top of justinsforge.com landing (
sites/justinsforge.com/landing/index.html, under the tagline)
Behavior¶
- Live-fetches each Tasks DB on every load via Notion public API (
NOTION_INTEGRATION_TOKENin~/.forge-secrets/notion-cookie.env); never drifts from Notion. - Brand tabs: Life / JWVR / Nova / Fishing / Bass (DB ids hardcoded in the app, from [[notion-scaffold]]).
- Tap a checkbox ->
POST /completePATCHes NotionStatus=Done+ stampsDone At. Idempotent. - Shows non-Done tasks only, display-deduped by lowercased title (the duplicate rows still exist in Notion; checking one off flips only the row the page points at).
Notes¶
- Same
Status=Donewrite path the Telegram coordinator'stool_update_taskuses (forge_telegram_inbox_brain.py). - To add a brand or change DB ids: edit
TASKS_DBSin the app. - Verified end-to-end on a throwaway task: tap -> Notion Status=Done + Done At stamped.
[Claude Code, 2026-06-06]