~/work/easybill

liam@portfolio:~ cat case-study.md

← cd ..

EasyBill

Mobile-first property management for Vietnamese landlords — room revenue, AI meter readings, and PDF invoices in one calm interface. Built for parents and small operators who run several rooms from a phone, not a back-office ERP.

fullstack 2026 Fullstack developer

$ stack

  • SvelteKit 5
  • Svelte 5 runes
  • Bun
  • SQLite
  • Drizzle ORM
  • Tailwind CSS v4
  • OpenRouter vision OCR
  • Kamal

01 // problem

Parents and landlords were tracking multiple rental rooms with spreadsheets, manual utility math, and ad-hoc invoices. Nothing was mobile-first or fully in Vietnamese, and re-logging in every week added friction. Meter readings lived in camera rolls or paper notes; rent and utility totals were recalculated by hand each month. When a tenant asked for a breakdown, there was no single source of truth — only scattered messages and half-finished spreadsheets.

02 // solution

Built EasyBill as a SvelteKit app with a revenue dashboard, room payment status, AI-assisted meter capture, automated billing, PDF/share invoices, multi-merchant SQLite isolation, and one-year PIN sessions tuned for non-technical users. Landlords see monthly collection at a glance, filter rooms by paid or vacant, and generate itemized bills from configured rates. Vision OCR on meter photos reduces typos; Kamal deploys keep the stack small enough to run on a single VPS. The outcome is fewer billing mistakes and less time spent reconciling rooms each cycle.

$ screenshots