Building a Tax Accounting PWA for Vietnamese Small Businesses β
Apr 12, 2026 Β· the story of how i mass-produced an entire app
> tl;dr: built a free offline tax app for vietnamese aunties.
> it works. mostly. i think. π
The Problem π€
In Vietnam, millions of household businesses must keep accounting records under Circular 152/2025. Most owners are not tech-savvy. We are talking about sugarcane sellers, grocery stores, and your neighbor who sells banh mi from a cart.
The Solution π‘
I built HKD Accounting β a free, offline-first PWA. No login, no cloud, no subscription. Open it, tap some buttons, get your tax form.
The Stack π
sql.jsβ A whole SQLite database. In your browser. In WASM. Living its best life.Next.js 14β Because every project needs a framework with a cool namehtml2canvas + jsPDFβ Renders HTML β screenshot β PDF. Hacky? Yes. Works? Also yes.ExcelJSβ Generates .xlsx that match government templates. The tax office cannot tell.
UX: Designing for Aunties π΅
The hardest part was not the code β it was making it usable for someone who might struggle with a smartphone.
- Two modes β "Simple" for tax-only, "Full" for POS nerds like me
- Smart amount input β Type "200", get 200k/2M/20M suggestions. No zero-counting.
- Guided tour β First-time spotlight overlay. Like a video game tutorial but for taxes.
Tax Compliance π
The Debt System πΈ
Vietnamese small businesses run on trust. "Ghi nợ" (write down the debt) happens 10 times a day. So I built a full contact + debt tracking system.
What I Learned π§
- SQLite in WASM is legit β Full SQL, indexes, transactions. All in the browser.
- PWAs on iOS still kinda suck β Service worker lifecycle quirks. Apple why.
- 10x more UX iteration for non-tech users β What is obvious to you is cryptic to your auntie.
- Vietnamese diacritics in PDFs β html2canvas is the only way. I tried everything else.
> final_report.pdf β
> final_report_v2.pdf β
> final_FINAL.pdf β
> FINAL_final_v3_THISONE.pdf β
>
> this is fine. π₯π
Try It π
The app is live at hkd.tamduongs.com. Free forever. Works offline. Auntie-approved. π
Source code? . Stay chill. βοΈ