Bye bye Address Book, welcome BBDB

About two years ago I wrote a post about why and how I abandoned Apple’s iCal for my agenda management and moved to Emacs org-mode instead. Now I am in the process of making the second step in the same direction: I am abandoning Apple’s Address Book and starting to use the “Big Brother DataBase“, the most popular contact management system from the Emacs universe.

What started to annoy me seriously about Address Book is a bug that makes the database and its backups grow over time, even if no contacts are added, because the images for the contacts keep getting copied and never deleted under certain circumstances. I ended up having address book backups of 200 MB for just 500 contacts, which is ridiculous. A quick Web search shows that the problem has been known for years but has not yet been fixed.

When I upgraded from MacOS 10.6 to 10.7 about a year ago (I am certainly not an early adopter of new MacOS versions), I had a second reason to dislike Address Book: the user interface had been completely re-designed and become a mess in the process. Every time I use it I have to figure out again how to navigate groups and contacts.

I had been considering moving to BBDB for a while, but I hadn’t found any good solution for synchronizing contacts with my Android phone. That changed when I discovered ASynK, which does a bi-directional synchronization between a BBDB database and a Google Contacts account. That setup actually works better than anything I ever tried to synchronize Address Book with Google Contacts, so I gained more than I expected in the transition.

At first glance, it may seem weird to move from technology of the 2000’s to technology of the 1970’s. But the progress over that period in managing rather simple data such as contact information has been negligible. The big advantage of the Emacs platform over the MacOS platform is that it doesn’t try to take control over my data. A BBDB database is just a plain text file whose structure is apparent after five minutes of study, whereas an Address Book database is stored in a proprietary format. A second advantage is that the Emacs developer community fixes bugs a lot faster than Apple does. A less shiny (but perfectly usable) user interface is a small price to pay.

Explore posts in the same categories: Uncategorized

4 Comments on “Bye bye Address Book, welcome BBDB”


  1. Hi Konrad,

    This is my first post here, congratulations for the nice blog!

    But how is your experience with BBDB going? Do you use it with Org-Mode? Any experience with other sync utilities than ASynK?

    I am not a Emacs but a Vim guy. So, just starting to use vim + the vim-orgmode clone, and still looking for utilities to share it with my Android phone or Google contacts…


    • I still use BBDB, but I dropped Google Contacts and ASynk. My addressbook now lives on an ownCloud server, synchronzed with my Android phone and my iPad. Once per week a script downloads it to a vCard file which I then convert to a BBDB database using bbdb-vcard. This means I cannot add new contacts via BBDB, but since I rarely add contacts, and mostly on my phone anyway, this is not a severe restriction. In exchange, I don’t have to worry about two-way syncing between rather different data models, a job that ASynK does reasonably well but not well enough to let happen blindly.

  2. Karra Says:

    Hi Konrad, I found this page and your comments through some random web search. I am the author of ASynK. Can you elaborate on what you mean by “a job that ASynK does reasonably well but not well enough to let happen blindly.” What exactly is not working as well as you would like? Just curious if it is some limitation that I am not aware of,that’s all.


    • It’s been a long time since I dropped Google Contacts and ASynK, so I don’t remember all the details. And I suspect ASynK changed quite a bit in the meantime. Back then, I often had minor data loss issues because the mapping between BBDB’s and Google’s data models wasn’t clear enough. Data added on Google ended up in the wrong field in BBDB, or nowhere at all. First and last names were often messed up – I think this was because Google had a single “name” field whereas BBDB has two distinct fields. I can’t say it was a major headache, but I didn’t get much out of two-way synchronization either, so I opted for a simpler setup.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: