A minimalist expense tracker built as a solo full-stack project - Manual transaction logging, category breakdowns, visual reporting without the bank-linking overhead of full-featured finance apps.
Visit siteChecker is a personal finance tracker built to fill a specific gap: most expense trackers are either too complex (bank sync, budgeting engines, investment tracking) or too primitive (a spreadsheet). Checker targets a fast, manual-entry-first experience for people who don't want to link a bank account but still want real visualization of where their money goes.
The app is structured as a lightweight SaaS: a public marketing shell (landing + pricing) sitting in front of an authenticated dashboard. I made an explicit early decision to keep billing tiers as UI-only in v1 — visible for validation, not wired to Stripe — so I could focus engineering effort on the core tracking experience first.
Architecturally, the app leans hard into the Next.js App Router model: Server Components fetch data directly from Supabase (no API layer for reads), and all writes go through typed Server Actions that re-validate authentication and input independent of the client. Every table has Row-Level Security enabled in Postgres, so multi-tenant isolation is enforced at the database layer as a lastline of defense, even if application logic has a bug.
Beyond building features, I ran the project like a product: writing a full PRD before implementation, then later conducting a formal launch-readinessassessment against the shipped code — flagging where marketing copy had drifted ahead of actual functionality (CSV export, budget alerts) and prioritizing fixes like rate limiting, audit logging, and GDPR-style data export before considering a public launch.
“Great app”