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.
Loading the full README. The saved excerpt is shown below.
A platform for capturing equipment financing applications — commercial
(business applicant, owners, personal guarantors) and consumer (individual
applicant, optional co-signer) both ship together in V1 — logging lender
submissions and decisions, and reporting on dealer and lender/program
performance. See docs/blueprint.md for the full data
model, lifecycle design, and the reasoning behind this rebuild.Read the full README ↗A platform for capturing equipment financing applications — commercial
(business applicant, owners, personal guarantors) and consumer (individual
applicant, optional co-signer) both ship together in V1 — logging lender
submissions and decisions, and reporting on dealer and lender/program
performance. See docs/blueprint.md for the full data
model, lifecycle design, and the reasoning behind this rebuild.
Status: Phase 1 pilot build. Construction/heavy-equipment vertical,
single manufacturer, manual lender-submission and decision logging (no live
bureau pull or lender API, outside one rare routing-rule exception — see
docs/blueprint.md). This branch supersedes the consumer-only prototype on
main — see docs/blueprint.md, "What changed from the original
prototype." Both hard gates before real applicant data are now cleared:
legal/compliance review (M5, Vanguard Captive Management, 2026-09-06) and
authentication (2026-09-06, see "Sign in" below). Do not use with real
applicant data until the remaining items in docs/blueprint.md, "Known
limitations" are also addressed (no SSO, password reset, MFA, or
login-attempt rate limiting yet — Phase 1 auth scope, not oversights).
Next.js (App Router, TypeScript) · Prisma + PostgreSQL · Tailwind CSS · Zod · Vitest · next-auth (Auth.js v5) — unchanged from the original prototype apart from auth; this rebuild only changed the data model, application logic, and (as of 2026-09-06) added login, not the core technology choices.
Install dependencies
npm install
Start Postgres. Either Docker Compose:
docker compose up -d
or point DATABASE_URL (next step) at any Postgres 14+ instance you
already have running.
Configure environment variables
cp .env.example .env
Also set AUTH_SECRET — generate one with openssl rand -base64 32.
Run migrations and seed data
npm run db:migrate
npm run db:seed
Seeds one manufacturer (construction/heavy-equipment vertical), three
dealers, two lenders each with one financing program, and demo logins
(see "Sign in" below) — no applications yet, a clean slate for local
dev/testing. For a sales demo instead, run npm run db:seed:demo (see
"Sales demo data" below) in addition — it seeds the same base plus a
full storyline of applications.
Run the app
npm run dev
Then visit http://localhost:3000/ and sign in (below) before trying
any of the dealer or manufacturer surfaces — they all require it now.
Every /apply, /dealer, and /manufacturer route (and the API routes
they call) requires a session. npm run db:seed creates one DEALER
login per seeded dealer, scoped to that dealer only, plus one
MANUFACTURER login scoped to the aggregate-only dashboard — see
docs/blueprint.md, "Authentication" for the full role model.
| Password | Role | Scope | |
|---|---|---|---|
[email protected] | demo-password-2026 | DEALER | Cascade Construction Equipment (DLR-001) only |
[email protected] | demo-password-2026 | DEALER | Northgate Heavy Machinery (DLR-002) only |
[email protected] | demo-password-2026 | DEALER | Ironline Equipment Sales (DLR-003) only |
[email protected] | demo-password-2026 | MANUFACTURER | Network dashboard only, no dealer PII |
These are demo-only credentials sharing one hardcoded password — never do
this outside local development. A DEALER login for one dealer gets a 404
if it tries to reach another dealer's pages or API routes; a
MANUFACTURER login gets a 404 on any dealer page.
Once signed in:
http://localhost:3000/apply/DLR-001 — choose business or individual
intake (ApplicantTypeSelector), then complete either flow (requires
the matching DLR-001 dealer login)http://localhost:3000/dealer/DLR-001 — that dealer's applicationshttp://localhost:3000/dealer/DLR-001/applications/<id> — an
application's detail page, where lender submissions, decisions,
acceptance, funding, and bureau pulls are logged manuallyhttp://localhost:3000/manufacturer — the network-wide dashboard
(requires the [email protected] login)npm run db:seed:demo seeds the same manufacturer/dealers/lenders/logins as
npm run db:seed, plus a full storyline of 8 applications spanning every
status and decision outcome the platform tracks — deliberately including an
honest loss (CLOSED_LOST) and an unresolved case (flagged needsReconciliation),
not just manufactured wins, since a demo that only shows success isn't
credible to a technical buyer. It also adds a third financing program
(Timberline Equipment Advantage) with a FICO routing rule, so the rare
BureauPull path (Blueprint §1.2) has a real example to show, not just a
description. See prisma/seed-demo.ts for exactly what it creates. It is
not idempotent like db:seed — run it once against a fresh database.
For a demo you can pull up anywhere — not just from one laptop — deploy to Vercel with a hosted Postgres database:
This is the beginning of the README. Read the rest at the original. Read the full README ↗