Back to projects

ContactHi

A React Native prototype for a next-generation contacts app that organizes people by importance and proximity, rather than alphabetically, enabling contextual, relationship-driven contact retrieval.
  • Productivity
  • Messaging
  • Prototyping
  • Mobile Development
  • UX Design
  • Systems Design
  • React Native
  • Firebase
  • Local Storage
  • QR Codes
  • Bluetooth
  • iOS

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:

  1. Importance (how much you care about the relationship)
  2. 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?
Screenshot

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