CNContact Is Stuck in 2015

Apple’s contact framework doesn’t understand how we actually connect. In my previous post, I wrote about how Apple’s Contacts app treats your relationships like a filing cabinet — a flat list of static cards with no context, no history, and no awareness of how people actually matter to you. That’s a product problem. But it’s also a technical one. Underneath the Contacts app sits a framework called CNContact, introduced at WWDC 2015 as a replacement for the widely despised AddressBook.framework. AddressBook was a C-based API with no Objective-C layer, opaque types like ABRecordRef, and virtually no error handling. When Apple announced its deprecation, the WWDC audience cheered — one of the loudest reactions in the conference’s history. ...

March 10, 2026 · zacharyc

Your Contacts App Is Broken

And it was never that good to begin with. When I was a kid, my dad carried a Filofax everywhere. A thick leather binder stuffed with business cards, meticulously organized. It was his most important professional tool — his grail. He could flip to any section and find exactly who he needed, with notes scribbled in the margins about when they’d last spoken and what they’d discussed. I sometimes wonder if he had a better handle on his network than any of us do now with our phones. ...

March 7, 2026 · zacharyc
Letter type graphic

Font Awards and AI Coding

Sometimes I get a crazy notion to put something together and decide to do it on a whim. That is the story of font-awards. It is my first fully AI project (sort of, as in sort of fully AI). A former coworker and good friend was talking about how they created a quick prototype of a project using nothing but Windsurf and AI, and how they were able to build out the project’s scaffolding very quickly, with very little manual input. ...

January 24, 2026 · zacharyc

Web Forms Hugo Sites - Part 5

This is the fifth post about putting dynamic forms on a static Hugo site. Please see the previous steps to understand where we are: Web Forms On Hugo Sites - Part 1 Web Forms On Hugo Sites - Part 2 Web Forms On Hugo Sites - Part 3 Web Forms On Hugo Sites - Part 4 Now it is time for SQL and input! Talking about input The plan for input is something like the following. The body of the post request should look like this: ...

April 3, 2025 · zacharyc

Web Forms Hugo Sites - Part 4

Previous posts: Web Forms On Hugo Sites - Part 1 Web Forms On Hugo Sites - Part 2 Web Forms On Hugo Sites - Part 3 The saga of the web forms continues. Last, we left our intrepid project and were dealing with an issue with the self-signed certificate for our database. After poking around TLS, one of my brilliant friends sent me the following links: For postgres - https://github.com/porsager/postgres#ssl For pg - https://node-postgres.com/features/ssl#self-signed-cert To use the pg library we would use the second one. The issue is that I only have the self-signed certificate. ...

April 2, 2025 · zacharyc