Skip to main content

Open Source Alternative to Airtable 2026

·OSSAlt Team
airtablenocodbopen-sourceself-hostedno-codedatabase2026
Share:

TL;DR

NocoDB is the best open source Airtable alternative in 2026 — AGPL-3.0, 50K+ GitHub stars, and built to connect to existing databases (PostgreSQL, MySQL, SQLite, Microsoft SQL Server) rather than reinventing storage. It gives you Airtable's spreadsheet-to-database UI — grid views, gallery, kanban, forms, automations — on top of databases you already own. Airtable charges $20–54/user/month on paid plans; NocoDB on a $10/month VPS costs nothing in licensing.

Key Takeaways

  • NocoDB (AGPL-3.0, 50K+ stars) connects to existing SQL databases and wraps them in an Airtable-like UI — no vendor lock-in on storage
  • Baserow (MIT, 9K+ stars) is the cleanest UI of any Airtable alternative — no technical setup required beyond Docker, fully browser-based
  • Grist (Apache 2.0, 7K+ stars) combines spreadsheet formulas with relational tables — the closest to Excel power-users moving to Airtable
  • Teable (AGPL-3.0, 15K+ stars) is the newest entrant with real-time collaboration and Postgres-native storage
  • Airtable's free tier caps you at 1,000 records per base; self-hosted alternatives have no record limits
  • NocoDB can be added to an existing Postgres database — you can give your team an Airtable-like interface without migrating data

Why Teams Leave Airtable

Airtable's pricing is per-seat and per-row, which creates cost spikes as data grows:

PlanPriceRecord Limit
Free$01,000 records/base
Plus$10/user/month5,000 records/base
Pro$20/user/month50,000 records/base
Business$45/user/month125,000 records/base
EnterpriseCustomCustom

A 10-person team on Pro with 30 bases hitting the 50K record limit pays $2,400/year — and still has per-base record caps. Once a team outgrows those caps, the Business tier at $45/user/month ($5,400/year for 10 users) is the only option before custom Enterprise pricing.

Self-hosted alternatives have no record limits, no seat-based pricing, and store data in standard SQL databases that you can query directly.


NocoDB vs Baserow vs Grist vs Teable

FeatureNocoDBBaserowGristTeable
LicenseAGPL-3.0MITApache 2.0AGPL-3.0
GitHub Stars50K+9K+7K+15K+
Connects to Existing DB
Grid / Spreadsheet View
Gallery View
Kanban View
Calendar View
Gantt View
Forms
AutomationsBasic
APIREST + SwaggerRESTRESTREST
Real-time Collab
Spreadsheet FormulasBasic✅ Full
Record LimitUnlimitedUnlimitedUnlimitedUnlimited
Min RAM512 MB512 MB512 MB1 GB

NocoDB wins for teams with existing databases — connect it to a Postgres or MySQL database you already have and immediately get an Airtable-like interface without migrating a byte. Baserow wins for simplicity — cleaner setup, better UI, and MIT license. Grist wins for spreadsheet power users who need full formula support. Teable wins for teams that want a modern, real-time Airtable clone built natively on PostgreSQL.


Setting Up NocoDB

Prerequisites

  • Docker and Docker Compose
  • Optional: An existing PostgreSQL database to connect to

Docker Compose (Standalone with SQLite)

# docker-compose.yml
version: "3"
services:
  nocodb:
    image: nocodb/nocodb:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      NC_DB: "pg://postgres:5432?u=nocodb&p=${POSTGRES_PASSWORD}&d=nocodb_meta"
      NC_AUTH_JWT_SECRET: "${JWT_SECRET}"
      NC_ADMIN_EMAIL: "admin@yourdomain.com"
      NC_ADMIN_PASSWORD: "${ADMIN_PASSWORD}"
    volumes:
      - nocodb_data:/usr/app/data/
    depends_on:
      - postgres

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: nocodb
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
      POSTGRES_DB: nocodb_meta
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  nocodb_data:
  postgres_data:
# .env
POSTGRES_PASSWORD=changeme-strong-password
JWT_SECRET=changeme-random-string
ADMIN_PASSWORD=changeme-admin-password
docker compose up -d
# Access NocoDB at http://localhost:8080

Connecting to an Existing Database

