Ask HN: In 2024 what's the best way to manage contacts?
How do people sync and manage contacts across so many apps and contexts?

--

UPDATE: Thanks for the comments so far. To clarify my situation:

My main use cases are: Gmail (personal): For personal contacts. Gmail (work): For professional contacts related to my role. Outlook (work): For internal and external business communication. LinkedIn: Managing professional connections. Messaging apps (WhatsApp, Messenger, etc.): Keeping in touch with a wide range of contacts.

I’ve tried syncing across these platforms using Google Contacts, vCard exports, and a few automation tools, but the results have been inconsistent. Either the syncing doesn't work as expected, or there’s a lot of manual cleanup involved—especially when contacts change roles or details across different apps.

I’m wondering if anyone has found a more seamless way to manage contacts across all these different contexts? I’d love to hear any recommendations for more advanced tools, automations, or strategies that have worked for you.

I can not speak for others or the consensus but since the 90's I have always just used a plain text file with simple delimiters in a format that I understand so that I can massage the output format to match whatever needs the information. This has worked great for me and is simple to back up and newer versions make this easy to get a good compression ratio of a single tarball of every version. Multiple files as many people have passed away and a few people are no longer friends but I keep older versions to remind me of them.
Seconding a text file. I keep addresses this way, too. So does my father. So did my grandfather. I have their files, as well.
Do you mind if I ask what format you've settled on? Having a system evolve over multiple generations means you must have pruned out all the bad ways to do it.

I've got this vision of a Neal Stephenson story which will never be written about a family in the 22nd century that has kept all their personal contacts in Git for over 100 years ...

Consider https://www.gnu.org/software/recutils/

Plain text, but with querying, and likely exporters/importers into calendars.

  • zxexz
  • ·
  • 4 hours ago
  • ·
  • [ - ]
I have a master sqlite file with an arbitrary schema that is constantly evolving. I go hard with the constraints and primary keys - so hard, in fact, it's nigh-impossible to add a new contact without cascading changes. I'm always eager to keep my contacts, so this has kept my pretty sharp with sqlite.
I can't tell if you're joking or not, but I sympathize regardless.
  • zxexz
  • ·
  • 3 hours ago
  • ·
  • [ - ]
I guess left out the bit where I keep a bunch of text files of contacts to add in the same directory, to add when I have access to a keyboard :)

A contact is just a bunch of fields and context. The context matters the most, as long as you have a single real way to get in touch. So as long as you have a `notees` column, permissions to `readfile`, and a shell you're golden.

