零資料儲存

你的財務資料只存在你的 Google Sheets 中。我們絕不儲存、處理或存取你的敏感資訊。

WalletMap 儀表板介面,資料來源為使用者的 Google Sheets
儀表板上看到的每個數字都即時來自你自己的 Google Sheets(示範資料)

為什麼零儲存很重要

完整所有權 — 資料存在你的 Google Drive,只有你可以存取
不可能發生資料外洩 — 我們無法洩漏我們沒有的東西
天生符合 GDPR — 我們伺服器上沒有任何個人財務資料
刪除帳號後資料仍然保留 — 你的試算表永遠留在你的 Drive 中

運作方式

1

使用 Google 登入

登入時,我們會請求在你的 Drive 中建立和編輯單一 Google Sheets 試算表的權限。

2

自動建立試算表

系統會在你的 Google Drive 中自動建立一個專屬試算表。你所有的資產資料都會儲存在這裡。

3

直接讀寫

每次你新增、編輯或檢視資產時,我們都會即時從你的試算表讀取和寫入。我們的伺服器僅作為中間傳遞層。

4

隨時驗證

直接打開 Google Sheets 即可看到你的原始資料。你在那裡看到的就是應用程式使用的內容 — 沒有隱藏副本,沒有伺服器端資料庫。

架構深入解析

WalletMap 採用 BFF(Backend for Frontend)架構,Next.js API 路由直接與 Google Sheets API 通訊。當你請求儀表板時,伺服器會從你的試算表取得資料、加入即時市場報價,然後傳送到你的瀏覽器。在整個過程中,你的財務資料從未被儲存在我們的基礎設施上。即使是我們的資料庫,也只儲存你的基本 Google 個人資料(姓名和電子郵件)用於身份驗證。

為什麼我們選 Google Sheets,而不是 Plaid 或 Yodlee

老實說,我們在規劃 WalletMap 的時候,第一個被排除的選項就是接 Plaid 或 Yodlee 這類銀行聚合服務。你只要稍微研究一下,就會發現這條路的代價是:使用者要把銀行帳號密碼或 OAuth 授權交給聚合商,聚合商再把資料以結構化形式送進你的後端,而你的後端為了體驗順暢,幾乎一定會把資料快取到自己的資料庫。Mint、Personal Capital、YNAB 全部都走這條路。換句話說,使用者的銀行交易明細,不只在自己銀行裡,還有一份在聚合商,再有一份在 App 商手上。

我們不想要這個架構,所以從第一行程式碼開始就把財務資料放在使用者的 Google Sheets 上。實作上,登入時 WalletMap 只會請求兩個 OAuth scope:`drive.file`(只能存取本 App 建立的檔案)和 `spreadsheets`(讀寫該檔案)。我們無法讀你 Drive 裡其他文件、無法看你的 Gmail、也無法碰你別張試算表。權限的縮限不是承諾,是 Google 在 OAuth consent 畫面上幫你把關的硬限制。

對隱私法規來說,這個設計幾乎是免費通過 GDPR 與 CCPA 的「資料最小化」與「儲存限制」原則。我們伺服器上沒有你的銀行餘額、沒有你的股票持倉、沒有你的加密錢包地址,所以也沒有「資料外洩」這個情境可以發生。我們能洩漏的最多就是你的 Google 顯示名稱與 email — 這兩個欄位本來就是 OAuth 登入時 Google 給的最低限度資料。

這裡要誠實說一個取捨:因為資料每次都從 Google Sheets 讀,效能上絕對比不上「資料就在自家 Postgres」的架構。我們用 Redis 快取試算表內容、批次讀取、分頁,這些工程都是為了把這個架構代價壓低。但天花板就在那裡,這也是為什麼 WalletMap 不適合需要每秒重整的高頻場景。我們覺得對個人資產追蹤來說,準確與隱私比毫秒級更新重要 — 這是有觀點的選擇,不是技術限制。

關於零儲存的常見問題

如果我刪除 WalletMap 帳號,資料會跟著消失嗎?
不會。你的試算表是建立在你自己的 Google Drive,刪除 WalletMap 帳號只會移除我們資料庫裡的 email、姓名等登入資訊,以及你授予的 OAuth 權限。試算表本身完整保留在你的 Drive,你可以繼續用 Google Sheets 直接編輯,或匯入到別的工具。
我可以離線使用 WalletMap 嗎?
不行。因為資料即時從 Google Sheets 讀寫,沒有網路就完全無法運作。但相對地,你隨時可以離線打開 Google Sheets app 看你的試算表 — 那才是資料的真正所在地。我們把離線體驗委派給 Google,這是這個架構的副作用。
跟 Mint、Personal Capital 那種接銀行的 App 比有什麼差?
差別在於資料的所在地。那類 App 會把你的銀行交易明細快取在他們的伺服器上,所以體驗順但攻擊面大。WalletMap 走人工輸入路線,犧牲一些便利性換來「我們手上沒有你的財務資料」這件事。如果你重視被駭時的暴露面,這個取捨會合理。
你們的伺服器被駭客攻破會怎麼樣?
我們的 Postgres 裡只有 Google profile(email、姓名、頭像 URL)和你的 OAuth refresh token。最壞情況是 refresh token 外洩,但這個 token 的權限只能存取我們建立的那一張試算表,不能讀你 Drive 其他內容。你只要在 Google 帳號設定裡撤銷 WalletMap 的授權,就能立刻讓所有外洩 token 失效。

探索其他功能

準備好掌控你的資產了嗎?

開始追蹤你的資產,享受完整的隱私保護。你的資料絕不離開你的 Google Drive。