Switchting from airtable

Hi everyone,

We’ve been using Airtable for several years as a central operational database/dashboard for our team. We originally chose Airtable because personally I prefer to avoid using google spreadsheets.

We currently have around 30–40 active users working in the system simultaneously throughout the day. We use it primarily as a shared workspace to manage websites, projects, statuses, and SEO-related operations.

A few details:

  • Currently on Airtable Team.
  • Approaching the 50k record limit per base so we need to switch to Business or keep splitting bases which is annoying
  • Expected cost will exceed $1,000/month if we upgrade to business plan.
  • Very limited use of automations, API calls, and webhooks.
  • No complex app-building use cases.
  • Reliability is critical since employees work in the system all day.

I am considering migrating to a self-hosted setup (hetzner or vultr server and using NocoDB + PostgreSQL. NocoDB seems to offer an Airtable migration path, but it is not entirely clear to me whether this is available in the self-hosted Community plan as well.

I had some questions:

  1. Has anyone switched from Airtable to self-hosted NocoDB at this scale (30–40 concurrent users)?
  2. How stable has it been in production?
  3. Any concerns regarding security? I noticed there have been some reported vulnerabilities in the past, although I haven’t seen many recent issues.
  4. Is the Airtable migration/import functionality available in the self-hosted Community Edition?

Would love to hear from people who made a similar transition from Airtable and whether they would do it again.

Thanks!

Hi, happy to help here — this is a migration we see teams in your exact position make all the time, so I’ll go through your questions in order. I’ll take #4 first, since it’s the one that unblocks the rest.

4. Is the Airtable import available in self-hosted Community? — Yes.
The Airtable importer is a core base feature, not a paid add-on. It lives in the standard base flow (base context menu → Import data → Airtable Base, or Import Data on the base dashboard), and it’s the same importer documented here: Import Airtable to NocoDB

And this isn’t a niche path — thousands of Airtable bases have already been imported into NocoDB this way, so you’re walking a well-worn road: Migrate from Airtable

A few things worth knowing before you run it, because they’ll save you a surprise:

  • You’ll need an Airtable Personal Access Token (minimum data.records:read scope) and a shared base URL with full base access turned on. The docs walk through generating both.
  • Formula fields do not import — that option is greyed out. Rollups, lookups, and attachments do import (each is a toggle). Plan to rebuild formulas by hand on the NocoDB side. At your scale that’s usually the bulk of the manual cleanup, so scope it in advance.
  • Import schema-only first (toggle data off) on a throwaway base to sanity-check field mappings before you pull all the records. For a large base, the full import takes a little while — let it run.

So nothing about the migration path requires a license. Self-hosted Community is free and open-source under their Fair Code license and is fine for internal company use, which is exactly your case.

1. Has anyone run this at 30–40 concurrent users?
Regularly — that’s not a heavy load for Postgres at all. The number that matters isn’t “concurrent users,” it’s query patterns and instance sizing. Editors clicking around grids generate light, bursty traffic, and a single well-specced instance handles your range comfortably. On hosting specifically: a lot of our customers run on Hetzner and love it — it’s solid, the price-to-performance is hard to beat, and it pairs well with this stack. Two sizing notes:

  • Put attachments on S3-compatible storage (Hetzner Object Storage, Backblaze, etc.), not local disk. This is the single biggest reliability/scaling decision.
  • If you ever split the API and worker into separate containers or run replicas, you’ll need Redis for state to propagate. For one instance you can keep it simple.

2. Stability in production?
Solid, with the usual self-hosting caveat: stability becomes your responsibility rather than Airtable’s, so budget for it. Concretely: automated daily pg_dump backups (test a restore before you trust them), pin to a known-good image tag rather than blindly tracking latest, and have a rollback plan before you upgrade. The software itself is dependable day-to-day; the incidents teams hit are almost always missing backups or an unsupervised upgrade, not NocoDB falling over.

3. Security / past vulnerabilities?
There have been disclosed CVEs in the past, which is normal for any actively developed app of this size — the relevant signal is that they get patched, so staying reasonably current matters. Self-hosting puts the surface area in your control, which cuts both ways. The baseline I’d insist on:

  • Never expose it directly; put it behind a reverse proxy (Caddy/Nginx) with TLS.
  • Lock down the admin panel and use strong auth. Note that SSO is a paid feature, so if SSO is a hard requirement for 30–40 staff, that changes your licensing math (see below).
  • Restrict Postgres to localhost / private network, and keep your host patched.

On cost — this is where you win.
Your Airtable Business projection is >$1,000/mo and climbing per seat. Self-hosted Community has no per-seat charge and no built-in record limit — your 50k ceiling disappears. So for your described usage (light automation/API/webhooks, no app-building), Community likely covers you, and your recurring cost is basically the server (Hetzner/Vultr is cheap) plus your time.

You’d only buy a self-hosted Business/Scale license if you want the gated features — SSO, table/field-level permissions, teams, audit logs, row-level security. It’s self-serve: purchase per editor through your NocoDB Cloud account and activate by pasting the key into Admin Panel → License.

Two things to flag on licensing: it requires Postgres (you’re already there, good), and a standard license checks in with the license server every 6 hours over HTTPS, with a 48-hour grace window before paid features pause. No application data leaves your box. For Community you don’t deal with any of this.

Bottom line.
Given your profile — cost-driven, hitting record limits, minimal automation, no custom apps — this migration lands firmly in your favor, and plenty of teams have made exactly this move. My honest advice: do a parallel pilot. Stand up the server, import one real base, rebuild the formulas, and let a few power users live in it for two weeks alongside Airtable before committing the whole team. That surfaces the formula-rebuild effort and any view quirks while you still have a safety net.

Happy to point you to the docker-compose and Postgres tuning specifics if useful.

Hi,

Thank you for the detailed and thoughtful reply. I really appreciate the time you took to answer each point and explain the practical considerations around migration, hosting, security, and licensing.

Your explanation clarified a lot of the questions I still had, especially regarding the Community Edition, Airtable import, and what to expect from a self hosted setup.

Based on the feedback I have received and some additional research, I have decided to move forward with the migration and start setting up a NocoDB + PostgreSQL environment. Fortunately, our Airtable usage is fairly straightforward, so I expect the transition to be manageable. No brainer comparing the cost :slight_smile:

Thanks again for sharing your experience and advice. It was genuinely helpful in giving me the confidence to get the migration process underway.

Thanks a lot!

1 Like