Why I built tomoca
As a parent, I kept running into a small but surprisingly common problem: I could recognize another parent or child, but forget a name, which child belonged to which parent, when we last met, or what we talked about. Traditional contact apps are built around phone numbers and email addresses. They are not designed for the lightweight relationships that grow around parks, daycare, school, lessons, and local communities.
tomoca is a private, family-friendly profile book for remembering those people and the context around them.
What tomoca does
- Create profile cards for members of your family with only the information you choose to share.
- Exchange cards in person with another tomoca user using nearby device-to-device discovery and a confirmation step before profile data is sent.
- Keep a people-first profile book for friends, parents, children, teachers, and other people you meet regularly.
- Add your own notes without overwriting someone else's card. Received profile data stays separate from the notes and context your household adds locally.
- Record events and shared moments so you can remember when you met, where, who was there, and what you talked about.
- Find people again quickly by the information that is actually useful in real life: names, relationships, places, and recent events.
- Use the core experience without an account or subscription. Profiles, events, notes, nearby exchange, export, and local encrypted backup are designed to remain useful locally.
The goal is simple: before the next conversation, tomoca should help you remember enough context to continue naturally.
Privacy-first by design
tomoca treats personal profile data as something that should stay under the user's control.
The local profile book uses SQLite as its primary data store. Nearby discovery does not broadcast profile contents, and card data is not sent until both sides reach the confirmation step. Users choose what goes on their own cards, while household-only notes and local context are kept separate from information received from another person.
Human-readable export and local encrypted backup remain available without requiring a paid plan, so users are not locked out of their own data.
Monetization with RevenueCat
tomoca uses RevenueCat for its tomoca Plus subscription on iOS and Android. The app reads store offerings and localized prices through RevenueCat, supports monthly and annual plans, and offers a one-month introductory trial where eligible.
The free tier keeps the core profile-book experience available with a small banner ad. Plus removes ads and is the paid layer for premium household and cloud capabilities, rather than limiting the number of people or events a family can save.
This model is intentional: the core product should stay useful for free, while subscription revenue supports features that carry ongoing infrastructure costs.
Built for iOS and Android
tomoca is built with React Native and Expo, with TypeScript across the app. It combines a local-first SQLite data model, native nearby exchange, encrypted backup and sync components, Firebase Authentication for optional cloud accounts, Cloudflare infrastructure for cloud services, RevenueCat for purchases and entitlements, and AdMob for the free tier.
The same product is being prepared for its first public release on both iOS and Android during Shipaton 2026.
Built With
- cloudflare-d1
- cloudflare-r2
- cloudflare-workers
- expo.io
- firebase-authentication
- google-admob
- google-nearby-connections
- react-native
- revenuecat
- sqlite
- typescript
Log in or sign up for Devpost to join the conversation.