{
  "slug": "chatwoot-cloud-to-self-hosted",
  "title": "Chatwoot Cloud to self-hosted Chatwoot",
  "summary": "Same software either way, so this is the cleanest comparison on the site: purely the price of someone else running it.",
  "publishable": true,
  "block_reason": null,
  "freshness": {
    "state": "fresh",
    "publishable": true,
    "oldest_input_days": 46.5,
    "problems": []
  },
  "incumbent": {
    "vendor": "Chatwoot Cloud",
    "vendor_id": "chatwoot-cloud",
    "plan": "Startups",
    "plan_id": "startups",
    "amount": 19,
    "period": "month",
    "per_seat": true,
    "billed": "annual",
    "seats": 5,
    "quote": "Startups $19 /agent/month billed annually",
    "caveat": null,
    "source_url": "https://www.chatwoot.com/pricing",
    "verified_at": "2026-10-19",
    "needs_reverification": false
  },
  "alternative": {
    "name": "Chatwoot (self-hosted)",
    "repo": "chatwoot/chatwoot",
    "project": {
      "full_name": "chatwoot/chatwoot",
      "url": "https://github.com/chatwoot/chatwoot",
      "homepage": "https://www.chatwoot.com/help-center",
      "description": "Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬",
      "stars": 37947,
      "forks": 9254,
      "open_issues": 1604,
      "license": null,
      "archived": false,
      "pushed_at": "2026-10-19T10:48:10Z",
      "days_since_push": 0,
      "latest_release": {
        "tag": "v4.18.0",
        "published_at": "2026-09-18T00:02:33Z",
        "url": "https://github.com/chatwoot/chatwoot/releases/tag/v4.18.0"
      },
      "days_since_release": 31,
      "health": "active",
      "recommended": true,
      "verified_at": "2026-10-19T10:53:49.256Z"
    },
    "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": 50,
      "monthly_usd": 0.35
    },
    "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": 1
  },
  "result": {
    "computable": true,
    "inputs": {
      "seats": 5,
      "horizon_months": 36,
      "hourly_rate": 50
    },
    "incumbent": {
      "cash_monthly": 95,
      "time_monthly": 0,
      "monthly": 95,
      "one_time": 0,
      "annual": 1140
    },
    "alternative": {
      "cash_monthly": 20.35,
      "time_monthly": 50,
      "monthly": 70.35,
      "one_time": 400,
      "cash_one_time": 0,
      "time_one_time": 400,
      "annual": 844.17
    },
    "delta": {
      "monthly": 24.65,
      "upfront_to_switch": 400,
      "annual": 295.83
    },
    "break_even_month": 17,
    "break_even_hourly_rate": 61.08,
    "totals": {
      "at_12_months": {
        "incumbent": 1140,
        "alternative": 1244.17
      },
      "at_36_months": {
        "incumbent": 3420,
        "alternative": 2932.51
      },
      "at_horizon": {
        "incumbent": 3420,
        "alternative": 2932.51
      }
    },
    "savings": {
      "year_1": -104.17,
      "year_3": 487.49,
      "at_horizon": 487.49
    },
    "verdict": "switch"
  },
  "managed": null,
  "curve": [
    {
      "month": 0,
      "incumbent": 0,
      "alternative": 400
    },
    {
      "month": 1,
      "incumbent": 95,
      "alternative": 470.35
    },
    {
      "month": 2,
      "incumbent": 190,
      "alternative": 540.7
    },
    {
      "month": 3,
      "incumbent": 285,
      "alternative": 611.05
    },
    {
      "month": 4,
      "incumbent": 380,
      "alternative": 681.4
    },
    {
      "month": 5,
      "incumbent": 475,
      "alternative": 751.75
    },
    {
      "month": 6,
      "incumbent": 570,
      "alternative": 822.1
    },
    {
      "month": 7,
      "incumbent": 665,
      "alternative": 892.45
    },
    {
      "month": 8,
      "incumbent": 760,
      "alternative": 962.8
    },
    {
      "month": 9,
      "incumbent": 855,
      "alternative": 1033.15
    },
    {
      "month": 10,
      "incumbent": 950,
      "alternative": 1103.5
    },
    {
      "month": 11,
      "incumbent": 1045,
      "alternative": 1173.85
    },
    {
      "month": 12,
      "incumbent": 1140,
      "alternative": 1244.2
    },
    {
      "month": 13,
      "incumbent": 1235,
      "alternative": 1314.55
    },
    {
      "month": 14,
      "incumbent": 1330,
      "alternative": 1384.9
    },
    {
      "month": 15,
      "incumbent": 1425,
      "alternative": 1455.25
    },
    {
      "month": 16,
      "incumbent": 1520,
      "alternative": 1525.6
    },
    {
      "month": 17,
      "incumbent": 1615,
      "alternative": 1595.95
    },
    {
      "month": 18,
      "incumbent": 1710,
      "alternative": 1666.3
    },
    {
      "month": 19,
      "incumbent": 1805,
      "alternative": 1736.65
    },
    {
      "month": 20,
      "incumbent": 1900,
      "alternative": 1807
    },
    {
      "month": 21,
      "incumbent": 1995,
      "alternative": 1877.35
    },
    {
      "month": 22,
      "incumbent": 2090,
      "alternative": 1947.7
    },
    {
      "month": 23,
      "incumbent": 2185,
      "alternative": 2018.05
    },
    {
      "month": 24,
      "incumbent": 2280,
      "alternative": 2088.4
    },
    {
      "month": 25,
      "incumbent": 2375,
      "alternative": 2158.75
    },
    {
      "month": 26,
      "incumbent": 2470,
      "alternative": 2229.1
    },
    {
      "month": 27,
      "incumbent": 2565,
      "alternative": 2299.45
    },
    {
      "month": 28,
      "incumbent": 2660,
      "alternative": 2369.8
    },
    {
      "month": 29,
      "incumbent": 2755,
      "alternative": 2440.15
    },
    {
      "month": 30,
      "incumbent": 2850,
      "alternative": 2510.5
    },
    {
      "month": 31,
      "incumbent": 2945,
      "alternative": 2580.85
    },
    {
      "month": 32,
      "incumbent": 3040,
      "alternative": 2651.2
    },
    {
      "month": 33,
      "incumbent": 3135,
      "alternative": 2721.55
    },
    {
      "month": 34,
      "incumbent": 3230,
      "alternative": 2791.9
    },
    {
      "month": 35,
      "incumbent": 3325,
      "alternative": 2862.25
    },
    {
      "month": 36,
      "incumbent": 3420,
      "alternative": 2932.6
    }
  ],
  "sensitivity": [
    {
      "hourly_rate": 0,
      "verdict": "switch",
      "break_even_month": 0,
      "savings_at_horizon": 2687.49
    },
    {
      "hourly_rate": 25,
      "verdict": "switch",
      "break_even_month": 5,
      "savings_at_horizon": 1587.49
    },
    {
      "hourly_rate": 50,
      "verdict": "switch",
      "break_even_month": 17,
      "savings_at_horizon": 487.49
    },
    {
      "hourly_rate": 75,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -612.51
    },
    {
      "hourly_rate": 100,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -1712.51
    },
    {
      "hourly_rate": 150,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -3912.51
    },
    {
      "hourly_rate": 200,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -6112.51
    }
  ],
  "tradeoffs": {
    "you_lose": [
      "Managed upgrades on a Rails app with Postgres, Redis and Sidekiq behind it",
      "Deliverability handled for you — running your own inbound and outbound mail is its own project",
      "Support from the people who wrote it"
    ],
    "you_gain": [
      "Identical software with no per-agent charge",
      "Customer conversations on infrastructure you control, which is often the actual requirement",
      "No ceiling on agents, inboxes or conversation volume"
    ]
  },
  "caveats": [
    "Chatwoot self-hosted is the same product, so there is no feature trade-off to weigh — only operational cost. That makes the hourly rate below unusually decisive.",
    "Email deliverability is the hidden cost. If your support inbox runs on email, budget for a transactional mail provider on top of the figures here.",
    "The stack wants 4 GB. It will boot in 2 GB and then fall over during a busy hour."
  ],
  "category": "support-inbox",
  "updated_at": "2026-10-19"
}