Project Overview
Default contacts apps feel like junk drawers for people’s information. They offer little more than an alphabetical list and basic search, which is cumbersome for real-world needs. We set out to design a smarter contacts app that understands how people actually want to retrieve and act on their contacts.
Instead of surfacing names in alphabetical order, ContactHi organizes contacts by:
- Importance (how much you care about the relationship)
- Proximity (who is physically closest to you right now or in a given city)
The result is a more contextually aware contacts app that helps users answer questions like:
- Who were the last five people I met?
- Which friends in San Francisco should I invite to a party?
- Who did I just meet at this conference?
- Which professional contacts do I have in this city?
- Who are my top romantic interests nearby?
- Who are my favorite people I want to message this holiday season?

Core Features
-
Categorized Relationships
- Three key relationship types: friendly, professional, and romantic.
- Each relationship type has four levels of intent: no interest, low, medium, high.
- Icons (1–3) visualize the importance of each relationship type.
-
Contextual Filtering
- Filter by location to see contacts nearby or in a specific city.
- Filter by relationship type and importance level.
- Recently added and “last met” lists for better recall.
-
Proximity Sorting
The app surfaces people closest to your current or chosen location, ensuring that travel, meetups, and events feel more natural to coordinate. -
Quick Contact Sharing
Borrowing from the old “Bump” concept, we enabled programmatic sharing through QR codes and Bluetooth. -
Pressing Use Cases
- Follow-ups: After networking or conferences.
- Events: Invite close friends or professional contacts in a city.
- Personal: Surface only top relationships for holidays, gratitude lists, or travel.
Technical Insights
- React Native was chosen for cross-platform development across iOS and Android.
- Firebase handled sync and lightweight backend storage.
- Contacts were stored in a hybrid system: local storage for fast retrieval and cloud sync for continuity.
- Leveraged the universal
.vcf
/.vcard
contact protocols used by Android and iOS to ensure compatibility with existing contacts databases.
UX Considerations
- Users could set intent levels when adding a contact, or later through a daily inbox flow to avoid awkward social situations.
- Contacts were not confined to one relationship type — a person could be both a close friend and a professional contact.
- The app reframed contacts as intent-based relationships rather than static records, encouraging more meaningful interactions.
Outcomes
- Created a working prototype of a contacts app that better reflects real human relationship management.
- Validated that importance and proximity are far more useful dimensions than alphabetical order.
- Established a model for how a next-generation contacts app could grow without competing with existing social networks.
Lessons Learned
- Alphabetical order is almost never the best retrieval system for human contacts.
- Users naturally desire contextual surfacing of contacts based on intent, geography, and situation.
- Building on top of existing
.vcf
/.vcard
protocols allows innovation without requiring new network effects.
Demo & Source
GitHub Repository: ContactHi