Your data stays on your phone
Everything you enter is saved in your browser's own storage (IndexedDB) on your device. There's no sign-up, and nothing is uploaded. The website only delivers the app's code; it never receives your expenses.
Sharing works through the link itself
When you share a bill or a month, Doodle Bill compresses that data and puts it in the link, after the #:
https://…/#/e/H4sIAAAA…
Browsers never send the part after # to a server. That's how the web is built, not just a promise from us. Whoever opens the link has their browser unpack it locally. Our server, analytics and link-preview bots never see it, which is also why every shared link shows the same generic preview in WhatsApp.
The flip side: anyone who has the link can read what's in it, so only send it to people you trust.
Trips without an account
A trip keeps its spends together with its own total. Shared with friends, it works like a shared ledger, and everyone keeps a copy on their own phone. When someone adds or edits an expense, they tap Send update to post a fresh link in the group chat. Opening any newer link merges it into your copy:
- the most recent edit of each expense wins,
- deletions are remembered, so an older link can't bring a deleted expense back,
- links can be opened in any order, any number of times, and everyone still ends up with the same ledger.
The trip page shows what each person paid, their share, their balance, and the fewest payments needed to settle everyone up.
Everyone's entries are their own. When you create or join a trip, your phone makes a private signing key that never leaves it (except in your own backups). Everything you add or delete in the trip is signed with it, and every phone checks those signatures before merging a link. So added by Amit ✓ really came from Amit's phone, and nobody else can change or delete Amit's entries. A tampered or forged change is refused, and you're told so.
There are still no accounts, so anyone who has the trip link can read the trip and add spends under their own name. Share it only in the trip's own chat.
Tax maths you can check
All the amounts are calculated in whole paise with fixed rules: discount before tax, service charge, then each tax you added (they stack, and each can apply to just some items), then the tip. Splits always add up to the exact bill. Try the same maths in the GST calculator and the bill splitter.
Backups, offline and install
- Backup: save everything to a
.expensefile. Add a password to encrypt it with AES-256-GCM. - Offline: once loaded, the app works without a connection.
- Install: add it to your home screen from the browser menu and it opens like a normal app.
What we do run
The site is static files on a CDN. To protect it from abuse, each request passes a rate limiter. It uses a salted hash of your IP address that expires within about a minute of inactivity, and it never stores the IP itself. There's no tracking or analytics.