尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Tameru takes your pay, bills, card balances and savings goals and turns them into one number: how much is safe to spend today without coming up short. It lives on your phone's Home Screen like any other app, but it's a web app. There's no app store, no account and no bank login, and everything you enter stays on your device.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗貯める (tameru) is Japanese for to save up.
Tameru takes your pay, bills, card balances and savings goals and turns them into one number: how much is safe to spend today without coming up short. It lives on your phone's Home Screen like any other app, but it's a web app. There's no app store, no account and no bank login, and everything you enter stays on your device.
Every time you open the app, Tameru does the subtraction for you:
TAMERU · SAFE TO SPEND
12 days to payday
--------------------------------------------
Chequing + cash 2,206.40
Pay still coming +980.00
Bills to come −893.48
Goals left this period −100.00
Still planned in categories −712.71
Buffer −100.00
--------------------------------------------
SAFE TO SPEND $1,380.21
$115.01 a day · 12 days
Pay that varies counts at its low end, and bills that vary count at their high end. Money already planned for a category, a goal or a bill comes off first, so what's left is yours to spend.
You need Node 20 or newer.
npm install
npm run dev # the app at http://localhost:5173
npm run dev:gate # same, but shows the install page like a browser tab would
npm test # unit and integration tests (Vitest)
npm run typecheck
npm run build # production build into dist/
Outside an installed PWA the app shows its install page. Add ?dev=1 to the URL to run it in a normal tab. That also unlocks the Debug screen (#/debug), where you can fake today's date, jump ahead in time, and replace everything with sample data.
src/
domain/ pure money logic: safe to spend, budgets, periods, recurrence, receipt parsing (+ tests)
services/ the app's operations on top of the domain: plan, accounts, recurring, receipts, backups
data/ IndexedDB (Dexie) repositories, the on-device OCR, sample data
ui/ Preact screens and components, styles and design tokens
pwa/ install gate, service worker updates, iOS quirks
copy/ every string the app shows
cards/ card art catalog, by institution
site/ the product site at tameru.cc (static HTML)
scripts/ tooling, e.g. cleaning up card art
tests/ integration tests against a fake IndexedDB
Preact · Vite + vite-plugin-pwa · Dexie · Tesseract.js · Vitest · Geist · Cloudflare Workers
Pushing to main deploys both projects on Cloudflare Workers:
| What | Where | From |
|---|---|---|
| The app | app.tameru.cc | the repo root (npm run build → dist/) |
| The product site | tameru.cc | site/ (static files in site/public) |
Bump the version in package.json with each release. It shows in the app under More, and an "Updated to vX" note appears on the phone after the new build swaps in.