August 11, 2026

Yello CRM App

Work in progress This project is actively being built. If there are links use at your own risk. This page might also be out of date.

Twenty years of phones, SIM cards, exports and syncs leaves you with an address book nobody would design on purpose: the same person three times over, half of them with a number and no name, addresses that have been wrong since 2012. Apple and Google will happily hold all of it, but neither gives you the tools to fix it. Yello is a contact manager built for exactly that job — try it here.

  • Import from anywhere - VCF files (vCard 2.1, 3.0 and 4.0), iCloud, Google Contacts, or a LinkedIn connections export
  • Find the duplicates - Five detection modes — email, phone, street address, social profile, or a multi-signal match with confidence scores — then merge them side by side
  • Clean up the rest - Empty and name-only entries, dead links, malformed social handles, contacts with the same address stored twice
  • Search that keeps up - Full-text search across names, companies, emails and numbers, on a list that stays smooth past ten thousand contacts
  • A map - Every address geocoded and clustered, so you can see who's in a city before you go
  • Groups - The categories already sitting in your vCards, turned into something you can browse
The Yello dashboard, showing counts for total contacts, countries, cities, contacts with photos and with birthdays, above panels for upcoming birthdays and recently added contacts
Eight thousand contacts across 48 countries — the shape of an address book you've never actually looked at

Everything lives in SQLite, one database file per account, and everything goes back out as VCF whenever you want it. Exports even carry the coordinates back with them, so the geocoding you paid for once doesn't have to happen twice.

The Yello map view, showing contacts clustered by city across the world with counts on each cluster marker
Geocoded addresses, clustered — 696 of 8,062 contacts placed on the map

Two things grew out of it that weren't in the original plan. Enrichment: pulling profile data and photos in from LinkedIn, and syncing Gmail history to work out who you actually email, as opposed to who happens to be in the file. And a public contact card — your own details at a short link with a QR code and an Add to Contacts button, where every field is hidden until you switch it on.

The awkward part was never the features, it was the volume. A photo-heavy iPhone export runs to tens of megabytes and minutes of work, so importing is a background job that streams one vCard at a time, commits in batches, and records its position as it goes — close the tab, redeploy mid-import, and it picks up where it left off instead of starting over or duplicating what it already wrote.

React and Vite on the front, Fastify and better-sqlite3 behind it, SQLite FTS5 for search, Sharp for the photo pipeline, Leaflet over OpenStreetMap for the map, and Google sign-in. It runs on Railway against a persistent volume, and packages as a desktop app for anyone who'd rather their address book never left the machine. Built with Claude. Try it here.

When you change the way you look at things, the things you look at change.— Wayne Dyer