finds.dev← search

// the find

gokulkrishh/expense.fyi

★ 759 · TypeScript · AGPL-3.0 · updated May 2026

Effortlessly track and manage expenses on-the-go with categorisation and logging.

Expense.fyi is a self-hostable personal finance tracker covering expenses, income, investments, and subscriptions, built on Next.js App Router with Supabase as the backend and Prisma for the schema. It has a real production deployment and a freemium model via LemonSqueezy, so this isn't just a tutorial project — someone actually ships it.

The tech choices are boring in a good way: Next.js App Router, shadcn/ui, Supabase auth with magic links, Prisma schema you can read and fork. The subscription tracking with renewal reminders is the one feature most personal finance apps half-ass or skip entirely. Email templates are in-repo using React Email, so the full stack is in one place. The AGPL license is an honest choice for a hosted SaaS — it forces anyone running it commercially to open their changes.

Prisma migrations are hand-rolled TypeScript files in `prisma/migrations/` rather than the standard `prisma migrate` flow, which means you lose automatic drift detection and rollback tooling — a footgun for anyone self-hosting. Data import is absent: no CSV import, no bank connection, no way to migrate from another tool, which is the single biggest friction point for adoption. The freemium cap (tracked in `constants/usage.ts`) gates basic functionality behind payment, which is a weird choice for an AGPLv3 project that invites self-hosting. Multi-currency support appears to exist (there's a currency.json) but there's no mention of exchange rate syncing, so cross-currency totals are probably just display formatting.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →