Meridian
A personal-finance app in the Rocket Money mold: Plaid-linked accounts, budgets, net worth, and an AI advisor that only advises.

What it is
Meridian pulls accounts, transactions, balances, liabilities and investment holdings through Plaid and turns them into one calm view: net worth over time, spending by category, budgets with live spend, recurring charges and subscriptions, credit health, and portfolio performance. An AI advisor layered on top writes spending and portfolio reviews. It recommends — and by design has no path to place a trade.
It started as a backend — 25 JSON endpoints behind Supabase Auth with Row-Level Security, so a request can only ever touch its own rows — and grew a full UI with a sample-data mode, so anyone can explore the product without linking a bank.
How it's built
- Next.js 16 App Router with API routes. Every user route resolves the Supabase access token to a user-scoped client, so Postgres RLS enforces isolation instead of application code.
- Plaid access tokens are encrypted at rest with AES-256-GCM and never returned to the client. Sync, cron and webhook paths use a service-role client filtered by an explicit user id.
- Per-user rate limiting on the Plaid and AI routes through Upstash; a daily cron refreshes data and snapshots net worth for the history chart.
- The AI advisor reuses a research → structured-output engine: it gathers the user's data, reasons over it, and returns typed insights the UI renders as cards.
Highlights
- Security decisions are structural: RLS for isolation, encryption for bank tokens, verified Plaid webhooks, and an advisor that cannot execute anything.
- Sample-data mode renders the entire product — overview, transactions, budgets, recurring, investments — with realistic fixtures, which made it demoable and testable without a live bank link.
- Adapters, formatters, pricing and webhook guards are covered by unit tests that run with no network.
- Responsive down to a phone, including a bottom tab bar for the main sections.
What I'd do next
- A real credit-bureau provider — Plaid's standard products don't return a FICO score, so credit health is derived from utilization and payment history today.
- Cancellation flows for recurring charges beyond marking a subscription cancelled.
More screens

