FINANCE / PRODUCTIVITY

HesAppcım

by Asil Türkmen

HesAppcım — group expense tracking and debt balancing app by Asil Türkmen, built with Next.js and TypeScript

HesAppcım is an expense-tracking web app for groups — vacations, roommates and gatherings. It records who paid for what, keeps balances up to date automatically, and works in both Turkish and English. The name plays on the Turkish word "hesap": the bill.

The problem

Shared spending always ends the same way: a pile of receipts, a long group chat and someone doing arithmetic at midnight. "Who owes whom" is trivial for two people and genuinely annoying for six — especially when expenses arrive over days and everyone paid for something.

Why I built it

I wanted the settling-up step to disappear. In HesAppcım you add expenses as they happen; the app maintains a running balance for every member of the group, so at the end nobody has to reconstruct history — the answer is already there.

Technical architecture

The app is built with Next.js and TypeScript, styled with Tailwind CSS and deployed on Vercel. Group and expense data feed a balance engine that nets debts between members: instead of a long list of pairwise IOUs, everyone sees one clear number. Bilingual TR/EN support is part of the interface design rather than an afterthought.

The interface is deliberately calm: adding an expense takes seconds, the balances are always in sight, and switching language never loses your place. A tool used mid-vacation with one hand on a phone has no room for ceremony.

Challenges and what I learned

The interesting problems were in the balance logic — handling uneven splits and keeping every total consistent as the expense list changes. Money is exactly the domain where silent rounding or state bugs destroy trust, so getting the TypeScript types and calculations right mattered more than any visual detail.

HesAppcım also taught me to treat edge cases as the actual product: the happy path of equal splits is trivial, and everything people remember about a finance tool comes from how it behaves in the messy cases.

The project also deepened my Next.js experience: structuring an app for clarity, making rendering choices deliberately, and shipping to production on Vercel.

Technologies

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Vercel

Other projects

All projects