從自己的資產管理需求出發:Assets Tracker Side Project 開發心得
💰 從自己的資產管理需求出發:Assets Tracker 開發心得
這段時間,我終於把一個在腦袋裡放了很久、偶爾還會跳出來提醒我的 Side Project 做出來,也順手把它開源了 🚀
![]()
簡單來說,它是一個幫你看清楚「自己到底有多少錢」的工具。
原本以為只是把幾個數字加起來,真正動手後才發現:這件事比想像中複雜很多 😵💫
Assets Tracker 可以把以下項目集中在同一個地方:
- 💵 現金帳戶
- 📈 股票 / ETF(台股、美股)
- 🪙 加密貨幣
- 🏠 房地產
- 💳 負債
- 📑 選擇權
它會將所有資產換算成同一個幣別,並提供圖表、資產分析、FIRE 試算與現金流資訊。打開 Dashboard,就像替自己的財務狀況做一次快速健康檢查。
而且最重要的是:
**你可以 100% 免費自己架一套 !! **
使用 Vercel(前端)搭配 Neon(PostgreSQL),幾乎零成本,幾分鐘就能跑起來。無論使用電腦或手機,都可以直接開啟使用,並支援 RWD 與 PWA。
| Desktop | Mobile |
|---|---|
💡 一開始的問題其實很單純
我當時腦中只有一個問題:
🤔 我現在到底有多少資產?而且能不能不要每次都手動更新試算表?
因為現實通常是這樣:
- 薪水和現金放在銀行帳戶
- 台股、美股散落在不同券商
- 加密貨幣放在另一個交易所
- 房地產、負債與其他投資各有自己的計算方式
- 資產還分成不同幣別(TWD / USD / Crypto)
整理到最後,你會發現一件事:
「加總」這件事,其實已經沒有想像中簡單。
尤其匯率一動,昨天才算好的總資產,今天看起來又換了一張臉。
接著,你就會開始一段非常熟悉的循環:
打開試算表 → 更新價格 → 修改匯率 → 過幾天忘記更新 → 下次再說
所以我想,不如在 AI 的協助下,自己做一個「只回答資產問題」的工具,讓它替我處理這些重複工作吧!
🎯 我其實不是想做記帳軟體
市面上的記帳工具很多,大致可以分成幾種:
- 記錄早餐吃了什麼(很細)
- 幫你分類支出(很生活)
- 幫你管理投資組合(很金融)
但我真正想看的其實是:
- 我現在的總資產是多少?
- 扣掉負債後還剩多少?
- 資產分布長什麼樣子?
- 資產成長是靠存錢,還是靠市場?
- 距離 FIRE 還有多遠?
說白一點:
💭 我不是想知道「錢花去哪裡」,而是想知道「我現在累積了多少資產」。
因此,Assets Tracker 從一開始就刻意不做:
- 複式簿記
- 細到每一筆消費的紀錄
- 過度複雜的預算系統
它只專注做一件事:
🗺️ 把所有資產整理成一張「看得懂的圖」。
📊 Assets Tracker 在做什麼?
目前可以管理:
- 現金 / 銀行帳戶
- 股票 / ETF(支援台股與美股)
- 加密貨幣
- 房地產
- 負債
- 選擇權
系統會進一步:
- 換算成統一幣別
- 每天儲存一份資產快照
- 繪製資產成長曲線
- 呈現資產配置
- 計算現金流
- 進行 DCA 試算
- 進行 FIRE 試算
- 匯出與還原 JSON
簡單來說,就是:
📈 幫你把財務人生變成一條時間線。
你看到的不只是今天的一個總額,還能回頭了解:資產從哪裡開始、經歷了什麼變化,以及現在正往哪裡走。
🔐 為什麼選擇 Self-hosted?
這是我非常在意的一點。
財務資料很特別。即使裡面沒有銀行密碼,光是帳戶餘額、投資部位與負債狀況,就足以描繪一個人的財務全貌。
🛡️ 這些資料不只要方便使用,我也想清楚知道它們「放在哪裡」。
所以,我不想把它做成一個「將所有資產資料交給某個 SaaS」的服務,而是選擇 Self-hosted:
- Docker 一鍵啟動
- PostgreSQL 放在自己的環境
- 資料由自己管理
- 隨時可以備份
- 想搬走就能搬走
目前有兩種部署方式:
1. ☁️ 100% 免費自架(推薦)
- Vercel:免費託管前端
- Neon:免費 PostgreSQL 方案
✨ 幾乎不用花錢,就能完整跑起來。
2. 🏠 本機 / NAS / Docker
- 完全自行架設
- 資料完全由自己掌控
對我來說,Self-hosted 不只是一種部署方式,也是產品本身的一部分:工具可以換、主機可以搬,但資料應該一直掌握在自己手上。
📱 電腦與手機都能使用
Assets Tracker 具備:
- 🖥️ RWD 響應式設計
- 📱 手機瀏覽支援
- 📲 PWA 安裝功能,使用體驗接近 App
你可以在電腦上仔細查看資產配置,也能在手機上快速確認今天的 Dashboard。畢竟真的想看資產變化時,通常不會特地先打開電腦。
🧮 真正困難的不是 UI,而是「數字的定義」
做了這個專案後,我才發現:
🔍 財務系統最難的不是畫圖,而是定義「每個數字到底代表什麼」。
1. 💱 匯率問題
舉例來說:
- 你的美元資產沒有變
- 但 USD / TWD 匯率上升了
於是,資產「看起來變多了」,但你明明什麼都沒有買,也沒有賣。
那這算是:
- 投資報酬?
- 匯率收益?
- 還是幻覺?
答案是:
都是,但你必須分得出來。
2. 🕰️ 歷史資料不能亂算
如果系統只保存「現在的匯率」:
回頭查看歷史資料時,數字會全部失真。
所以我最後採取的做法是:
- 保留原始幣別
- 每天儲存 Snapshot
- 歷史資料保留當時的換算結果
3. 📅 時間比想像中更麻煩
財務系統最可怕的不只是 Bug,還有:
- 時區
- 月底
- 非交易日
- 到期日
我真的遇過:
- UTC+8 對齊錯誤
- DCA 日期整個偏移
- 選擇權到期日算錯一天
這些問題看起來只是小誤差,但放進財務系統後,都可能直接影響使用者對數字的信任。
🧭 做到後來,其實變成「產品問題」
一開始,我以為主要工作只是請 AI 協助寫程式,再由自己微調。做到後來才發現,每多一個功能,都會帶出一連串產品問題:
- 這個功能該不該做?
- 做了會不會讓系統變得太複雜?
- 使用者看得懂嗎?
- 這個數字值得信任嗎?
例如:
要不要直接串接銀行?
我的答案是:
🛑 先不要,因為風險與坑都太多。
能做,不代表現在就該做。Side Project 的時間與維護能力都有限,知道什麼時候踩煞車,反而比一直加入新功能更重要。
🤖 AI 有幫忙,但不會替你做決定
這個專案大量使用 AI 協助:
- 撰寫程式碼
- 修復 Bug
- 補充測試
- 重構
- 撰寫文件
但有一件事,AI 做不到:
🧭 替你決定「產品應該長什麼樣子」。
AI 可以加快開發速度,但需求、取捨與最後的驗證,仍然要由自己負責。
它很像一位速度很快的協作者,可以陪我迅速把想法做成第一版;但方向盤,仍然要握在自己手上。
🧠 開發這個 Project 學到的四件事
1. 先決定「不做什麼」,比決定做什麼更重要
每個新點子看起來都很合理,但如果全部塞進去,產品很快就會失去原本的重點。先把邊界畫清楚,後面的技術選擇反而會簡單很多。
2. 財務產品最重要的是「可信度」
圖表再漂亮,只要有一個數字對不上,使用者就會開始懷疑其他所有結果。
備份能不能還原、匯率是否正確、跨時區會不會偏移一天——這些看似不起眼的細節,才是真正決定產品能不能長期使用的地方。
3. Self-hosted 的 UX 很重要
很多人會卡在:
- Docker
- 環境變數
- Database Migration
結果是:
還沒開始用,就先放棄了。
所以,Docker、環境變數、Migration 與升級文件都不是附屬品。它們是使用者第一次接觸產品時,最先遇到的介面。
4. 🌍 開源會迫使你重新整理產品
開源之後:
- 別人會閱讀你的程式碼
- 別人會照著 README 操作
- 別人會提出 Issue 或 PR(非常歡迎!)
原本只有自己知道的操作習慣,也必須轉化成別人看得懂的介面與文件。
某種程度上,開源就像把 Side Project 從自己的房間搬到公共空間:東西放在哪裡、別人能不能找到,以及是否存在自己沒想到的問題,都必須重新整理。
如果你發現 Bug 或可以優化的地方:
🙌 非常歡迎提出 Issue 或 PR!
🚧 目前的狀態
目前版本為:
🛠️ v1——已經可以使用,但仍在持續新增功能。
現階段的限制包括:
- 資產仍需手動輸入
- 尚未串接銀行
- 沒有複式簿記
不過,這些限制是刻意保留的:
⚖️ 我寧願選擇簡單可靠,也不要複雜但不穩定。
🚀 結語
這個 Project 最初只源自一個念頭:
我想知道自己到底有多少錢。
結果一路做下來,它慢慢長成了:
- 資產系統
- 時間系統
- 資料模型
- 部署系統
- 還有一點人生整理工具
回頭看,最有趣的其實不是功能越來越多,而是每一次取捨,都在反映自己真正重視的事情:
Side Project 最有趣的地方,不只是技術;而是你會慢慢看清楚「自己在意什麼」。
如果你也:
- 不想把資料交給 SaaS
- 想自己掌控資產
- 想查看長期財務狀態
- 想 100% 免費自己架一套
歡迎來玩玩看!如果你剛好也有類似的資產管理困擾,或對 Self-hosted、Docker 部署有任何建議,也很歡迎到 GitHub 留下 Issue 或 PR 🙌
- 🧑💻 GitHub:github.com/mike840609/assets_tracker
- 🌐 Demo:astt.app
- 📄 License:MIT