After logging in to NocoDB:

  1. Click New BaseConnect to External Database
  2. Enter your existing PostgreSQL, MySQL, or MS SQL connection details
  3. NocoDB reads your schema and creates views for each table automatically
  4. Your data stays in place — NocoDB is just a UI layer

This is NocoDB's killer feature. If your team has a Postgres database already used by your application, you can add NocoDB alongside it to give non-engineers an Airtable-like interface to the same data — no migration, no duplication.

Add Nginx Reverse Proxy

server {
    listen 443 ssl;
    server_name data.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/data.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/data.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Self-Hosting Experience

NocoDB is straightforward to run — a single Docker container stores metadata in PostgreSQL or SQLite, and the UI is fully web-based. The initial setup takes about 20 minutes including reverse proxy configuration.

The main operational consideration is backups: back up the NocoDB metadata database separately from any external databases NocoDB connects to.

Baserow's self-hosting is even simpler but requires all data to live in Baserow's own database (no external connection option). For a team migrating from Airtable and starting fresh, Baserow's import functionality handles CSV imports cleanly.

For the Teable self-hosting guide and setup walkthrough, see how to self-host Teable, a modern Airtable alternative.

For a full roundup of all Airtable alternatives including NocoDB, Baserow, Grist, and Teable, see Best Open Source Alternatives to Airtable in 2026.


When to Use Which

Choose NocoDB if:

  • You have an existing PostgreSQL or MySQL database and want a no-code interface on top of it
  • Your team needs Gantt/timeline views
  • You want to keep data in a database you already manage (backup, query, migrate independently)

Choose Baserow if:

  • You're starting fresh and want the cleanest, most polished Airtable-like UI
  • You need MIT license (vs AGPL) for integration into commercial products
  • Non-technical users will be setting up the bases themselves

Choose Grist if:

  • Your users are heavy spreadsheet users who need Python or Excel-style formulas
  • You need reference columns and relational links between tables with formula lookups

Choose Teable if:

  • You want native PostgreSQL storage with real-time collaboration
  • You're building a new data workflow and want the most modern codebase

Migrating Data from Airtable to NocoDB

Airtable's CSV export (available on all plans) is the most reliable migration path. Every base can export each table as a CSV — download them all before starting your NocoDB setup.

What migrates cleanly via CSV:

  • All field values (text, numbers, checkboxes, select options)
  • Attachment filenames (but not the files themselves — Airtable hosts those on their CDN)
  • Multi-select field contents (exported as comma-separated strings, need splitting on import)
  • Single and collaborator fields (exported as plain text)

What requires manual recreation:

  • Linked record relationships — Airtable's linked records export as plain text. NocoDB supports linked records natively, but you'll need to recreate the relationship definitions and re-link records manually or via the API.
  • Formula fields — Airtable formulas use a proprietary syntax. NocoDB formula syntax differs; most formulas need rewriting. NocoDB's formula system supports most common operations (IF, CONCATENATE, DATEADD, arithmetic) but uses different function names.
  • Views and filters — Grid/gallery/kanban view configurations don't export; recreate each view's filters and sorts manually.
  • Automations — Airtable automation workflows need to be rebuilt in NocoDB's automation editor or replaced with external tools (n8n, Zapier).

Import process in NocoDB:

  1. Export each Airtable table as CSV (Base → Download CSV)
  2. In NocoDB, create a new base or connect to an existing database
  3. Click ImportCSV and upload each table's file
  4. NocoDB auto-detects column types — review and correct any mismatches (especially date fields)
  5. After import, add linked record fields between tables and re-establish relationships

For bases with complex linked record structures, a scripted migration using NocoDB's REST API is more reliable than the UI importer. The NocoDB API supports bulk record creation (POST /api/v1/db/data/noco/{baseId}/{tableId}/bulk) which handles large datasets without hitting UI timeouts.


NocoDB Automations and Webhook Integrations

NocoDB's built-in automation engine handles trigger-action workflows natively — no third-party tool required for common patterns.

Available triggers:

  • Record created
  • Record updated (specific field or any field)
  • Record deleted

Available actions:

  • Send webhook (HTTP POST to any URL)
  • Send email notification (via configured SMTP)
  • Trigger another automation

Webhook integration pattern:

// n8n receives NocoDB webhook, processes and writes back
// NocoDB webhook payload structure
{
  "type": "records.after.insert",
  "data": {
    "table_name": "Projects",
    "record": {
      "Id": 42,
      "Name": "New Project",
      "Status": "Active",
      "Created At": "2026-04-14T10:30:00.000Z"
    }
  }
}

The webhook action in NocoDB sends this payload to any URL — your n8n instance, a Slack webhook, a custom API endpoint, or a Zapier webhook if you're in a hybrid setup.

NocoDB REST API for custom integrations:

# List all records in a table
curl "https://data.yourdomain.com/api/v1/db/data/noco/{base-id}/{table-id}" \
  -H "xc-auth: your-api-token"

# Create a record
curl -X POST "https://data.yourdomain.com/api/v1/db/data/noco/{base-id}/{table-id}" \
  -H "xc-auth: your-api-token" \
  -H "Content-Type: application/json" \
  -d '{"Name": "New Record", "Status": "Active"}'

# Update a record
curl -X PATCH "https://data.yourdomain.com/api/v1/db/data/noco/{base-id}/{table-id}/{record-id}" \
  -H "xc-auth: your-api-token" \
  -H "Content-Type: application/json" \
  -d '{"Status": "Done"}'

The API token is generated in NocoDB's Team & Auth → API Tokens section. Each token has read or read-write scope. For integrating NocoDB with CI/CD pipelines or internal tools, the API token approach avoids hardcoding admin credentials.

For teams that need more complex automation than NocoDB's built-in triggers support, connecting NocoDB's webhooks to an n8n workflow unlocks the full range of available integrations (400+ connectors in n8n). The pattern: NocoDB sends a webhook on record change → n8n receives, transforms, and routes to Slack, email, a CRM, or any other endpoint.


Role-Based Access Control and Team Permissions

NocoDB's permission system controls access at the base, table, and view level — covering most team access management scenarios without Enterprise licensing.

Permission levels (per base):

RoleCan Create TablesCan Edit RecordsCan ViewCan Share Base
Owner
Creator
Editor
Commenter❌ (comments only)
Viewer

View-level sharing is NocoDB's standout access control feature. Instead of sharing an entire base with external stakeholders, you can share a filtered, read-only view:

  1. Create a filtered Grid or Gallery view that shows only the records and columns appropriate for the recipient
  2. Click Share on that view → enable public link
  3. The public link shows only the filtered view — recipients cannot see other tables, columns, or unfiltered records

This is equivalent to Airtable's "shared view" feature, available without any paid plan on NocoDB self-hosted.

SSO integration: NocoDB supports Google OAuth and OIDC-based SSO providers out of the box. For teams using Okta, Azure AD, or Keycloak, configure the OIDC provider in NocoDB's environment variables:

NC_GOOGLE_CLIENT_ID=your-google-client-id
NC_GOOGLE_CLIENT_SECRET=your-google-client-secret

For OIDC providers beyond Google, set NC_OIDC_CLIENT_ID, NC_OIDC_CLIENT_SECRET, and NC_OIDC_ISSUER in your .env file. After SSO setup, team members can log in with their organizational identity — no separate NocoDB passwords needed.

API token scoping: Each API token created in NocoDB is scoped to the generating user's permission level. An Editor-level user can only create API tokens with Editor permissions. This prevents privilege escalation via API tokens and makes it safe to give developers API access without granting them schema-modification rights.


Methodology

GitHub star counts from each project's repository as of April 2026. Airtable pricing from airtable.com/pricing. NocoDB feature comparison from nocodb.com/docs and direct deployment testing on a Hetzner CX21 (2 vCPU, 4 GB RAM, Ubuntu 22.04). Record limits and API rate limits from Airtable's published pricing page. NocoDB API documentation from NocoDB's Swagger UI (/swagger).


Cost Comparison

ScenarioAirtable ProNocoDB (Self-Hosted)
10 users$2,400/year~$120/year (VPS)
25 users$6,000/year~$120/year (same VPS)
Record limit50,000/baseUnlimited
Data ownership
API rate limit5 req/secUnlimited (self-hosted)

The SaaS-to-Self-Hosted Migration Guide (Free PDF)

Step-by-step: infrastructure setup, data migration, backups, and security for 15+ common SaaS replacements. Used by 300+ developers.

Join 300+ self-hosters. Unsubscribe in one click.