[{"data":1,"prerenderedAt":196},["ShallowReactive",2],{"seo-verification":3,"blog-migrating-from-airtable-to-nocodb-or-grist-on-a-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-migrating-from-airtable-to-nocodb-or-grist-on-a-vps-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"category":21,"categories":26,"featuredImage":28,"bgImage":29,"posterImage":30,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":134,"ctaBody":135,"ctaButton":136,"ctaUrl":137,"relatedPosts":138},336,"migrating-from-airtable-to-nocodb-or-grist-on-a-vps",{"fr":12,"en":10,"ar":13,"es":14},"migrer-airtable-vers-nocodb-grist-vps","الانتقال-من-airtable-إلى-nocodb-أو-grist-على-خادم-vps","migrar-de-airtable-a-nocodb-o-grist-en-un-vps","Migrating from Airtable to NocoDB or Grist on a VPS","Bending Spoons acquires Airtable for $1.28B (August 4, 2026). Full guide to migrate your bases to self-hosted NocoDB or Grist on a VPS.",8,0,false,"2026-09-07T00:00:00+00:00",{"id":22,"name":23,"slug":24,"color":25,"icon":24},5,"Comparison","comparatif","bg-info\u002F10 text-info",[27],{"id":22,"name":23,"slug":24,"color":25,"icon":24},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmigrer-airtable-vers-nocodb-grist-vps-poster.svg","On August 4, 2026, Bending Spoons announced the acquisition of Airtable for $1.285 billion. This acquirer has a well-documented track record: after buying Evernote in 2023, it significantly raised the annual subscription price for users. Teams storing their customer data, project pipelines or content catalogs in Airtable have a migration window before pricing changes. NocoDB and Grist offer exactly the same primitives — relational databases, spreadsheet views, REST API — self-hosted on a VPS you control.",[33,37,47,87,90,93,112,127,131],{"type":34,"title":35,"body":36},"h2","Why the Bending Spoons acquisition changes everything","Bending Spoons has built its model on a repeated pattern: acquire a mature SaaS, reduce headcount, then revise pricing upward. Evernote is the most documented example — the annual subscription rose significantly after the 2023 acquisition by Bending Spoons, for unchanged features. Airtable's terms of service impose no cap on annual price revisions.\n\nAirtable reported $480 million in ARR as of June 2026, with 500,000 customer organizations including 80% of the Fortune 100. These figures indicate a solid revenue base — and pricing leverage that grows with customer dependency.\n\nFor an agency or development team that has built its workflows on Airtable, the question is no longer \"will prices change?\" but \"when, and by how much?\"",{"type":38,"title":39,"items":40},"ul","What you gain by self-hosting",[41,42,43,44,45,46],"**Fixed cost** — a VPS at `{{vps.start.price}}` covers NocoDB for a ten-person team with no per-seat variable line.","**Data under your control** — no third party accesses your contact databases, sales pipelines or product catalogs.","**Identical REST API** — NocoDB exposes an API compatible with the webhooks and integrations you built on Airtable.","**No record limits** — Airtable caps at 50,000 rows on Business plans; self-hosted NocoDB and Grist have none.","**Controlled updates** — you choose when to migrate to a new version, without vendor-imposed breaking changes.","**Full export at any time** — your data lives in your own PostgreSQL or MySQL database, exportable without depending on a third-party API.",{"type":48,"title":49,"headers":50,"rows":54},"comparison","NocoDB vs Grist vs Airtable — comparison table",[51,52,53],"Criterion","NocoDB","Grist",[55,59,63,67,71,75,79,83],[56,57,58],"License","AGPL-3.0","Apache 2.0",[60,61,62],"Data model","Relational database (PostgreSQL \u002F MySQL \u002F SQLite)","Relational spreadsheet with calculated columns",[64,65,66],"Native Airtable import","Yes — via Personal Access Token and Shared Base ID","No — CSV\u002FExcel import; two-step migration",[68,69,70],"Available views","Grid, gallery, form, kanban, calendar, map","Grid, card, calendar, record detail",[72,73,74],"Formulas","Limited (basic)","Advanced — Python syntax, chained calculated columns",[76,77,78],"Auto-generated REST API","Yes — OpenAPI 3.0 per table","Yes — REST API and Webhooks",[80,81,82],"Minimum RAM","2 GB (recommended 2 vCPU \u002F 4 GB)","1 GB (recommended 1 vCPU \u002F 2 GB)",[84,85,86],"Primary use case","Direct Airtable replacement, public forms, lightweight CRM","Complex spreadsheets, calculated columns, data analysis",{"type":34,"title":88,"body":89},"Choosing between NocoDB and Grist","The choice comes down to the nature of your Airtable bases.\n\n**Choose NocoDB** if your Airtable bases are primarily linked data tables — contacts, tickets, inventories, pipelines — with kanban views and public forms. The native API import avoids manual conversion, and the interface is visually very close. NocoDB auto-generates an OpenAPI 3.0 REST API per table: if your scripts or Zapier, Make or n8n webhooks already consume the Airtable API, the transition amounts to changing the base URL and authentication token.\n\n**Choose Grist** if you make heavy use of Airtable's formula and calculated column features. Grist uses Python syntax for its formulas, giving more power for calculation or analysis bases. A calculated column can reference multiple other columns from the same or a linked table, without depth limits — where Airtable blocks circular references. Import is done from an Airtable CSV export, which requires an intermediate step, but it is a one-hour exercise on a standard-sized base.\n\nThe two tools are complementary: some teams deploy NocoDB for operational data — CRM, project management, client forms — and Grist for reporting dashboards that aggregate data from multiple sources. Both can be self-hosted on the same VPS if resources allow.",{"type":34,"title":91,"body":92},"VPS prerequisites before you start","Both tools install via Docker Compose. A Linux VPS with root access is sufficient — Ubuntu 22.04 LTS or Debian 12 are recommended.\n\n**For NocoDB**: 2 vCPU and 4 GB RAM for a team of ten to twenty people. 20 GB SSD storage for attachments. Docker 24+ and Docker Compose v2. NocoDB can run with embedded SQLite for individual use, but PostgreSQL is recommended in production: it handles concurrency better and simplifies automated backups via `pg_dump`.\n\n**For Grist**: 1 vCPU and 2 GB RAM for individual or small team use. Docker 24+. HTTPS configuration can go through an nginx or Caddy reverse proxy. Grist stores its documents in a persistent directory mounted as a Docker volume — a daily backup of this directory is sufficient to protect all data.\n\nIn both cases, plan for a domain name pointed at your VPS and a TLS certificate — Let's Encrypt integrates natively via Certbot. If you host both tools on the same VPS, a VPS with 4 vCPU and 8 GB RAM is a comfortable starting point for a team of fewer than fifteen people.",{"type":94,"title":95,"steps":96},"steps","Migrating to NocoDB — procedure",[97,100,103,106,109],{"title":98,"body":99},"Generate an Airtable Personal Access Token","In your Airtable account, go to **Account → Developer hub → Personal access tokens**. Create a token with the `data.records:read`, `schema.bases:read` and `webhook:manage` scopes. Copy it — it only displays once.\n\nAlso retrieve your **Shared Base ID**: open the relevant base, click **Share → Get shareable link**, then copy the `shr…` portion of the URL.",{"title":101,"body":102},"Deploy NocoDB with Docker Compose","Create a `docker-compose.yml` file:\n\n```yaml\nservices:\n  nocodb:\n    image: nocodb\u002Fnocodb:latest\n    ports:\n      - \"8080:8080\"\n    environment:\n      NC_DB: \"pg:\u002F\u002Fdb:5432?u=nocodb&p=password&d=nocodb\"\n    depends_on:\n      - db\n  db:\n    image: postgres:15\n    environment:\n      POSTGRES_USER: nocodb\n      POSTGRES_PASSWORD: password\n      POSTGRES_DB: nocodb\n    volumes:\n      - pg_data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\nvolumes:\n  pg_data:\n```\n\nStart with `docker compose up -d`. NocoDB is accessible on port 8080.",{"title":104,"body":105},"Configure the reverse proxy and TLS","If using nginx, create a vhost that proxies port 8080 to your domain, then obtain a certificate with Certbot: `certbot --nginx -d nocodb.yourdomain.com`. The `NC_PUBLIC_URL` environment variable must point to the final HTTPS URL for sharing links and webhooks to work correctly.",{"title":107,"body":108},"Import the Airtable base","In the NocoDB interface, create a new project then click **Import → Airtable**. Enter your **Personal Access Token** and your **Shared Base ID**. NocoDB imports tables, fields (with type mapping), views and records via the Airtable API. For large bases (> 10,000 records), the import may take several minutes — a progress log is displayed.",{"title":110,"body":111},"Verify field types and views","Some Airtable field types have no direct equivalent: **Formula** fields are imported as text, **Rollup** fields lose their aggregation. Check each critical table in NocoDB after the import and rebuild any formulas or links that didn't migrate. Public forms and webhooks need to be reconfigured manually.",{"type":94,"title":113,"steps":114},"Migrating to Grist — procedure",[115,118,121,124],{"title":116,"body":117},"Export your bases from Airtable","In Airtable, open each table and click **Download CSV** (three-dot menu at the top right of the grid view). Export one table at a time — Airtable does not provide a multi-table export in one operation. For complex bases with many linked tables, plan a dedicated session.",{"title":119,"body":120},"Deploy Grist with Docker","Grist deploys with an official Docker image:\n\n```yaml\nservices:\n  grist:\n    image: gristlabs\u002Fgrist:latest\n    ports:\n      - \"8484:8484\"\n    volumes:\n      - grist_data:\u002Fpersist\n    environment:\n      APP_HOME_URL: \"https:\u002F\u002Fgrist.yourdomain.com\"\n      GRIST_SINGLE_ORG: \"my-organization\"\nvolumes:\n  grist_data:\n```\n\nStart with `docker compose up -d`. Add your nginx reverse proxy and Certbot for TLS.",{"title":122,"body":123},"Import CSVs into Grist","On the Grist home screen, click **Add New → Import document** to create a document from a CSV, or **Add New → Import from file** from an existing document to add tables. Grist also supports Excel, JSON and TSV files. The import dialog lets you choose the destination (new table or existing table) before applying the import.",{"title":125,"body":126},"Rebuild relationships and formulas","Grist models relationships between tables via **Reference** columns — to be created manually to reproduce Airtable's linked fields. Formulas use Python syntax: an Airtable formula `IF({Status}=\"Active\", \"Yes\", \"No\")` becomes `\"Yes\" if $Status == \"Active\" else \"No\"` in Grist. The official documentation at `support.getgrist.com\u002Fimports` covers common migration cases.",{"type":128,"title":129,"body":130},"tip","Keep Airtable access during migration","Do not cancel your Airtable subscription before validating that all your automations and integrations work on NocoDB or Grist. Plan for a double-running period of at least two weeks. Export a complete copy of each base as CSV before starting, regardless of the migration method chosen — this is your safety net if partial import fails on a field type.",{"type":34,"title":132,"body":133},"Deploy from ServOrbit in one click","ServOrbit offers pre-configured VPS templates for NocoDB and Grist. The template installs Docker, the ready-to-use `docker-compose.yml`, nginx reverse proxy and the Certbot chain — you enter your domain and database password, and the VPS is ready in minutes.\n\nVPS plans start at `{{vps.start.price}}` with root access, dedicated IPv4 and SSD storage in our European datacenters. The **VPS Administration** option is available if you prefer to delegate system maintenance.","Deploy NocoDB or Grist on your VPS","Root access, dedicated IPv4, SSD storage. NocoDB and Grist templates available. Your data stays on your infrastructure.","Configure my VPS","\u002Fvps-cloud",[139,162,181],{"id":140,"slug":141,"slugs":142,"title":146,"excerpt":147,"readTime":148,"views":18,"isPinned":19,"publishedAt":149,"category":150,"categories":156,"featuredImage":28,"bgImage":29,"posterImage":158,"relatedSolution":159},157,"how-to-self-host-nocodb-on-a-vps",{"fr":143,"en":141,"ar":144,"es":145},"self-host-nocodb-vps","كيفية-استضافة-nocodb-ذاتيا-على-خادم-vps","como-autoalojar-nocodb-en-un-vps","How to Self-Host NocoDB on a VPS","Deploy NocoDB on your VPS for a self-hosted, open-source Airtable alternative. Turn any database into a smart spreadsheet with REST and GraphQL APIs, via Docker Compose.",3,"2026-01-20T00:00:00+00:00",{"id":151,"name":152,"slug":153,"color":154,"icon":155},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[157],{"id":151,"name":152,"slug":153,"color":154,"icon":155},"\u002Fblog\u002Fcovers\u002Fself-host-nocodb-vps-poster.svg",{"categorySlug":160,"appSlug":161},"databases","nocodb",{"id":163,"slug":164,"slugs":165,"title":169,"excerpt":170,"readTime":171,"views":172,"isPinned":19,"publishedAt":173,"category":174,"categories":175,"featuredImage":28,"bgImage":29,"posterImage":177,"relatedSolution":178},218,"self-hosting-grist-on-a-vps-open-source-airtable-alternative",{"fr":166,"en":164,"ar":167,"es":168},"self-host-grist-vps","استضافة-grist-على-vps-بديل-airtable-مفتوح-المصدر","alojar-grist-en-un-vps-alternativa-a-airtable","Self-Hosting Grist on a VPS: Open-Source Airtable Alternative","Deploy Grist on a ServOrbit VPS: an open-source Airtable with Python formulas, an automatic REST API and real-time collaboration, all in one Docker container.",4,1,"2026-08-04T00:00:00+00:00",{"id":151,"name":152,"slug":153,"color":154,"icon":155},[176],{"id":151,"name":152,"slug":153,"color":154,"icon":155},"\u002Fblog\u002Fcovers\u002Fself-host-grist-vps-poster.svg",{"categorySlug":179,"appSlug":180},"development","grist",{"id":182,"slug":183,"slugs":184,"title":188,"excerpt":189,"readTime":190,"views":172,"isPinned":19,"publishedAt":191,"category":192,"categories":193,"featuredImage":28,"bgImage":29,"posterImage":195,"relatedSolution":28},333,"saas-migration-checklist-5-steps-to-decide",{"fr":185,"en":183,"ar":186,"es":187},"checklist-migration-saas-vers-self-hosting","قائمة-التحقق-للهجرة-من-saas-5-خطوات-للقرار","checklist-migracion-saas-5-pasos-para-decidir","SaaS migration checklist: 5 steps to decide","Before migrating a SaaS, ask the right questions. A 5-step checklist to decide which tools are worth migrating — and in what order.",11,"2026-09-05T00:00:00+00:00",{"id":151,"name":152,"slug":153,"color":154,"icon":155},[194],{"id":151,"name":152,"slug":153,"color":154,"icon":155},"\u002Fblog\u002Fcovers\u002Fchecklist-migration-saas-vers-self-hosting-poster.svg",1789046170776]