Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
Quicken-style personal finance web demo (React/Next + Vercel)
翻訳待ち
Loading the full README.
Read the full README ↗A polished, demo-only personal finance web app in the spirit of a simplified Quicken: accounts, a transaction register, categories, a dashboard, and a monthly budget vs actual view. The in-app product name is Quicken Demo.
This is not production software. There is no login and no remote database. Each browser keeps its own copy of the sample household in IndexedDB. Do not enter real bank credentials or real personal transactions.
Live URL: https://dariten.vercel.app
Out of scope: bank sync, investments, multi-user auth, native mobile apps, a shared server-side household.
The ledger is stored in the browser with Dexie (IndexedDB), database name dariten. Object stores mirror the old account, category, transaction, and budget models. Amounts are integer cents.
dariten database under DevTools → Application → IndexedDB. The next load seeds it again.The seed records live in lib/seed-data.ts (ported from the old Prisma seed). Pages read a client snapshot and write through lib/db.ts. The happy path does not call a server database.
| Piece | Choice |
|---|---|
| App | Next.js 16 App Router, React 19, TypeScript |
| UI | Tailwind CSS 4 |
| Data | IndexedDB via Dexie 4, seeded per browser |
| Tests | Vitest + Testing Library (finance helpers, seed views, IndexedDB mutations) |
| Deploy | Vercel (no database env vars) |
| CI | GitHub Actions (lint → typecheck → unit tests → mabl on production / PR preview) |
None are required to run or deploy the demo. Copy .env.example to .env only if you want the optional Mabl identifiers locally.
| Variable | Required | Purpose |
|---|---|---|
MABL_API_KEY | CI only | Mabl CI/CD Integration API key — store as a GitHub Actions secret, never commit it |
VERCEL_AUTOMATION_BYPASS_SECRET | CI only | Vercel Protection Bypass for Automation — store as a GitHub Actions secret; must match the value in the Vercel project |
MABL_WORKSPACE_ID | Optional | Defaults in CI to the Dario Kondratiuk workspace (see below) |
MABL_APPLICATION_ID | Optional | Defaults in CI to the Dariten mabl application |
MABL_ENVIRONMENT_ID | Optional | Defaults in CI to the Vercel mabl environment |
MABL_API_KEY and VERCEL_AUTOMATION_BYPASS_SECRET are secrets. The three Mabl IDs are public identifiers and are hardcoded as workflow defaults.
DATABASE_URL is no longer read. Remove it from the Vercel project (Production, Preview, and Development) when you next tidy env vars. The old Neon project can be paused or deleted; this app will not connect to it.
You need Node.js 22+. Postgres, Docker, and Neon are not used.
git clone https://github.com/kblok/dariten.git
cd dariten
npm install
npm run dev
Open http://localhost:3000. The dashboard heading appears without a remote database. The sample household loads from IndexedDB on first visit.
| Script | What it does |
|---|---|
npm run dev | Next.js dev server |
npm run build | Production build (no database step) |
npm start | Serve the production build |
npm run lint | ESLint |
npm run typecheck | tsc --noEmit |
npm test | Vitest once (used by CI) |
npm run test:watch | Vitest watch mode |
kblok/dariten if it is not already connected.npm run build. No output directory override.DATABASE_URL. The site renders without Neon.Vercel rebuilds on every push to the connected Git branch. Preview deployments are the same app; each reviewer’s browser still has its own ledger. next build does not open IndexedDB and does not need any database URL at build or runtime.
If this project still has a Neon DATABASE_URL from the previous Postgres demo, delete that variable in the Vercel dashboard so a future build does not look like it depends on it. Nothing in the app reads it.
npm test
Coverage is unit / component level: money math, filters, validators, CSV export, seed views, IndexedDB create/reset, and the demo banner. There is no Playwright suite in this repo. Cloud browser coverage is intended to come from mabl after MABL_API_KEY is set.
.github/workflows/ci.yml on push to main and on pull requests:
npm cinpm run lintnpm run typechecknpm testAfter those tests, mabl jobs start on the matching event (same Dariten application + Vercel environment IDs):
| GitHub event | Job | URL |
|---|---|---|
Push to main | Mabl production | https://dariten.vercel.app |
| Pull request | Mabl preview | That PR’s Vercel Preview URL (app-url override) |
This is the beginning of the README. Read the rest at the original. Read the full README ↗