
Built a local-first expense tracker with Expo and .NET 10. Would love feedbacks.
Ever tried to add an expense quickly, hit save, and get annoyed by a “no internet” alert? I wanted to avoid that completely. Everything in the app works offline and without an account, except AI receipt scanning, which needs internet and sign-in.
AI receipt scanning is unlimited during open testing phase, feel free to test the app and break things.
Links:
I originally started this as a pretty normal CRUD expense tracker, then I saw this and made it local-first. Also went full blown with .net 10 backend and custom sync engine (LWW) to see how it goes.
Some of the things I spent the most time:
- Sync after offline usage
- Two devices can create/update records offline, then sync later without conflicting records. I’m using a custom .NET 10 backend and an LWW-style sync engine.
- Recurring payments
- More edge cases than I expected. Two devices generating individual payment records during offline must not end up with duplicate or conflicting records when they sync back to server.
- AI receipt scanning
- You can either insert each receipt item as separate expense records, or save the whole receipt as one record. Had to tweak system prompts and output json structure a lot.
- Charts and their input data
- Passwordless login
- And this chart
I’ve tested the app in the way I use it, but I’d love to see how it holds up with different people using it in their own ways.
Thanks!
u/123msa — 4 days ago