{"id":53108,"date":"2026-09-07T14:16:59","date_gmt":"2026-09-07T18:16:59","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=53108"},"modified":"2026-09-07T14:16:59","modified_gmt":"2026-09-07T18:16:59","slug":"banktivity-document-model-and-rewrite","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2026\/09\/07\/banktivity-document-model-and-rewrite\/","title":{"rendered":"Banktivity Document Model and Rewrite"},"content":{"rendered":"<p><a href=\"https:\/\/www.iggsoftware.com\/blog\/2025\/04\/filed-away-forever-why-we-built-the-organizer\/\">Ian Gillespie<\/a> (2025):<\/p>\n<blockquote cite=\"https:\/\/www.iggsoftware.com\/blog\/2025\/04\/filed-away-forever-why-we-built-the-organizer\/\">\n<p>Banktivity has traditionally been what&rsquo;s known as a <em>document-based app<\/em>. It lets you create and open independent files (or documents), each with its own data. In contrast, many modern apps&mdash;Music, Calendar, Photos&mdash;are <em>library-based<\/em>. These apps typically have a single window and a unified data set.<\/p>\n<p>We&rsquo;ve long appreciated the flexibility our document model provides. But in practice, most of our customers use only a single file. And more critically, this architecture makes it much harder to integrate Banktivity with the broader Apple ecosystem.<\/p>\n<p>[&#8230;]<\/p>\n<p>The shift from a document-based model to the new Organizer framework marks a major step forward for Banktivity. It simplifies how users interact with their data while laying the foundation for deeper system integration, background syncing, and a more seamless multi-device experience.<\/p>\n<\/blockquote>\n\n<p>This follows <a href=\"https:\/\/help.moneywell.app\/article\/88-importing-old-style-moneywell-documents\">MoneyWell also getting rid of the document model<\/a>. From my perspective, it&rsquo;s a shame. I prefer the flexibility of being able to have different accounts in different documents, choosing where to store the documents, and even splitting the same account across multiple documents for performance reasons.<\/p>\n\n<p><a href=\"https:\/\/www.iggsoftware.com\/blog\/2025\/10\/building-the-future-of-banktivity-organizer-progress-report\/\">Ian Gillespie<\/a> (2025):<\/p>\n<blockquote cite=\"https:\/\/www.iggsoftware.com\/blog\/2025\/10\/building-the-future-of-banktivity-organizer-progress-report\/\">\n<p>Ledgers contain an entire, independent set of accounts, categories, investments, goals, budget and so on. Many customers will only have one Ledger for the finances they manage. But we also know there is a good number of customers out there that manage finances across family members, non-profits and small businesses &#x2013; for these customers, support for multiple Ledgers is crucial.<\/p>\n<p>[&#8230;]<\/p>\n<p>While UI is what you see, most of the hard work has been in the architecture. The Library framework &mdash; the backbone that replaces our old document system &mdash; is in place. That means we can now reliably connect your Banktivity User Account with all of your Ledgers, whether local or synced to the cloud.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/www.iggsoftware.com\/blog\/2026\/09\/banktivity-10-1-built-on-a-stronger-foundation\/\">Ian Gillespie<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.iggsoftware.com\/blog\/2026\/09\/banktivity-10-1-built-on-a-stronger-foundation\/\">\n<p>Refactoring Banktivity from a document-based app into a library-style app was a significant undertaking. It changed some very fundamental assumptions in the code. Ledgers can now be opened and closed in the background, multiple windows and scenes can be active at once, and the Organizer has to coordinate local files, cloud sync, user accounts and application state in ways the old document architecture never had to.<\/p>\n<p>Banktivity 10.0 laid the foundation for that transition. With Banktivity 10.1, a major focus has been strengthening that foundation. We&rsquo;ve spent a lot of time simplifying the underlying architecture, eliminating race conditions and threading issues, and improving how ledgers are opened, closed and managed.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/03\/07\/moneywell-2023-01\/\">MoneyWell 2023.01<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Ian Gillespie (2025): Banktivity has traditionally been what&rsquo;s known as a document-based app. It lets you create and open independent files (or documents), each with its own data. In contrast, many modern apps&mdash;Music, Calendar, Photos&mdash;are library-based. These apps typically have a single window and a unified data set. We&rsquo;ve long appreciated the flexibility our document [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2026-09-07T18:17:04Z","apple_news_api_id":"61501f45-9221-4a37-b42b-9c06d03e88db","apple_news_api_modified_at":"2026-09-07T18:17:04Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AYVAfRZIhSje0K5wG0D6I2w","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[2960,105,1195,30,32,2742,375,2074,269],"class_list":["post-53108","post","type-post","status-publish","format-standard","hentry","category-technology","tag-banktivity","tag-documentmodel","tag-financial","tag-mac","tag-macapp","tag-macos-tahoe-26","tag-moneywell","tag-software-rewrite","tag-syncing"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/53108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=53108"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/53108\/revisions"}],"predecessor-version":[{"id":53109,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/53108\/revisions\/53109"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=53108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=53108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=53108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}