# EasyBill — CodebyLiam

Source: https://codebyliam.com/portfolio/easybill/

[← All work](https://codebyliam.com/portfolio/work/)

fullstack· 2026

# 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 developer

[Visit live site](https://easybill.codebyliam.com/)

[![EasyBill illustrative product cover](https://codebyliam.com/portfolio/projects/easybill-product-cover.webp)](https://codebyliam.com/portfolio/projects/easybill-product-cover.webp)

Illustrative cover artwork. Original product screenshots appear below.

## Technology

- SvelteKit 5

- Svelte 5 runes

- Bun

- SQLite

- Drizzle ORM

- Tailwind CSS v4

- OpenRouter vision OCR

- Kamal

## The 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.

## The 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

- [![EasyBill revenue dashboard on mobile](https://codebyliam.com/portfolio/projects/easybill.webp)](https://codebyliam.com/portfolio/projects/easybill.webp)

Monthly collection hero with room status filters

- [![EasyBill room list](https://codebyliam.com/portfolio/projects/easybill-rooms.webp)](https://codebyliam.com/portfolio/projects/easybill-rooms.webp)

Room grid with paid, unpaid, and vacant states

- [![EasyBill invoice detail](https://codebyliam.com/portfolio/projects/easybill-invoice.webp)](https://codebyliam.com/portfolio/projects/easybill-invoice.webp)

Automated bill breakdown ready to export

- [![EasyBill meter reading flow](https://codebyliam.com/portfolio/projects/easybill-reading.webp)](https://codebyliam.com/portfolio/projects/easybill-reading.webp)

New reading entry with camera-assisted capture

- [![EasyBill rate settings](https://codebyliam.com/portfolio/projects/easybill-settings.webp)](https://codebyliam.com/portfolio/projects/easybill-settings.webp)

Per-room utility rates and fee configuration

[← Vaclock v2](https://codebyliam.com/portfolio/vaclock-v2/) [Helpdesk →](https://codebyliam.com/portfolio/ticket-support/)
