{
  "slug": "airtable-to-teable",
  "title": "Airtable Team to self-hosted Teable",
  "summary": "Teable is the closest thing to Airtable anyone has built. It is also the youngest, and that cuts both ways.",
  "publishable": true,
  "block_reason": null,
  "freshness": {
    "state": "fresh",
    "publishable": true,
    "oldest_input_days": 46.5,
    "problems": []
  },
  "incumbent": {
    "vendor": "Airtable",
    "vendor_id": "airtable",
    "plan": "Team",
    "plan_id": "team",
    "amount": 20,
    "period": "month",
    "per_seat": true,
    "billed": "annual",
    "seats": 6,
    "quote": "our Team plan is available for $20/user/month when billed annually",
    "caveat": null,
    "source_url": "https://airtable.com/pricing",
    "verified_at": "2026-10-19",
    "needs_reverification": false
  },
  "alternative": {
    "name": "Teable (self-hosted)",
    "repo": "teableio/teable",
    "project": {
      "full_name": "teableio/teable",
      "url": "https://github.com/teableio/teable",
      "homepage": "https://teable.ai",
      "description": "✨ AI Spreadsheet for Business",
      "stars": 21903,
      "forks": 1357,
      "open_issues": 146,
      "license": null,
      "archived": false,
      "pushed_at": "2026-10-19T09:57:40Z",
      "days_since_push": 0,
      "latest_release": {
        "tag": "release.2026-10-16T07-06-34Z.3445",
        "published_at": "2026-10-16T07:57:29Z",
        "url": "https://github.com/teableio/teable/releases/tag/release.2026-10-16T07-06-34Z.3445"
      },
      "days_since_release": 3,
      "health": "active",
      "recommended": true,
      "verified_at": "2026-10-19T10:53:45.315Z"
    },
    "box": {
      "provider": "Vultr",
      "name": "vc2-2c-4gb",
      "id": "vultr:vc2-2c-4gb",
      "vcpu": 2,
      "ram_gb": 4,
      "disk_gb": 80,
      "bandwidth_tb": 3,
      "monthly_usd": 20,
      "url": "https://www.vultr.com/pricing/",
      "verified_at": "2026-10-19T10:53:42.716Z"
    },
    "storage": {
      "id": "backblaze-b2",
      "name": "Backblaze B2",
      "usd_per_gb_month": 0.00695,
      "egress": "free up to 3x stored volume per month, then $0.01/GB",
      "pricing_url": "https://www.backblaze.com/cloud-storage/pricing",
      "quote": "the amount of data stored per byte-hour over the last month at a rate of $6.95/TB/30-day",
      "verified_at": "2026-09-03",
      "verified_by": "human",
      "affiliate": true,
      "gb": 40,
      "monthly_usd": 0.28
    },
    "requirements": {
      "ram_gb": 4,
      "vcpu": 2,
      "disk_gb": 40
    },
    "box_alternatives": [
      {
        "provider": "Vultr",
        "name": "vc2-2c-4gb",
        "monthly_usd": 20,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.vultr.com/pricing/",
        "chosen": true
      },
      {
        "provider": "Linode",
        "name": "Linode 4GB",
        "monthly_usd": 24,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.linode.com/pricing/",
        "chosen": false
      },
      {
        "provider": "DigitalOcean",
        "name": "2 vCPU · 4 GB",
        "monthly_usd": 24,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.digitalocean.com/pricing/droplets",
        "chosen": false
      }
    ],
    "migration_hours": 8,
    "maintenance_hours_per_month": 0.75
  },
  "result": {
    "computable": true,
    "inputs": {
      "seats": 6,
      "horizon_months": 36,
      "hourly_rate": 50
    },
    "incumbent": {
      "cash_monthly": 120,
      "time_monthly": 0,
      "monthly": 120,
      "one_time": 0,
      "annual": 1440
    },
    "alternative": {
      "cash_monthly": 20.28,
      "time_monthly": 37.5,
      "monthly": 57.78,
      "one_time": 400,
      "cash_one_time": 0,
      "time_one_time": 400,
      "annual": 693.34
    },
    "delta": {
      "monthly": 62.22,
      "upfront_to_switch": 400,
      "annual": 746.66
    },
    "break_even_month": 7,
    "break_even_hourly_rate": 102.57,
    "totals": {
      "at_12_months": {
        "incumbent": 1440,
        "alternative": 1093.34
      },
      "at_36_months": {
        "incumbent": 4320,
        "alternative": 2480.01
      },
      "at_horizon": {
        "incumbent": 4320,
        "alternative": 2480.01
      }
    },
    "savings": {
      "year_1": 346.66,
      "year_3": 1839.99,
      "at_horizon": 1839.99
    },
    "verdict": "switch"
  },
  "managed": null,
  "curve": [
    {
      "month": 0,
      "incumbent": 0,
      "alternative": 400
    },
    {
      "month": 1,
      "incumbent": 120,
      "alternative": 457.78
    },
    {
      "month": 2,
      "incumbent": 240,
      "alternative": 515.56
    },
    {
      "month": 3,
      "incumbent": 360,
      "alternative": 573.34
    },
    {
      "month": 4,
      "incumbent": 480,
      "alternative": 631.12
    },
    {
      "month": 5,
      "incumbent": 600,
      "alternative": 688.9
    },
    {
      "month": 6,
      "incumbent": 720,
      "alternative": 746.68
    },
    {
      "month": 7,
      "incumbent": 840,
      "alternative": 804.46
    },
    {
      "month": 8,
      "incumbent": 960,
      "alternative": 862.24
    },
    {
      "month": 9,
      "incumbent": 1080,
      "alternative": 920.02
    },
    {
      "month": 10,
      "incumbent": 1200,
      "alternative": 977.8
    },
    {
      "month": 11,
      "incumbent": 1320,
      "alternative": 1035.58
    },
    {
      "month": 12,
      "incumbent": 1440,
      "alternative": 1093.36
    },
    {
      "month": 13,
      "incumbent": 1560,
      "alternative": 1151.14
    },
    {
      "month": 14,
      "incumbent": 1680,
      "alternative": 1208.92
    },
    {
      "month": 15,
      "incumbent": 1800,
      "alternative": 1266.7
    },
    {
      "month": 16,
      "incumbent": 1920,
      "alternative": 1324.48
    },
    {
      "month": 17,
      "incumbent": 2040,
      "alternative": 1382.26
    },
    {
      "month": 18,
      "incumbent": 2160,
      "alternative": 1440.04
    },
    {
      "month": 19,
      "incumbent": 2280,
      "alternative": 1497.82
    },
    {
      "month": 20,
      "incumbent": 2400,
      "alternative": 1555.6
    },
    {
      "month": 21,
      "incumbent": 2520,
      "alternative": 1613.38
    },
    {
      "month": 22,
      "incumbent": 2640,
      "alternative": 1671.16
    },
    {
      "month": 23,
      "incumbent": 2760,
      "alternative": 1728.94
    },
    {
      "month": 24,
      "incumbent": 2880,
      "alternative": 1786.72
    },
    {
      "month": 25,
      "incumbent": 3000,
      "alternative": 1844.5
    },
    {
      "month": 26,
      "incumbent": 3120,
      "alternative": 1902.28
    },
    {
      "month": 27,
      "incumbent": 3240,
      "alternative": 1960.06
    },
    {
      "month": 28,
      "incumbent": 3360,
      "alternative": 2017.84
    },
    {
      "month": 29,
      "incumbent": 3480,
      "alternative": 2075.62
    },
    {
      "month": 30,
      "incumbent": 3600,
      "alternative": 2133.4
    },
    {
      "month": 31,
      "incumbent": 3720,
      "alternative": 2191.18
    },
    {
      "month": 32,
      "incumbent": 3840,
      "alternative": 2248.96
    },
    {
      "month": 33,
      "incumbent": 3960,
      "alternative": 2306.74
    },
    {
      "month": 34,
      "incumbent": 4080,
      "alternative": 2364.52
    },
    {
      "month": 35,
      "incumbent": 4200,
      "alternative": 2422.3
    },
    {
      "month": 36,
      "incumbent": 4320,
      "alternative": 2480.08
    }
  ],
  "sensitivity": [
    {
      "hourly_rate": 0,
      "verdict": "switch",
      "break_even_month": 0,
      "savings_at_horizon": 3589.99
    },
    {
      "hourly_rate": 25,
      "verdict": "switch",
      "break_even_month": 3,
      "savings_at_horizon": 2714.99
    },
    {
      "hourly_rate": 50,
      "verdict": "switch",
      "break_even_month": 7,
      "savings_at_horizon": 1839.99
    },
    {
      "hourly_rate": 75,
      "verdict": "switch",
      "break_even_month": 14,
      "savings_at_horizon": 964.99
    },
    {
      "hourly_rate": 100,
      "verdict": "marginal",
      "break_even_month": 33,
      "savings_at_horizon": 89.99
    },
    {
      "hourly_rate": 150,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -1660.01
    },
    {
      "hourly_rate": 200,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -3410.01
    }
  ],
  "tradeoffs": {
    "you_lose": [
      "Airtable's automations, scripting block and extension marketplace",
      "A decade of stability; Teable is moving fast and breaking things is part of that",
      "Interface Designer"
    ],
    "you_gain": [
      "A grid that genuinely feels like Airtable rather than a spreadsheet pretending",
      "Real Postgres underneath, with the tables queryable directly",
      "Free seats at a tier where Airtable charges $20 each"
    ]
  },
  "caveats": [
    "Teable is the youngest project on this site. Pin a version, read the release notes, and do not upgrade on a Friday.",
    "Its licence is not one GitHub recognises automatically. Check the repository before building anything commercial on it.",
    "If you want the mature option in this category, read the NocoDB and Baserow comparisons instead — both are older and calmer."
  ],
  "category": "database-spreadsheet",
  "updated_at": "2026-10-19"
}