I use Clay (https://clay.earth/) but haven't used it much as I found the search was lacking (my primary use case is searching for contacts that fulfill X criteria)
I use Fastmail which has CardDAV syncing, and generally it's worked great. One or twice I've noticed it stops syncing and I have to remove + re-add the sync profile, but generally speaking I've been pretty happy with the results.
  • troad
  • ·
  • 1 hour ago
  • ·
  • [ - ]
I second Fastmail. The interface is very solid, and it syncs very well to my iPhone (I've not had any syncing issues myself).

They also have great (human) support, which I find important when it comes to backbone services like email, calendar, and contacts.

CardDAV.

I host this end-to-end encrypted on https://www.etesync.com/ .

I sync to my Android phone with the etesync app.

I use the Android contacts app to manage details.

I don't keep detailed records. Just contact details, how I know them, name of children, etc.

Like which apps and which contexts?

I exclusively use Google Contacts. I have 3 devices and Contacts adequately manages everything in the cloud. It also adequately syncs to Outlook-style contacts, but I barely use anything in the Outlook ecosystem except for email itself.

I find Google Contacts still quite deficient in a few respects:

As with Outlook, it's clearly geared towards personal use (even in the enterprise-class Workspaces) and each individual Contact is meant to represent one individual person who's optionally associated with one individual business only.

This makes trouble for many aspects. I rarely contact individuals who aren't associated with businesses. But within a business, there are usually multiple contacts needed to organize all the departments I interface with. Many do not have personal names or one person! They are, e.g. "Customer Service", or "Billing". Also, many contacts involve Robo-SMS, for security codes, or notifications, and those are paramount to be stored as Contacts, because of their sensitive nature, I want them whitelisted and identified and prioritized properly.

So sometimes I cram more than one contact into an item, with multiple phone numbers/email addresses. But I've found that the tagging doesn't work so well; usually Contacts will "forget" that I tagged them as "Custom - <some string>" and blank them out. And that's uncool.

It is not possible to make folders or containers of groups of contacts (other than tagging them). There is no inheritance or linking of data. So if I have 6 contacts from "example.com" they are all 100% independent of one another, even if they share data. So I must replicate that data and carefully update them all in unison. There's no syncing or associating them.

I don't know any elegant solution for a single app or a single format, that still probably needs to conform closely to the .VCF type exports. But there clearly need to be richer features for organizing and linking data, for ease of maintenance, because I do maintain hundreds of contacts, even active ones, and it's a burden to keep them up-to-date.

The Google integration helps a little bit; it's good when someone's profile avatar populates automatically, or it pulls in data from Maps. More of that, please!

Thanks for the detailed response. I totally agree, Google Contacts can feel limiting, especially when dealing with a lot of business-related contacts where roles and departments come into play. The lack of robust tagging and organization tools like folders or containers is definitely a pain point.
  • keizo
  • ·
  • 5 hours ago
  • ·
  • [ - ]
I use my note app for casual personal crm. No outside sync features, but entry is easy if you’re looking for some variation of simple.

https://grugnotes.com

I've been planning to use https://twenty.com/ but it's on the Todo list, so I can't comment as to how great it is.
Google may be a privacy issue... So I would love to have the possibility to prevent anyone putting my info in their contacts in Google.

I personally use a paid E-Mail service (mailbox.org) and a self hosted nextcloud.

The APP myphoneexplorer can be used to sync offline.

I don’t know if it is like this in many countries but in Denmark we have a public registry of addresses, and I’d assume Google (and others) simply pull from that. There are ways to avoid being on the public list but most people aren’t doing that, and if your parents didn’t do it for you then you’ll have been in the registry at one point.

I guess it won’t tell big tech who your friends are. At least until you talk with them regularly through online channels.

I'm not afraid of having parts of my information online in general. Having a website often needs an imprint with a big part of your data. It's more like the information only friends and family know of and which are way more important in many senses.

- phone - this is kind of ok, because phone spam is less common

- email - to prevent spam

- birthday - this one is quite critical, because here in germany it is a common way to verify authentication on phone calls by insurance companies

- job-details, contact relationships, etc.

I doubt that these are all in the public registry.

> Google may be a privacy issue... So I would love to have the possibility to prevent anyone putting my info in their contacts in Google.

This can be quite difficult to achieve. The moment your contact information is given to someone using Android, it will be synced up with Google (and known by most Google properties).

> I personally use a paid E-Mail service (mailbox.org)

May I know how long you’ve been using it and how the experience has been? Are you using it with a custom domain?

I use it for more than two years now and it has been a great experience.

Disclaimer: I use this email only for friends and family, told them not to tell anybody and did not register ANY internet account with it - so no spam, no unwanted emails and no shit.

Yep. I can avoid saying yes to all of the apps that want to access my contacts, but I can't prevent everyone I know, from doing the same :-(
I use a very low-tech approach. A spreadsheet (LibreOffice) with name, position, company and phone number in the leftmost columns and then a column for each form of contact. Copy and paste into the various apps and over-time the apps build their individual contact lists. People don't change their identities often enough for me to want to automate synchronization across the various apps.\

If you are contacting more than a hundred or so persons, then you are running bulk emails which is a different issue.

My source of truth is a self-hosted Radicale CardDAV server with git revision control of vCard data in the backend. Clients are anything that speaks CardDAV, including Thunderbird or DAVX on Android. Raw vCard data is only a "git clone" away, and is an input to scripts to handle birthdays and mailing list updates.
Word of warning: I tried Marissa Mayer's Sunshine contacts and it nuked my phone's contacts. Luckily I had a backup vcard export from way back I could restore from.

Others I've tried:

* Clay (https://clay.earth) is a great option for "batteries included". Based on what you described, it can pull from Google/Outlook, Linkedin, and messaging apps. Doesn't get all the duplicates but gets close enough, and they offer carddav for 2-way sync to phone.

* Monica (http://monicahq.com) works for more barebones and self-hosted. They were working on a new version, not sure if it was ever merged into main product. I tried it once and it ended up being more of a gift and birthdays-focused notes app for me, but YMMV.

* Otherwise a Notion doc or spreadsheet might be enough! Especially if you start with an export from something else.

> They were working on a new version, not sure if it was ever merged into main product.

It’s still in development, v4 is getting only bugfixes, v5 is in beta.

This seems to have been the case for quite a while now, with very little news coming out of the team.

Their "OfficeLife" tool banner is still on the main site as well, with an expected release of May 2022.

Development seems to be quite slow overall.

The last beta was 5 months ago. Not fast, but not dead either.
are you somehow related to any of these products?
Some of my team worked with Marissa at Google, and I worked with the former CTO of Sunshine which is why I originally tried it.
Since other people are recommending home-brewed solutions, I will mention my platform WebWidgets.io, which allows you to create lightweight webapps using vanilla JS and sync the data to SQLite DBs. It would be very easy to create a simple contact DB that has all the features you need and none of the bells+whistles that you don't care about.
I keep things very simple. I have a Single Source of Truth for all my contacts. Right now, I'm using a contact app on my phone for this, but over the years I've used different things. The exact method isn't important to me, what's important is having an authoritative contact list.

I don't sync anything with anything. I look up a contact and enter whatever detail I need manually wherever it's needed. I lean a lot on the frequently-used autocomplete lots of applications have, too, but that's a convenience that I don't take as authoritative.

  • G_o_D
  • ·
  • 3 hours ago
  • ·
  • [ - ]
"""DAIRY""" with attached Sticky Notes, Bussiness cards Manual Bookkeeping far better For digital JSON Structure better rather than csv or spreadsheets Jsons are plain text, on shell can parse with jq, can parse inside browser devtools manipulate add edit delete
I use my Nextcloud and sync via CardDAV (DAVx5 on mobile, Thunderbird on desktop).
I switched my self hosted baikal and previous nextcloud to icloud. I need redundancy and persistence if I pass away for my family that uses iPhone. I manage it with emclient and my android phone (sync'd via davx5). I find I am able to edit what I need to between those.
  • ajr0
  • ·
  • 8 hours ago
  • ·
  • [ - ]
I plan to use MonicaHQ , I failed to self host behind a reverse proxy and the effort was no longer prioritized but I would be interested if anyone else is using it.

https://www.monicahq.com/blog

  • j45
  • ·
  • 3 hours ago
  • ·
  • [ - ]
You might be able to run it behind / between a simple Tailscale app installation instead on your devices to connect them privately. I'm a recent user and it's been a little sublime.
  • txtsd
  • ·
  • 5 hours ago
  • ·
  • [ - ]
I wrote a scraper to create vCard contacts from Facebook a few years ago when I still used Facebook.

https://github.com/txtsd/fb2vcard

Nextcloud CardDav.
Here is my setup. It is always in progress, and I keep tinkering. I treat most of my approaches as an Onion Layer of abstraction, from security to privacy to contacts. My final decision factor is to answer YES to my question, “Can I walk out of this?”

Let’s do contacts for this discussion thread.

I’m still in the Apple ecosystem, so I let the OSes (macOS, iOS, etc.) handle that. The sync is almost seamless, or rather, this is the best of all the devils. My personal and work are intertwined; thus, it is more of a tag-ish layer of friends, acquaintances, etc. Yes, sometimes I mix the joke of friend Archetype-A with friend Archetype-B and vice versa. ;-)

Last time I checked, my Contacts had almost 5,000 entries in there and I don’t mind this part growing. I’ve tried Dex[1] for about a year+ but found it slow. Their work seems to have slowed and stalled, while you expect them to “move beyond a tool that seems to be still in beta.” This was a few years ago, and hence I’ve no idea about their current situation.

I also tried Monica,[2] but she do not know how to keep things in sync. The developer/team also seems to be focussing on an office suite that has been “Coming Soon in 2002” since 2021.[3] If you want to try out Monica and see if this fits, I suggest spinning one quickly with PikaPods[4] for less than $2 a month.

Now, I’m trying out Clay[5] for broader outreach and staying in touch with people with whom I’ve interacted or connected via the networks that I was and am part of.

For the closer and final few inner layers of my Onion of Contacts, I use a simple spreadsheet inspired by Derek Sivers[6] and Jakob Greenfeld.[7] This is where I have the people with whom I can be in touch regularly (monthly, quarterly, half-yearly, and yearly). This is not very strict, and I tend to have these as recurring tasks in my calendar, along with my usual digital chores. The spreadsheet's contact list will ideally be between 20-100 at max. These are the ones I call/write/text regularly, wish/attend birthdays, parties, remember anecdotes, their family, etc.

1. https://getdex.com

2. https://www.monicahq.com

3. https://www.officelife.io

4. https://www.pikapods.com/apps

5. https://clay.earth/

6. https://sive.rs/hundreds

7. https://jakobgreenfeld.com/stay-in-touch

What apps and contexts?

I use synching and vcard files.

Thanks for the response. I've added more information above.
I use a personal version of Monica administered by a friend.
csv