RafiFinance v4 is a personal finance tracker I built because I couldn't find an existing app that worked the way I think about money. Most apps are too complex, require an account, or send your data to a server.
So I built my own — with a deliberate constraint: one HTML file. No npm. No build step. No server. Open it in a browser and it just works. Your data stays on your device in localStorage, exportable as a single JSON file at any time.
Deployed on Cloudflare Pages at finance.rafiarsya.com — free hosting, global CDN, automatic HTTPS, zero configuration.
Tap screenshot to zoom
The entire app — HTML structure, 800+ lines of CSS, and 1800+ lines of vanilla JavaScript — lives in one file. State is managed with a single global object persisted to localStorage under the key rfv4.
The PWA manifest is embedded inline as a data: URL. The service worker is generated from a Blob URL at runtime — no external sw.js file needed. Everything is self-contained.