DEV Community

Osman Pehlivanoğlu
Osman Pehlivanoğlu

Posted on

A Finance Tracker, Nothing More

You know what happens when a freelancer tries to track expenses?

Option A: A spreadsheet that starts clean and turns into chaos by March.

Option B: QuickBooks / Parasut / some enterprise tool that asks you about "chart of accounts", "fiscal periods", and "double-entry
bookkeeping" before you can log a single coffee purchase.

Option C: A mobile app that's free until you want to... export your data. "Upgrade to Pro for $7.99/month" 💀

I just wanted to know where my money goes.

So I built Hesap Bizden — a dead simple income & expense tracker for small businesses and individuals.

## 🎯 What It Does

  • Cash, Bank & Receivable accounts — Group your money where it actually lives
  • Income & Expense tracking — Tap, type amount, done
  • Transfers between accounts — Move money around with automatic balance updates
  • Recurring transactions — Bills that repeat? Set it once, forget it
  • Multi-currency support — TRY, USD, EUR, GBP with live exchange rates from Turkish Central Bank
  • Reports — Monthly charts, category breakdowns, multi-currency conversion
  • Team sharing — Invite your partner/accountant with role-based access (owner/admin/member)
  • Multi-company — Freelancer with a side business? Switch between them instantly
  • CSV export — Your data is yours. Always.
  • Dark mode — Obviously.

## 🛠️ Tech Stack

  • Next.js 15 (App Router + Turbopack)
  • PostgreSQL + Prisma
  • NextAuth v5 (Google OAuth)
  • TailwindCSS + shadcn/ui
  • Zustand for state management
  • next-intl for i18n (Turkish + English)
  • Recharts for beautiful charts

## 💡 Lazy Loading Transactions

Transactions aren't fetched until you click on an account. Once loaded, all filtering (search, date range, category) runs client-side.
No pagination. No loading spinners for every filter change.

"But what about thousands of transactions?"

If your cash register has thousands of transactions, congratulations — you can afford to pay for a real accounting tool.

## 💡 3-Layer Exchange Rate Cache

Multi-currency was the hardest part. Here's how the exchange rate system works:

  1. In-memory cache (1 hour TTL) — fastest
  2. Next.js fetch cache (1 hour revalidate) — no redundant API calls
  3. TCMB API (Turkish Central Bank) → fallback to exchangerate-api.com

Any currency pair converts through TRY as base: rates[from] / rates[to]. Simple math, robust caching.

## 💡 Optimistic UI Everywhere

Delete a transaction? It disappears instantly. The API call happens in the background. If it fails, the list re-fetches to restore the
correct state. The app feels fast because it acts fast.

## 💡 No Credentials Auth

Google OAuth only. No "forgot password" flows. No password hashing debates. No security nightmares. One button, you're in.

## 📱 Mobile-First

The whole app was designed for phones:

  • Slide-in sidebar drawer
  • Combobox account selector (with search)
  • Collapsible filter bar
  • Touch-friendly action buttons

No "desktop app crammed into a phone screen" nonsense.

## 🔒 Privacy

  • Your data stays in your account. No third-party analytics. No selling data.
  • Full KVKK (Turkish GDPR) + GDPR compliance
  • Account deletion cascades through everything — when you leave, your data actually leaves
  • All API routes enforce multi-tenant isolation via checkAccess() on every single request

## 🤔 What I Deliberately Left Out

  • No pagination — Not needed at this scale. YAGNI.
  • No rate limiting — Every API is behind Google OAuth. No anonymous access.
  • No AI features — Your expense tracker doesn't need ChatGPT.
  • No gamification — No streaks. No badges. No "🎉 You saved $5 this week!" popups.
  • No social features — Nobody needs to see your grocery spending.

## 📱 Android App? Nah.

I've been through this before with Dowe, my weekly planner app. Google wants 12 testers to use your app for 14 days
before you can publish. For a to-do list app. I did it once. Not doing it again anytime soon.

So this time? No Play Store. The web app works perfectly on mobile browsers. Add it to your home screen if you want. I'm not jumping
through hoops to publish a finance tracker that requires Google sign-in... on Google's own platform. The irony writes itself.

## 🔗 Try It

Live: hesapbizden.com

It's free. No signup walls. No premium tiers. Sign in with Google, create a company, start tracking.

What do you use to track your business finances? I'm genuinely curious if anyone else finds existing tools as unnecessarily complex as
I do.

Top comments (2)

Collapse
 
aior profile image
AIOR TEKNOLOJI LIMITED SIRKETI

I’ve been using the app for a while and what I like most is how straightforward it is. It doesn’t try to overwhelm you with features you don’t actually need. Adding expenses is quick, the interface is clean, and the reports are simple but useful. The recurring transactions and multi-currency support are especially helpful. It feels practical and focused, which makes it easier to build the habit of tracking finances consistently. Sometimes less really is more.

Collapse
 
ospehlivano profile image
Osman Pehlivanoğlu

Thank you for the kind words! Simplicity and practicality are at the core of what I build, so it's great to hear that comes through in your experience. Glad recurring transactions and multi-currency support are hitting the mark. One thing you might find useful — there's also an account sharing feature if you ever want to manage finances with someone else. Hope you enjoy it!