Loyalty · Wallets
SemillappDigital coupons and loyalty with Apple and Google Wallet
My role
Web & applications developer at Azirgo SAS. I worked on the React Native mobile app and the API behind it.
The problem
A loyalty programme only works if the customer has the coupon at hand at the moment of paying. A plastic card gets left at home, and a coupon buried inside yet another app gets lost among notifications.
What I built
- React Native + Expo mobile app published for iOS and Android.
- Apple Wallet and Google Wallet pass issuing, so the coupon sits next to the user's cards.
- A GraphQL API as the platform's data layer.
- Coupon and loyalty flows for the participating merchants.
Technical decisions
- Lean on Apple Wallet and Google Wallet instead of requiring the user to open the app: the pass lives where they already keep their cards.
- GraphQL so the app requests exactly the data each screen renders, without over-fetching on mobile connections.
- A single React Native codebase for both stores.
Challenges
- Apple Wallet and Google Wallet passes use different formats and signing rules, and both had to be generated correctly.
- Keeping the wallet pass in sync with the real state of the coupon.
- Shipping and maintaining the app on both stores.
Result
Semillapp is published on the App Stores and is one of the four production mobile apps in this portfolio: real users open it to redeem their coupons.
