Bad Experience with NoCoDB
For context, Airtable won't sign a BAA, so for healthtech it's necessary to self-host. The role that Airtable serves in an org is super valuable as an operational swiss army knife, so I wanted to deploy a tool. The two best-known self-hostable tools are NoCoDB and Baserow. After spending significant time setting up and configuring NoCoDB, then trying to deploy it, I've come to the conclusion that as of 2025 it is not mature enough for production use.
For context, this isn't open source parasitism, we're willing to pay at least hundreds of $ for something that does a good job of bridging the gap between tech and non-tech.
Using NoCoDB, I encountered a problem I was very much uncomfortable with:
1. In NoCoDB, if you create a field as a JSON and then switch to a JSONB, the entire column of data will be deleted with no warning, confirmation, or message. This migration is trivially possible with SQL with no data loss, so I assumed the case would be covered, and before I knew it I'd just deleted an entire column of data with no warning in 4 clicks. Nope nope nope.
2. I restore from backup. To save time, I try to use NoCoDB's handy CSV import feature to load the column back in, I thought. I attach my file, click submit and... an error toast with no message pops up.
I delete the NoCoDB instance. Something else will suffice, but not this.
6 comments
[ 3.2 ms ] story [ 21.0 ms ] thread1. Around 50% of the time, deleting unsaved row items hangs infinitely and needs a page reload to fix.
2. Deleting a single unsaved row item when there are multiple unsaved row items deletes all of them
3. The input for selecting a default value for JSON fields does not let you type anything
4. No UUID support
5. Adding filters or sorts to the default view adds them for everyone, so if someone was drilling down on a specific record and forgot to delete their filter, you have to delete it first
6. Bases are saved as different schemas in the underlying database, but the IDs are random and not visible from the UI so using a database explorer is a fun guessing game of which ID corresponds to which base.
7. Irreversibly deleting a table takes 3 clicks, the last two of which are both plausible misclicks.
8. No undo functionality