Loading
Back to Projects
HesapDefteri
Web ApplicationIn Progress

HesapDefteri

A Turkish bookkeeping app for tradespeople, freelancers and small businesses. Debts, receivables, payments and expenses live in one feed; receipts are QR-verifiable and reach customers over WhatsApp.

Why I built it

Most small-business owners still track receivables in a paper ledger or a notes app. Who owes what, which job was paid, what is left at month end — all scattered. HesapDefteri collapses this into a single feed: jobs, payments and expenses in one place, with a live balance per customer.

Built for tradespeople, freelancers and small businesses. Setup takes a minute and asks for no card.

Product walkthrough (37 seconds)

One feed instead of a ledger

The home screen is a feed: every job, payment and expense in one list with the month summarised above it. Customers in debt sit on the right, each with a direct WhatsApp button — no screen change needed to send a reminder.

Feed — month summary, entries and customers in debt
Feed — month summary, entries and customers in debt

Every customer on one page

A customer page shows balance, past activity and issued receipts on a single timeline. Jobs and payments are added from here, as are reminders and account statements.

Customer detail — balance, activity and receipts
Customer detail — balance, activity and receipts

Verifiable receipts

Payment receipts are generated as PDFs carrying a QR code. Scanning it verifies the receipt without signing in. Receipt numbers run without gaps and records are never deleted, only voided — so the history stays auditable.

Receipt and WhatsApp delivery
Receipt and WhatsApp delivery
Reports — income, expense and collection breakdown
Reports — income, expense and collection breakdown

Phone first

The user is on a phone most of the day — in the shop, on the road, standing next to a customer. Every screen was designed for the phone first and the desktop second.

Feed on a phone
Feed on a phone
Customer detail on a phone
Customer detail on a phone
Receipt on a phone
Receipt on a phone

Under the hood

Built as a pnpm monorepo on Next.js 16 (App Router), React 19, TypeScript and Tailwind. Supabase handles data, with Row Level Security on every table and no service-role key anywhere in the project. The sign-in-free surfaces — receipt verification, the online account and the accountant link — are opened only through narrowly scoped database functions.

Money is stored everywhere as an integer in the smallest currency unit, never as a floating-point number, so rounding errors cannot appear. The authorisation rules have their own test suite.

Comments 0

0 / 1000