When managing daily finances, I wanted a tool that met a few specific personal requirements:
- Multi-device access without heavy infrastructure: Pure mobile apps are great for quick logging, but they keep your data trapped on a single phone. I wanted to manage budgets from both my desktop and mobile, without having to spin up a 1GB–2GB Docker stack (like Firefly III).
- Instant logging on the go: Even though it is a web-first application, logging an expense should not depend on a server roundtrip when mobile reception is poor.
- Integrated rental tracking: I needed to track monthly apartment rent, tenant advances, and utility splits alongside my personal day-to-day expenses.
To solve this, I built Hishab—a Vue 3 and Laravel 13 web app (packaged as a PWA and Android WebView) running on a 256MB free host.
How it is structured:
- Local-First with IndexedDB: All writes go to browser storage first (0ms feedback) and sync to the server in the background using the Web Locks API for concurrency safety.
- 256MB Server Footprint: Runs on a shared container using PHP-FPM and SQLite. No database daemons eating idle memory.
- Nested Categories & Rollups: Supports multi-level subcategories where child budgets and expenses roll up recursively in-memory.
- Personal + Tenant Management: Keeps daily expenses, budget rollovers, and rental leases in a single unified system.
- Data Safety: Automated daily gzipped SQLite database backups with a 30-day retention cleanup.
Read the Full Deep-Dive
I wrote a detailed breakdown covering the database schema, bottom-up budget rollups, and SQLite configuration on my blog:
Top comments (0)