Most apps are cloud-first by design. Your data lives on a server you don’t control, synced to your devices as a convenience. The vendor decides what happens to it, how long it’s kept, and what the service costs. You’re a tenant.
Local-first inverts this. Your device holds the canonical copy. The cloud, if you use it at all, is a synchronisation layer — not the source of truth.
Why this matters for a routine tracker
A habit tracker is more personal than most apps. It knows when you take medication, whether you’ve exercised, how often you skip things you said were important. That data is intimate. The right default is for it to stay on your device.
Beyond privacy, there’s a practical argument: local apps are faster, more reliable, and don’t fail when you lose internet. An app that works offline isn’t a niche feature in 2026 — it’s table stakes for anything you use daily.
The problem with cloud-first defaults
Cloud-first apps work well until they don’t:
- The service shuts down. Your data disappears or becomes inaccessible. This has happened to many well-regarded apps.
- Pricing changes. A free tier that worked for years is suddenly paywalled.
- The company is acquired. New owners have different priorities and may deprecate the product.
- You’re offline. The app doesn’t load, or loads but can’t save.
None of these happen if your data is on your device.
What “local-first” means in practice
Local-first doesn’t mean isolated. It means the hierarchy is reversed. On-device is the primary copy. Everything else — sync, backup, shared access — layers on top.
In TappRFID, this looks like:
- All data is stored in SwiftData on your iPhone. Open the app without an account, without internet, and it works fully.
- Cloud sync is opt-in. If you want completions on multiple devices, you enable it. If not, it’s not running.
- If you cancel a cloud subscription, your local data is unchanged. Nothing breaks. You keep everything.
The sync problem is genuinely hard
One reason most apps go cloud-first is that multi-device sync is technically difficult. You need to handle conflicts when two devices update the same record at different times.
Local-first doesn’t avoid this problem — it just solves it with the right assumptions. TappRFID uses a last-write-wins conflict resolution with soft-deletes and versioned records. It’s not perfect for every use case, but for a personal routine tracker where you’re usually the only writer on each device, it works well in practice.
An aside on trust
Local-first is also about trust in a non-technical sense. When your data is on your device, you can verify what’s happening. You can back it up. You can choose to sync or not. You’re in the driving seat.
That should be the default for personal tools. Cloud convenience is worth having when you choose it. It shouldn’t be the cost of using the app at all.
TappRFID is local-first with optional cloud sync. See how it works →