Show HN: Base, an SQLite database editor for macOS
205 __bb 69 8/25/2025, 2:17:38 PM menial.co.uk ↗
I recently released v3 of Base, my SQLite editor for macOS.
The goal of this app is to provide a comfortable native GUI for SQLite, without it turning into a massive IDE-style app.
The coolest features are
- That it can handle full altering of tables, which is quite finicky to do manually with SQLite.
- It has a more detailed display of column constraints than most editors. Each constraint is shown as an icon if active, with full details available on clicking the icon.
This update also adds support for attaching databases, which is a bit fiddly with macOS sandboxing.
I'd love to hear any feedback or answer any questions.
I like these kinds of things though. Minimal purpose built tools.
Jetbrains products realize that these binary values are UUIDs and let me edit them easily.
A binary blob of 7-bit-clean ASCII still fits within a binary blob.
- It fits with the system better and behaves more like other macOS apps
- I believe Base has better create/alter table support
However Base doesn’t (currently) have support for SQLCipher.
As much as visually fitting in is important, behavior is perhaps bigger. Anybody who’s working on the Mac port of a cross platform toolkit would do well to replicate those little bits.
People who care about their tools. If I have to stare at it all day, being pleasant on the eyes is a feature. If every time I grab my tool I think “urk, this is so ugly”, it affects my flow.
I don't think Base is at all and only supports macOS
I'm trying to understand who your target audience is? Normally, I think of SQLite as something that only a programmer would use. (And thus these kind of statements happen within an application.)
What kind of use cases are you handling where someone is manually creating / changing a schema?
> Import data from CSV and SQL dump files. Export your results to SQL, delimited text, JSON, and Excel formats.
IE, who's using SQLite in this way, and what are they using it for?
Additionally, while I know my way around and even enjoy the command-line, on occasion I bump into some app’s SQLite database that I want to explore. I can see myself using a GUI for those instances to help me find the data I’m looking for faster.
I have regularly used sqlitebrowser. You can even get create table statements corresponding to tables you have drafted with it, and you can copy-paste these statements in your code. Or build and test a sql statement incrementally, and paste it in your code when you are happy.
Or even to plain browse data, explore database from other tools, etc. There are a lot of occasions where such a tool can be convenient.
As to importing/exporting data (csv, etc), You can't exactly run queries against a CSV generally (I mean you can with JET/ODBC, but still)... it's a chore.
To another point, I often feel that sqlite is a great backup format for data, it's portable, you can query directly, etc. I kind of wished that Azure Data Studio (now discontinued) had directly supported loading CSV/TXT etc into an in-memory or temp db for queries and portability similar to mentioned between various data sources (sqlite, mssql, pgsql, etc).
I’ve got quite a few scientists using it for data analysis, a whole bunch of people importing sales data for querying.
A good number of folks never write any SQL and just use the GUI to sort/filter data.
I’ve also heard from people who use Base to design a schema and then export the SQL into their codebase.
EDIT: I should add that Base does nothing that that the command line tool can't. But it does offer more convenience, particularly for those who might be less comfortable writing SQL.
I've been using TablePlus a lot, but there are some SQLite-specific features I'd really like to have in an app:
- Foreign keys enabled by default, so I don't have to remember to enable that in every session.
- Support for loading extensions automatically. I'm using sqlite-vec for example. Right now, browsing virtual tables for that just doesn't show that much, and executing a query just results in "no such module: vec0"
I'll keep an eye on the project. :-)
Auto-enabling foreign keys absolutely should be an option. I'll make a note of it.
I don't know about auto-loading extensions though. Will have a look. That might not mix well with the App Store rules and I'm reluctant to let the direct/app store versions drift apart in terms of features.
Is that another way of saying you don't want to make MS Access?
I still use Access quite a bit and I think it's pretty great. It's too bad that nothing like that exists for modern databases.
It's unlikely that I'll add a form builder or report generator to the app. I don't want it to grow until it can send email.
The “thick” tool will always be more efficient than a browser-based tool. It will always be more native and integrate with the OS better. It will perform better (though that may not always be visible).
Yes I am seriously asking. The web is the worst application platform ever created, despite being maybe the only true cross-platform platform.
> The web is the worst application platform ever created
That's an extreme position. Today no one is making native Windows apps because the web has defeated native apps on Windows.
https://sidequery.dev
https://sidequery.dev
https://menial.co.uk/base/buy/
Think like MySql Workbench but for multiple users, that would be incredible
As an aside, feature bloat is a massive problem with macOS database tools.
I'd happily pay for something basic, native, and pretty like Sequel Ace†, but all of the other options are Swiss Army knives for power users who need to tweak every little thing. I just want to do some queries.
† I'd pay for Sequel Ace, too, if it didn't crash every time I close a tab.
EDIT: Very minor nitpick but noticed I changed my icon to dark, but not taking effect. Still using light icon.
I'd say the main benefit is that it's tailored only to SQLite's features.
You don't have to tweak a UI tailored for remote connections to work with local files. You don't need to have extra sections dedicated to user management or stored procedures which are inactive. I guess I'm saying that in this case less is more!
This makes for a much nicer app for mac users, even if it does cut your potential audience.
While the database stuff works on Linux and Windows, building UIs for the 3 platforms is very different, unless you use some cross platform wrapper layer. Which isn't the purpose of this one. You might want sqlitebrowser[1] if you're looking for something like that.
[1]:https://sqlitebrowser.org