I Migrated Away From Airtable for the Open Source. Then the Licence Changed.
Twelve months ago I wrote about open source alternatives and developer sovereignty. Then NocoDB relicensed, and I got to test my own advice from the receiving end.
Last July I published a piece about open source alternatives and developer sovereignty. I still agree with most of it. It was also written from the comfortable middle of a decision, which is the easiest place in the world to be certain about something.

Twelve months later, one of the tools I recommended changed its licence underneath me.
So this is the follow-up, and it's less tidy than the original.
Why I left Airtable in the first place
I was a heavy Airtable user, and the automations were really the point. Forms came in through Typeform, later Tally, and n8n did the wiring in between.
About that Tally link
I switched my forms over from Typeform a while back and haven't wanted to go back since. It's the tool I open most days, so it belongs in this story whether or not there's a link attached.
There is one, though, and you should know it: that link is a referral. It gets you 50% off for three months, and it pays me something if you end up subscribing. I'd have named Tally regardless, they just happen to run a programme. If you'd rather not have me in the middle of it, tally.so is the plain link and I won't know the difference.
What sat on top of that was a slightly ridiculous spread: organising queer parties in Luxembourg, managing a talent roster, running the non-profit, plus a pile of inventories and project databases that never existed anywhere else. None of it was exotic. All of it was load-bearing, in that if it broke on a Friday I'd hear about it on Saturday.
For a few years Airtable was the best thing in its category and nobody was close.
Then a few things went wrong at the same time.
The pricing kept finding new surfaces to meter. Seats, then records, then automation runs, then API calls, then attachment storage. Each cap was defensible on its own. Together they meant I couldn't tell you what a project would cost by the time it was finished, which is a bad property for a tool you're building on.
The product also kept moving. Forms got rebuilt. The interface builder changed shape more than once. And AI showed up early, well before it was any good, and then showed up again in every panel and every field menu and every empty state. I don't want a copilot for a table. I like doing this part myself, poking at it, getting the schema wrong twice and finding the right shape on the third go. That's most of the fun, honestly, and it kept getting interrupted by a suggestion box I hadn't asked for.
Meanwhile every hour I put in made leaving harder. Not out of malice on their part. That's just what a good SaaS is: somewhere your work piles up and stays.
So I did the thing I'd been telling other people to do. I moved to NocoDB, self-hosted on YunoHost, on my own box. AGPLv3, my data, my server.
It felt like getting my keys back.
What Airtable became while I was gone
Fairness first, or the rest of this is worthless.
Airtable didn't stagnate. It went hard in the direction everyone went. Omni is a conversational builder that generates bases, tables, interfaces, automations and AI field agents from a prompt. Building with it is free; running AI operations across your data eats into a monthly credit allowance. It falls over on complicated relational schemas and anything with specific formula logic, so it's an accelerator rather than an architect. But the demo isn't a lie, and I say that as someone who wanted it to be.
Where the plans sit in 2026:
| Free | Team | Business | |
|---|---|---|---|
| Price per seat / month | $0 | $20 | $45 |
| Records per base | 1,000 | 50,000 | 125,000 |
| Editors | 5 max | unlimited (billed) | unlimited (billed) |
| Revision history | 2 weeks | 1 year | unlimited |
That first column is where it actually hurt, and I know because I hit it. One of my tables reached a thousand records. I pruned it, archived what I could, told myself I was being disciplined. It filled up again within a few months, the way useful tables do. In the end I moved it somewhere else entirely. Nobody enforced anything. The decision just got made for me, one row at a time, over about a year.
A thousand records is a shopping list. That's deliberate, and it's the same logic that pushed me out.
I'll be blunt about the uncomfortable bit though: if what I wanted today was to ship something AI-shaped by Sunday, Airtable would win and it wouldn't be close.
The part where the ground moved
From version 0.301.0 onward, NocoDB left AGPLv3 for a source-available "fair-code" licence, the same model n8n uses. Not OSI approved. Not open source by the definition most of us actually use.
Their reasoning is public and it isn't stupid. Companies were taking the code, reselling it, and keeping their own modifications private in ways the AGPL was meant to prevent and couldn't practically enforce.
And this isn't really a NocoDB problem. It's the structural problem of open source, and it's got a lot worse in the last two years. Cloning someone's product used to take a team, a roadmap and a year. Now a decent model will read a codebase, explain the architecture back to you, and help you reimplement or rebrand the thing in a fraction of that. The gap between "we published the source" and "someone is selling your work back to your users" has more or less closed. Licences written for a slower world are being asked to hold a line that doesn't hold any more.
So the maintainers did what maintainers keep doing lately, and framed the switch as being more generous to people using the project honestly and less useful to everyone else. Having read a few of these announcements now, I recognise a real problem behind it. Keeping infrastructure software alive on goodwill is brutal, and "just enforce the AGPL" is advice given almost exclusively by people who've never paid a lawyer.
So no, nobody betrayed me. A company protected itself.
The trouble is that I didn't pick NocoDB for its features. I picked it for its licence. As far as my decision went, the licence was the product. So when it moved, it wasn't a footnote in a changelog, it was the whole reason I was there.
And the marketing still says open source in most of the places you'd look first. That part I won't be diplomatic about. It's a lie. Not a nuance or a positioning choice or an interesting debate about definitions. The term has a meaning, the licence stopped meeting it, and using the word anyway is trading on trust the project has stopped earning. Change the licence if you need to. Change the copy the same day.
What it costs once you read the fine print
The relicense is the headline. The feature ladder is what you actually live with.
Credit where it's due: Community Edition is genuinely generous on the axis I originally cared about. Unlimited rows, unlimited storage, unlimited seats, the full API, all the view types, your own Postgres, your own backups. That's real and I don't want to skate past it.
Here's what sits above the line:
| Community (self-hosted, free) | Business self-hosted ($24 / editor / month) | |
|---|---|---|
| Rows, storage, seats | unlimited | unlimited |
| Views, REST API, webhooks | yes | yes |
| Scripts and workflows | no | yes |
| Dashboards | no | yes |
| Interfaces (new in 2026.08, beta) | no | yes |
| SSO, field and table permissions | no | yes |
The free self-hosted edition is an excellent database with a very nice grid on top. Complex automation, which is precisely the thing I found too expensive at Airtable, is on the paid side, at a price that lands within spitting distance of Airtable Business. I didn't escape the bill so much as change who I'd be paying it to.
Then there's the one that actually stopped me. Straight from their docs:
Community Edition includes a default workspace, and it does not allow the creation of additional workspaces.
One workspace, permanently. I run a non-profit alongside my own projects and I wanted them separated the way anyone would: different space, different members, different mental drawer. Can't.
There are ways around it. Set people to No Access at workspace level and invite them per base, since base roles override workspace roles. Or run a second container with its own database behind the same reverse proxy. Both work fine. Both are me doing sysadmin to route around a business model.
So why haven't I left?
I did look, properly, and the options are decent.
Baserow is the obvious move: MIT core, unlimited rows and workspaces when you self-host, and that 3,000 row cap everyone quotes is a cloud billing limit and nothing else. It solves my exact blocker. The catch is the install. Its YunoHost package is still marked "development" and wants something like 5 GB of RAM to build from source, though the official all-in-one Docker image skips all of that. Grist is Apache 2.0 with Python formulas and is quietly excellent. Teable is AGPL and feels closest to Airtable.
Any of those is a defensible destination. I still haven't moved, for three reasons I'm not especially proud of.
The first is that migration is a tax you pay in evenings. Not the data, the data is a CSV export and an afternoon. It's the automations, the n8n flows pointing at specific endpoints, the muscle memory, the little scripts that quietly assume a schema. Every migration I've done has cost me roughly three times what I estimated, and I've already spent one batch of weekends leaving Airtable.
The second is that a licence is a promise, not a lock, which is the genuinely uncomfortable lesson here. MIT today doesn't guarantee MIT tomorrow. The copyright holder can relicense whenever they like; the release you already have stays free and everything after it might not. Moving to Baserow wouldn't buy me immunity, it'd buy me a different company's current intentions. If I move every time a vendor's incentives shift, migrating becomes the hobby.
The third is just that it works. Nothing broke. My data is on my disk, in a Postgres database I control, and I could get it out this afternoon. What I was really buying with all that sovereignty talk was never a licence badge, it was the ability to leave without asking anyone. I've still got that. It's less principled than it was, but it's intact.
That's not loyalty. It's a lease I haven't found a reason to break.
What I'd tell myself a year ago
The post I wrote back then asked the right question, who controls your data?, and then stopped one question too early.
Here's roughly what I run through now, and almost none of it is about features.
Who owns the copyright? One company can relicense at will. A foundation, or a project with distributed copyright, structurally can't. That's not a vibe, it's governance, and it's usually findable in ten minutes.
How does this make money? If you can't answer that, you're the part that hasn't been monetised yet. Not cynicism, just arithmetic: software costs money to build.
Which features sit above the paid line, and which way is that line moving? Watch it across two or three releases rather than one. Lines tend to drift in a single direction.
What's my real exit cost? Not "can I export", everyone can export. How many hours until I'm running somewhere else? If you don't know the number, you don't have sovereignty, you have a nice feeling about your hosting.
And the one I'd have needed most: am I choosing the licence or the product? If it's the licence, you've made a bet on a company's future intentions, and you should size it like a bet.
The conclusion I keep landing on is that self-hosting bought me less than I thought and more than nothing. It didn't make me sovereign. It made me portable. I used those two words interchangeably for a year and they aren't the same thing at all.
So here's where I actually am. One instance, one workspace, the non-profit and my own projects sharing a drawer they were never meant to share, because the alternative is running infrastructure I don't want to run. If I ever need to give someone else access I'll reach for the No Access trick and invite them base by base. It'll work. It'll also be a workaround I'm performing on behalf of a pricing page.
That's not a migration plan. It's a note to myself about what I'm currently willing to put up with, written down so I notice when the answer changes.
The Tally link in this post is a referral link, flagged where it appears. Nothing else here is sponsored, and no vendor saw this before you did.
