Skip to content
RedMonkey2664Public

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

VAULT — Where money meets clarity

A premium personal-finance terminal that doesn't just show you where your money went — it actively helps you spend less. Dense, dark, keyboard-first. Built with Next.js 16, TypeScript, Tailwind v4, Framer Motion, and Recharts.

Your data is your own. VAULT ships with no sample data — every account, transaction, budget, and goal is entered by you, and it's all remembered so you can track spending over time.


Features

  • Dashboard — net position, spend-vs-budget ring, spend velocity, category breakdown, insights
  • Transactions — fast keyboard entry (n), CSV import with column-mapping + auto-categorization
  • Budgets — threshold-aware progress, days-left pacing, rollover, 80% / 100% alerts (email-capable)
  • Insights — explainable, rule-based findings (spikes, anomalies, budget risk) with one-tap actions
  • Goals — savings & debt-payoff with progress rings and monthly-needed pacing
  • Subscriptions — auto-detected recurring charges + a kill-list
  • Reports — monthly summary with a real PDF export
  • ⌘K command palette, light/dark, fully keyboard-navigable, reduced-motion aware

Run locally

npm install
npm run dev
# http://localhost:3000

That's it — no environment variables required. VAULT runs in local mode: sign up with any email/password and your data is saved privately in your browser (localStorage). Each person who visits gets their own private vault.


Deploy to Vercel (zero config)

  1. Push this repo to GitHub.
  2. Import it at vercel.com/new — Vercel auto-detects Next.js.
  3. Deploy. No env vars needed for local mode.

Deploy with Vercel

Anyone who opens your deployment can sign up and start tracking — their data lives in their own browser.


Optional: cloud sync & email alerts

VAULT works fully without any of these. Add them when you want more.

Capability Env vars Notes
Cloud sync (multi-device, real auth) NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY Create a Supabase project, then run the SQL in supabase/migrations (schema + Row Level Security + aggregation RPCs). Enable Google OAuth in the Supabase dashboard for the Google button.
Budget alert emails RESEND_API_KEY, RESEND_FROM Resend. Without a key, alerts are simulated in-app.
Account Aggregator (RBI) bank linking NEXT_PUBLIC_ENABLE_AA=true Stretch stub only — real linking needs a licensed AA provider (Setu/Finvu/OneMoney). Off by default.

Copy .env.example to .env.local and fill in what you need. With Supabase configured, VAULT automatically switches from local mode to cloud mode — no code changes.

Insights are deterministic and rule-based — no LLM / Claude API is used or required.


Scripts

npm run dev         # local dev
npm run build       # production build
npm run start       # serve the production build
npm run lint        # eslint
npm run typecheck   # tsc --noEmit

Tech

Next.js 16 (App Router) · TypeScript (strict) · Tailwind CSS v4 · Framer Motion · Recharts · TanStack Query · Zustand · React Hook Form + Zod · Supabase (optional) · Resend (optional) · @react-pdf/renderer.

Project map

src/
  app/            routes — (auth), (app) shell, onboarding, api/
  components/     ui primitives, charts, feature views, shell
  lib/
    data/         repository (Supabase or local), aggregates, hooks, default categories
    auth/         session, server actions, local session
    insights/     rule-based insight generator
    budgets/ goals/ subscriptions/ reports/   feature logic
    supabase/     clients + config
  store/          Zustand UI state (sidebar, theme, toasts, …)
supabase/migrations/   schema + RLS + aggregation RPCs

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages