這是什麼
Daily 是一個刻意做得很小的每日追蹤器。它同時記兩種承諾:習慣(你要去做的事,例如 「讀 30 分鐘」「冥想」)與原則(你要守住的線,例如「不吃加糖」「吃飯不滑手機」)。 兩者用同一套打卡機制並排呈現,再用一張 GitHub 風格的完成度熱圖把你的堅持視覺化。
為什麼做
大多數習慣 App 都越長越大——徽章、等級、連勝動畫、社群比較,最後反而讓人焦慮。我想要 的方向相反:把功能砍到最少,只留下「今天有沒有做到」這一件事。所以 Daily 最多只能有 7 個進行中的項目、名稱限 10 個字、只有一種強調色,沒有任何遊戲化。目標是一致,不是 功能多。
怎麼用
主畫面是近 7 天的打卡清單,點一下完成;行事曆頁有月熱圖、Full-Combo 橫幅與封存清單; 細節頁則是連續紀錄(streak)的英雄區、統計與每日歷史。所有操作都是樂觀更新:先在本地 立即反映,再背景寫回 Supabase,失敗才回滾並提示。
技術重點
前端是 React 18 + Vite 6 的純 JS/JSX,所有日期與連續紀錄的計算都集中在一支純函式
data.jsx,保持可單元測試。資料層 db.js 只做最樸素的 CRUD,完成度與 streak 一律在
client 端從載入的資料算出。後端是 Supabase(Postgres + Auth),以 RLS 綁定使用者,
透過 vite-plugin-pwa 打包成可離線安裝、部署到 GitHub Pages。
設計取捨
主題是固定的單一變體(綠 / 淺色 / 銳角),token 系統仍保持模組化以便日後擴充,但目前 不放切換器。少即是多——能不加的就不加。
