skip to content
← cd ../projects

case study

Tendere

Founder and full stack engineer: Expo, local-first sync, auth

problem
Recurring chores and bills are easy to miss. Shared household lists usually force an account and a network before the app is useful.
outcome
A shipped iOS app: Solo Mode stores tasks on-device with local notifications. Duo Mode adds email OTP auth and selective sync for one invited group.
ownership
  • Designed and implemented the Expo app, Today list, reminder scheduling, and Settings.
  • Built Duo Mode: Supabase Auth (OTP), group invite codes, and PowerSync for offline-capable partner sync.
  • Published App Store support, privacy, and marketing pages on olamide.dev for review and users.
architecture
  • Local-first SQLite on device. Solo Mode never leaves the phone.
  • Duo Mode: Supabase for accounts and shared rows; PowerSync connector to replicate only reminders marked shared.
  • Local notifications via expo-notifications using title and schedule stored on device, so Solo needs no push service.
  • Turning Duo off signs out, stops sync, and returns the user’s own data to the device.
trade-offs
  • One Duo group at a time to keep sync conflict rules simple for a household product.
  • Passwordless OTP instead of passwords: fewer secrets on device, one extra email step for reviewers.
  • No ads or analytics SDKs so the privacy story matches the product: no tracking across apps.
stack
TypeScript · Expo · React Native · Supabase · PowerSync · SQLite