返回作品Back to work

savebox — 內容收藏整理 App savebox — Save-and-Actually-Use Collection App

把 IG/TikTok/YouTube/網頁連結存進來,AI 自動擷取重點(食譜步驟、地點、待辦)並分類,讓收藏真的被用掉。資料完全存在裝置上,沒有雲端資料庫、沒有帳號,換裝置靠 .savebox 轉移檔。 Save links from IG, TikTok, YouTube or the web, and let AI extract what matters — recipe steps, places, to-dos — then file it automatically, so saved things actually get used. Fully local-first: no cloud database, no account; device transfers use a .savebox file.

  • Expo SDK 57
  • React Native
  • TypeScript
  • expo-sqlite
  • Groq API
savebox — 內容收藏整理 App

關於這個專案

大家都會收藏一堆連結,然後再也沒打開過。savebox 想解決的是「收了等於沒收」——存進來的內容會被 AI 讀過、抽出重點並分類,變成能真正用得到的資料。

目前第一、二階段完成:貼上連結 → 自動抓取 → AI 解析分類 → 看到結果;失敗會顯示原因並可重試;支援巢狀收藏夾與跨收藏夾搜尋。

架構決策

  • 本地優先(local-first) — 沒有雲端資料庫、沒有帳號系統。連網只用於「處理」,不用於「儲存」。
  • AI 金鑰自備(BYOK) — 使用者填自己的 Groq 金鑰,不經過任何伺服器;金鑰只存在系統安全儲存區,不落地到資料庫。
  • 三條硬約束 — 主鍵一律 UUID(轉移檔跨裝置合併時靠它比對)、使用者手動修正過的欄位 AI 永不覆蓋、資料庫 migration 只能往後加不能改舊的。

兩個實作細節

繁體中文搜尋必須用 SQLite FTS5 的 trigram 斷詞,預設的 unicode61 對中文形同無效。

匯入佇列的設計是在防競品「連續匯入後卡死」的問題,不是為了效能:每個請求都要逾時、併發上限 2、失敗一定寫進資料庫、啟動時救回中斷的孤兒任務。

註:savebox 目前只是開發代號(取自轉移檔副檔名),尚未做商標查證,不是正式產品名。