The software I want doesn't exist
The first time I used Notion databases, I knew that they were the closest realization of my vision for the perfect personal data authoring tool. They're such an obvious incremental improvement over spreadsheets that I struggle to understand why nothing like them was available to consumers a decade ago. But, alas, Notion is funded by venture capital, the devil's mark that ensures their product will only get worse over time. The only way I'll resolve my grievances with this software is if I replace it. But... with what, exactly?
Obsidian, in contrast, is my favorite piece of software at the moment. It's very close to being the ideal note-taking software for me: local files, unencumbered by proprietary or inscrutable formats, with a fast & pretty interface that doesn't get in my way. It's great for prose out-of-the-box, and it sports a flourishing plugin community developing solutions for structured data. I've tried some of the popular ones:
- Advanced Tables is about as good as I could ask it to be, offering an acceptable Markdown table authoring experience. I use this one sporadically around my vault, but the thought of migrating my commissions database from Notion to this sounds like a downgrade. It supports creating and deleting rows & columns, and can sort rows destructively, but there are no data types or views. The way everything constantly misaligns while typing gives off a janky impression, even if it only minimally impacts the authoring experience. It feels to me like this concept reached its limits halfway to my goalpost.
- Notion-like Tables
features a table editor that mimics Notion tables with noteworthy accuracy.
It has fewer implemented data types,
but it takes about as few clicks to add & configure a new column
as it does in Notion - impressive!
Unfortunately, even small test tables are laggy to edit.
Adding a new row requires clicking a button under the table,
and it saves to a bespoke
.table
JSON schema that's not easily readable in any software but the plugin itself. I have reservations about migrating my personal data into this format. - Database Folder is certainly ambitious, but it has to cut a lot of corners in its pursuit of a Notion-like feature set. Adding a new column requires a modal dialog, which would be fine if adding a new row didn't require one, too! Similar to how Notion uses pages for everything under the hood, Database Folder maps rows to files, which pollutes one of my most-used modals in Obsidian, the file search. Sadly, this plus the prevalence of modals instantly turned me away from this plugin. I love the concept, but it feels like the Obsidian API just isn't ready to match Notion's interface one-for-one here.
I should mention that Notion's UI isn't perfect, either. Trying to add & change stuff in a Notion database is a slow & cumbersome process about a third of the time. Basic keyboard operations seem to change their behavior across a lot of common editing states, defying any efforts to build muscle memory. But do you know what's gotten this experience right as far back as the mid 80's? Spreadsheet processors! Internalizing the behavior of about eight keys allows you to operate nearly any spreadsheet processor as efficiently as any other. In my eyes, this affordance exceeds the ergonomics of every other data authoring tool I've mentioned, including Notion.
Google Sheets seems to be the popular choice for spreadsheets, but I don't respect Google nearly enough to bring their products further into my life. Microsoft canned the Office suite I tolerated in favor of everyone's favorite pricing model; I'm not paying them rent for the privilege of using Excel. LibreOffice Calc is the only real open-source competitor in this space, and while it does match Excel's keyboard shortcuts to my judgement, it's still just a bog-standard spreadsheet application. I need something more ambitious now that I've tasted the golden nectar.
All I'm asking for is the best of all worlds:
- My data should be stored in local files, not the cloud.
This is hard to monetize and inconvenient for the non-tech-savvy,
so all the paid & properietary solutions have left this use case in the dust.
- I would also settle for a self-hosted solution. Vaultwarden has proven to me that my own servers can make sense as part of my digital daily carry.
- My data should be unencumbered by proprietary formats. Sorry, Notion, but a blunt export-to-CSV doesn't cut it here.
- Columns should have rich & intuitive data types, including select / multi-select, dates, URLs, and relations across tables. LibreOffice Calc fails at this in 2023 because Microsoft Excel failed at it in 1999.
- I should be able to easily spin up data views that non-destructively sort, filter, and group my data. My want for this feature makes Markdown tables feel like plastic toys.
- The interface should get out of my way! I never want to have to reach for my mouse. Spreadsheets, Obsidian, and vim meet this bar and little else does.
From what I can tell, this magical software doesn't exist today. Baserow comes very close with its self-hosted option, but its interface lacks the necessary keyboard ergonomics to become part of my daily workflow. Anytype makes some bold claims about being a "self-hosted Notion", but their product is still in early access & sounds quite unstable from what I've read. Their website also has some verbiage that, for lack of a better descriptor, feels like a dogwhistle for Web3 shills:
We welcome and reward anyone who contributes to improving Anytype. Anytype will be an open organization that is collectively owned by its creators.
Maybe I'm being too picky. Maybe I should just stick with Notion and migrate when a solution better aligned with my values pops up. Maybe I should embrace the retro world of spreadsheets and become the world's first LibreOffice Calc power user. Or maybe I should go and build what I want myself, being one of those programmer types who thinks they know exactly how software ought to behave.
What do you think? Let me know in the comments below!
There are 0 comments because this is a static website.