I really like Airtable. It's a user-friendly spreadsheet/database app that supports relationships between tables. I've written about it here a few times already. However, their business model is not a great fit for my use-case.
They're understandably focused on business users that can afford to shell out a lot more money than me. I only use it occasionally for tracking my own personal collections and after many years of using it, I am slowly bumping into the record limit, but I can't fork out that much money for a few hundred extra rows in an app I use a few times a month. And even if I did, the cool widgets they have are only available on the even more expensive tier.
So when I say I want an alternative, I basically mean I want a spreadsheet with relationships between tables, with a nice UI and an HTTP API. As is usually the case when I'm looking for a self-hosted alternative to something, googling yields nothing of interest (in this case, only commercial alternatives for startups, for specific use-cases, and other things completely irrelevant to me). I only find something interesting when I go to places where people talk about self-hosting and read randomly until I stumble upon what I need by accident. 😀 In this case, this thread on r/selfhosted.
The thread mentioned Baserow, NocoDB, Saltcorn and SeaTable. If you're looking for an in-depth comparison, this ain't it. This is just a quick one I did to see if any of them fit my use-case.
tl;dr: I will be running NocoDB to play with it some more. The UX is not nearly as good as AirTable's, which was to be expected from a younger, open-source alternative. However, the API for data manipulation is good, and n8n already has a connector available.
So here's a quick rundown. Also note: it has been a few months since most of this post was written. Details would have changed since then.
Simple like Excel, powerful like a database
SeaTable is the new flexible way for teams to work on tasks, projects or ideas. It looks like Excel, but it has so much more to offer.
Well, not sure why this one was recommended in the self-hosted thread. It's a closed-source solution with a business model seemingly very similar to AirTable's. At the moment, they do offer more rows in the free tier; however, there's not much point in bothering to migrate to a different walled garden and hoping they don't decrease the limits.
Build with no compromises, no code, in no time
Seems like it supports quite a few modes - the sample apps show lists, dashboards with graphs, and others. That's nice, but might not be that relevant for me, since I already run Metabase.
The first time I tried, the sample docker-compose and quickstart didn't work. They got fixed later. I didn't love the UI and it doesn't support multi-select fields, so I'm moving on.
Open source no-code database and Airtable alternative
This one did run on the first try. I even imported some data easily. There were issues, though - when a column was imported as a string and I changed the type to Single Select, instead of converting the existing entries into options, it just deleted everything. And it had no undo.
Those can be fixed (and who knows, by now they might be gone). However, the real deal-breaker for me is the sheer number of dependencies. Just starting it up created ten different containers. There was one for the web frontend, the backend, Celery, two different Celery workers, a database, Redis, a mailer, and two apparently media-related containers.
Maybe one could justify that number of dependencies for a large-scale deployment. Perhaps. But that's not my case: most of the apps I host only have a single user. I want a solution that ideally has two containers: the DB and the app.
Open Source Airtable Alternative
NocoDB is an open source #NoCode platform that turns any database into a smart spreadsheet.
The first impression was good, even though there is no CSV import. It supports both single- and multi-select fields. I've encountered a few serious bugs, but they have been fixed since. 👍🏻
I really like that it lives up to its tagline, though - turning any database into a spreadsheet. I've successfully connected it to both MariaDB and Postgres. I can either import existing tables or create a new one via the UI. And it seems to be built for both updating data using the UI, or directly in the DB. I have kinda expected all these apps to treat the data as their internal state, where messing with the tables directly might negatively impact the app. That doesn't seem the case.
It also had a great, cheesy Matrix-style screensaver, but I can't seem to trigger it. I hope they didn't remove it! 😲
So for me, the clear winner here is NocoDB. I have played some more with it. I still miss the CSV import, but I can work around that by importing the CSV into the DB directly. I have also tried the API, and while it does seem to be lacking in documentation a bit, it's quite nice to use. The most difficult part was getting the attachments to work because they use a different, mostly documented (yet) endpoint. (I've also made it a bit harder for myself by writing the code in Crystal - a language I have never used before. But it was fun. 😄)
But especially the ability to modify data via the UI, the API, and the DB directly is a game-changer. Since this is my personal stack, anything I want to build on it has to be squeezed into my limited spare time. The part of my stack that does most of the data manipulation can trivially be connected to the DB, letting me quickly implement things I need with SQL queries instead of handling everything over HTTP. (I have written about Transposit, which promised a SQL interface for AirTable. That didn't work for long, though.)
Nocodbdefinitely does not have a UI as polished as AirTable's, and I do miss real-time updates. Not that I collaborate with people - I just enjoy seeing the data pop up in real time when one of the bots starts updating something while I'm looking at it. However, the added flexibility and non-existent data caps make it up to me.