Project 10

Budgeify — Personal Finance App

A personal finance app — income/expense tracking, savings goals, calendar reminders — shipped to production on Vercel in a one-week sprint, with an insights engine that tells you how confident it is before it tells you anything else.

§ 01 Problem

Personal finance apps fail in two ways: they make adding a transaction feel like filing taxes, or they generate 'insights' from three data points and present them as truth. I wanted a minimal tracker where entry is fast, and where the analytics layer is honest about how much data actually backs each claim.

§ 02 Approach

  • Next.js 14 App Router with server actions per domain (src/actions/ — income, expense, goal, reminder, budget-alert, each with its own test file), Clerk for auth with a user-sync webhook, and Neon Postgres through a six-table Drizzle schema.
  • The 'Oracle' insights engine (src/lib/oracle/) is deterministic heuristics, not an LLM: trend, anomaly, health-score and goal insights, each passed through a confidence estimator that scores 0–100 based on data volume and time span — with under a month of data, a 'trend' caps at low confidence instead of pretending.
  • Recurring reminders run on a Vercel cron (daily 08:00 → /api/cron/reminders), and reports export to PDF via jsPDF.
  • Quality gates from day one of a one-week build: Vitest unit tests co-located with every server action, Playwright e2e config, Lighthouse CI, and Web Vitals reporting.

§ 03 Outcome

Live at budgeify.vercel.app: sign up, track income and expenses, set goals, get calendar reminders. The part I'd defend in an interview is the confidence layer — an analytics feature that quantifies its own uncertainty instead of hiding it.

§ 04 For the record

§ 05 Evidence

evidenceLive demo — budgeify.vercel.app
evidenceGitHub — barkobt/budgeify
evidencesrc/lib/oracle/confidence.ts — insight confidence estimation
evidencevercel.json — daily reminder cron (0 8 * * *)
Budgeify landing — live at budgeify.vercel.app
fig. 1Budgeify landing — live at budgeify.vercel.app