个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Personal finance for Bitcoin households, where the tracker can't read your books.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Personal finance for Bitcoin households, where the tracker can't read your books.
Your categories, notes, budgets, goals, and net worth never reach our servers in a form anyone can read. Not us. Not an attacker who breaks in. Not a subpoena. The math runs in your browser, after you unlock it with a password that lives only on your device.
This is a cypherpunk project, and we're recruiting collaborators. Join the build ↓查看完整 README ↗Your categories, notes, budgets, goals, and net worth never reach our servers in a form anyone can read. Not us. Not an attacker who breaks in. Not a subpoena. The math runs in your browser, after you unlock it with a password that lives only on your device.
This is a cypherpunk project, and we're recruiting collaborators. Join the build ↓
Why this exists · How it's different · How it works · Join the build · Security
Orange Way is a personal-finance app you can use to track every account in one place: checking, savings, credit cards, investments, Bitcoin, Lightning. Categories. Budgets. Goals. Net worth.
The difference from every other tracker on the market is that our server can't read what you store with us. Your transactions and the labels you put on them are encrypted on your laptop or phone before they leave. The encryption key is derived from a password only you know. We keep ciphertext. You keep the key. If our database gets breached tomorrow, the attacker gets opaque blobs and the shape of your data, nothing more.
You still use the app like a normal web app. The encryption is invisible.
Three honest caveats. Every privacy product over-promises, and most people skip the small print. Read this part:
"Here we are faced with the problems of loss of privacy, creeping computerization, massive databases, more centralization, and [David] Chaum offers a completely different direction to go in, one which puts power into the hands of individuals rather than governments and corporations. The computer can be used as a tool to liberate and protect people, rather than to control them."
Hal Finney, cypherpunks mailing list, November 1992
Thirty-four years later, every mainstream personal-finance product operates exactly the way Finney warned against.
Monarch. Copilot. Simplifi. Empower. YNAB. Quicken. Intuit Mint (until Intuit shut it down in March 2024, giving 3.6 million users 90 days to migrate or lose years of financial history). Every single one stores your transactions, categories, budgets, notes, net-worth history, and connected-account credentials in a form their servers can read. "Bank-level encryption" means TLS in transit and AES at rest, with the keys they hold. One breach, one subpoena, one curious employee, one rogue administrator, and every line of your financial narrative is legible to someone who is not you.
That bargain made sense when "the cloud" was new. It makes less sense when:
Orange Way flips the model. We build the tracker. You hold the key. Neither of us can read your data without you.
This is not marketing. It's architecture. Read the threat model.
| Mint (killed 2024) | Monarch | Copilot | Simplifi | Empower | YNAB | Orange Way | |
|---|---|---|---|---|---|---|---|
| Open source | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| Self-hostable | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| Bitcoin-native (on-chain + Lightning) | ✗ | partial | ✗ | ✗ | partial | ✗ | ✓ |
| Server can read your categories and memos | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| Server can read your net-worth history | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| Data portable without vendor cooperation | ✗ | ✗ | ✗ | ✗ | ✗ | limited | ✓ |
| Cannot be shut down by an acquirer | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| Published open threat model | ✗ |
Every other tracker keeps the means to decrypt your data on its servers. We keep only ciphertext. Decryption requires a key derived from your password in your browser, released when you unlock and wiped when you lock.
If an attacker breaches our database, they get encrypted blobs and the shape of your data (how many transactions, what date ranges). Without each user's password, the breach is worthless.
This is the same approach used by Bitwarden, 1Password, Proton, and Signal, applied for the first time to a personal-finance tracker.
flowchart LR
User["Your password<br/>(in your head)"] -->|"stretched into a key"| Key["Encryption key<br/>(browser-only)"]
Key -->|"encrypts each row"| Cipher["Locked data<br/>(transactions, categories,<br/>notes, balances)"]
Cipher --> DB[("Our database<br/>only sees locked data")]
User -->|"unlock"| Key
DB -->|"locked rows<br/>+ dates only"| Browser["Your browser<br/>after unlock"]
Browser -->|"unlocks in memory"| UI["Net worth, budgets,<br/>category totals"]
User -->|"lock or log out"| Wipe["Key wiped<br/>from memory"]
src/lib/vault.ts for the exact configuration).For the deep technical version (AES-256-GCM, Argon2id, ML-KEM-768 for household sharing, the full threat model), see SECURITY.md.
Early development. Working code, not vapor.
Today Orange Way is a local-first tracker with:
Next on the roadmap:
Nothing here is production-ready yet. Star the repo if this matters to you. Watch to follow the build.
This is a cypherpunk project. Its success depends on community scrutiny and contribution, not corporate marketing. We need:
Today the app runs locally against a Supabase project you control.
git clone https://github.com/The-Orange-Way/Orange-Way-Me
cd Orange-Way-Me
bun install # or: npm ci
cp .env.example .env # fill in Supabase URL + anon key (other entries are optional)
bun run dev # or: npm run dev
# Open http://localhost:5173
The minimum to run is a Supabase project plus the three VITE_SUPABASE_* values in .env. The rest of the file documents optional secrets:
.env): OR_PLATFORM_API_KEY, OR_SUPABASE_URL, RESEND_API_KEY, etc. Required for bank-sync via the ow-or-proxy function. The proxy enforces an outbound URL allowlist; if you need to point it somewhere new, add an entry in supabase/functions/ow-or-proxy/index.ts and redeploy.VITE_SENTRY_DSN, SENTRY_URL, SENTRY_ORG, SENTRY_PROJECT, and the GLITCHTIP_API_TOKEN secret. Each is optional. Error telemetry is a no-op when the DSN is unset and source-map upload is skipped when the token is unset.functions/api/signup.ts, set in the Pages project env): RESEND_API_KEY_OW is required (the function returns a 502 send failed without it). The function sends a transactional confirmation only; the Resend "Emails" log is the marketing-list source of truth until a launch broadcast is in scope.On first launch, create a vault password. Everything you enter from that point is encrypted in your browser before it reaches Supabase.
Stack: TanStack Start (SSR-capable React) + Vite + Supabase (auth, Postgres, row-level security) + Cloudflare Pages (deploy target) + TypeScript.
A turnkey self-host package (Docker compose, one-command setup) ships once the bank-sync integration hardens post-launch.
Orange Way stands on thirty-five years of cypherpunk thought.
Apache License 2.0. See LICENSE.
We chose Apache specifically for its explicit patent grant. This code is meant to be built on.
Orange Way. Because "trust me with your money" is not a business model anymore.
| ✗ |
| ✗ |
| ✗ |
| ✗ |
| ✗ |
| ✓ |