DEV Community

Cover image for Building a Lightweight, Local-First Finance & Rental App on a 256MB Host
K. Polash
K. Polash

Posted on Originally published at polash.link

Building a Lightweight, Local-First Finance & Rental App on a 256MB Host

When managing daily finances, I wanted a tool that met a few specific personal requirements:

  1. 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).
  2. 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.
  3. 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:

👉 Read the Full Article on polash.link

Top comments (0)