Base 3.0
The app has had a major overhaul to all areas while keeping a familiar UI.
[…]
Highlights of this version include:
- Working with multiple attached databases
- Support for more SQLite features like:
WITHOUT ROWID
&STRICT
tables- Partial indexes (with
WHERE
clauses)- Named table constraints
- Generated columns
- Better syntax highlighting & autocomplete in the SQL editor
There are a bunch of these Mac SQLite apps, and Base is my favorite. I was worried that it was abandoned, as it didn’t seem to be getting many updates, and I was hitting some errors and UI glitches on newer versions of macOS. These seem to be fixed in 3.0. It’s $40.66 direct or $36 in the Mac App Store, with no upgrade pricing.
Previously:
Update (2025-10-04): Menial:
In mid-2020, the codebase for Base was struggling a bit. It was mostly Objective-C (which I still love) with some tentative Swift adoption dotted here and there. Any individual unit of code wasn’t too bad, but the whole was a bit tangled and causing headaches for making larger changes.
So I decided a clean slate was needed.
[…]
All of those shortcuts and gnarly corners had accumulated over 12 years. Yes, I knew why they were there and wouldn’t have to spend time rediscovering old problems, but I would still have to carefully preserve their behaviours in any new systems and ensure nothing was lost in translation. And that takes time.
[…]
I decided to adopt SwiftUI in 2020. This was, in retrospect, optimistic at best.
[…]
More than once I had a choice to either accept an easy or quick solution with a compromise, or do it the hard way and try for a better result. Apparently my default is to choose the hard way - it requires active mental effort to take an easier, but “less ideal” route.
In 2023, a reset and a much simpler plan:
No sweeping architectural changes. No adopting of the latest frameworks. Just a methodical, mechanical translation of working code into a more modern language, with some tidying as we go.
[…]
Spolsky was absolutely right and my circumstances weren’t as different as I thought.