Personal project2026
MyCards
A local-first mobile wallet for loyalty cards that opens the right card automatically when you walk into the shop.
- Type
- Personal project
- Role
- Solo — product, design and mobile development
- Period
- 2026 · in progress
- ads, accounts or servers
- 0
- CZ / SK / EU brands built in
- ~55
- automated tests
- 134
The idea
Standing at a checkout, scrolling through a dozen loyalty cards, is a small but daily annoyance. MyCards shows the right card before you ask for it: open the app near a shop and the matching card is already on screen.
Principles
- No ads, no accounts, no backend. All data lives on the device.
- Private by design — locations are stored only with your cards, on your phone.
- Sync without an account — silent iCloud sync on iOS; Android Auto Backup plus manual export/import.
How it works
- Adding a card starts by picking from ~55 CZ/SK/EU brands (or a custom card). The barcode can be scanned with the camera, read from a photo or typed in — and the barcode format is derived automatically.
- Locations — from a card you can save “I’m at this shop now”. Nearby duplicates are merged.
- On launch the app compares your position with saved locations using great-circle distance and a configurable radius (25 / 50 / 100 m). Exactly one match opens that card full-screen with brightness boosted; otherwise you get a list ranked by usage.
Engineering
Written in strict TypeScript on Expo with Expo Router. The card schema has already gone through a v1 → v2 migration without losing data, covered by 134 tests, with type-checking, linting, formatting and tests enforced on every commit.