Thursday, June 14, 2007

OmniFocus Data Storage

Ken Case:

OmniFocus uses compressed XML transaction files to store its data, with a SQL cache for efficient access. (Each time you update the application, we rebuild the SQL cache to ensure that it’s consistent with the latest schema.)

This clever design lets OmniFocus store its data in a text-based format while also providing good performance and mitigating the rigidity of SQL storage for an evolving application. I’m currently trying out OmniFocus as a replacement for OmniOutliner Pro for managing my software projects. Despite the fact that I’m not into GTD, OmniFocus seems to be a good fit. It automates much of the work that I did manually in OmniOutliner, moving items around to view them in different ways. It supports multiple windows and hoisting, and the filtering options are much better suited to my purposes than OmniOutliner’s. Most importantly, OmniFocus doesn’t do too much. It’s nothing like OmniPlan, which goes way behind my needs. It’s more like a version of OmniOutliner that’s optimized for tasks.

Update (2013-08-13): In an old blog post, Tim Wood describes this in more detail.

2 Comments RSS · Twitter


blatant plug, but perhaps you might like to check out Frictionless, since its a free/open source GTD app I'm working on. (See URL)

It's written in Ruby Cocoa, so its pretty easy to add your own filters, without even recompiling...


Reminds me of the battles Netscape used to do to get mail in mbox format to be fast enough to use.

Leave a Comment