How Real-Time Sync Actually Works in My Pocket
“Does it sync?” is one of the first questions people ask about any app that touches money or shared lists. For My Pocket, the answer is yes — but the more interesting question is how, and why that choice shapes almost everything else about the app.
Firebase, not a custom backend
My Pocket runs on Cloud Firestore, Google’s real-time database. When you add an expense on your phone, it doesn’t sit in local storage waiting for a manual “sync” button — it’s written straight to Firestore, and any other device signed into your account (or looking at a list you’ve shared) gets the update pushed to it within moments, not minutes.
Why that matters for shared features
Real-time sync isn’t just a nice-to-have for a single user checking their balance on two devices — it’s the entire foundation of features like Lend & Borrow and Shared Shopping Lists. When you check an item off a shared grocery list, the person who’s still standing in the store sees it disappear from their screen without refreshing anything. When someone settles a debt in a shared ledger, both sides see the updated balance at the same time. Without real-time sync, “shared” would just mean “eventually consistent if you remember to refresh,” which defeats the point.
Offline doesn’t mean broken
Firestore also handles the case that trips up a lot of “real-time” apps: no signal. If you log an expense in a basement with no connection, it’s queued locally and written the moment your phone finds a network again — you’re not blocked from using the app just because you’re offline for a few minutes.
What this costs you: nothing extra to think about
The best compliment I can get about sync is that nobody ever mentions it. There’s no manual “sync now” button, no spinning loader you have to wait out, no separate step. It just happens in the background, which is exactly how infrastructure should feel — invisible until you go looking for it.