{
  "slug": "plausible-cloud-to-self-hosted",
  "title": "Plausible Cloud to self-hosted Plausible CE",
  "summary": "The rare case where the vendor publishes the self-hosting instructions themselves — and the rarer case where the numbers usually say do not bother.",
  "publishable": true,
  "block_reason": null,
  "freshness": {
    "state": "fresh",
    "publishable": true,
    "oldest_input_days": 46.5,
    "problems": []
  },
  "incumbent": {
    "vendor": "Plausible Analytics (Cloud)",
    "vendor_id": "plausible",
    "plan": "Business",
    "plan_id": "business",
    "amount": 19,
    "period": "month",
    "per_seat": false,
    "billed": "annual",
    "seats": 1,
    "quote": "Business /year /month $19 /month ... Up to 10 sites",
    "caveat": null,
    "source_url": "https://plausible.io/#pricing",
    "verified_at": "2026-10-19",
    "needs_reverification": false
  },
  "alternative": {
    "name": "Plausible Community Edition (self-hosted)",
    "repo": "plausible/analytics",
    "project": {
      "full_name": "plausible/analytics",
      "url": "https://github.com/plausible/analytics",
      "homepage": "https://plausible.io",
      "description": "Open source, privacy-first web analytics. Lightweight, cookie-free Google Analytics alternative. Self-hosted or cloud.",
      "stars": 29547,
      "forks": 1913,
      "open_issues": 58,
      "license": "AGPL-3.0",
      "archived": false,
      "pushed_at": "2026-10-19T10:46:51Z",
      "days_since_push": 0,
      "latest_release": {
        "tag": "v3.2.1",
        "published_at": "2026-05-15T09:15:56Z",
        "url": "https://github.com/plausible/analytics/releases/tag/v3.2.1"
      },
      "days_since_release": 157,
      "health": "active",
      "recommended": true,
      "verified_at": "2026-10-19T10:53:55.169Z"
    },
    "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": 30,
      "monthly_usd": 0.21
    },
    "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": 4,
    "maintenance_hours_per_month": 0.75
  },
  "result": {
    "computable": true,
    "inputs": {
      "seats": 1,
      "horizon_months": 36,
      "hourly_rate": 50
    },
    "incumbent": {
      "cash_monthly": 19,
      "time_monthly": 0,
      "monthly": 19,
      "one_time": 0,
      "annual": 228
    },
    "alternative": {
      "cash_monthly": 20.21,
      "time_monthly": 37.5,
      "monthly": 57.71,
      "one_time": 200,
      "cash_one_time": 0,
      "time_one_time": 200,
      "annual": 692.5
    },
    "delta": {
      "monthly": -38.71,
      "upfront_to_switch": 200,
      "annual": -464.5
    },
    "break_even_month": null,
    "break_even_hourly_rate": -1.4,
    "totals": {
      "at_12_months": {
        "incumbent": 228,
        "alternative": 892.5
      },
      "at_36_months": {
        "incumbent": 684,
        "alternative": 2277.51
      },
      "at_horizon": {
        "incumbent": 684,
        "alternative": 2277.51
      }
    },
    "savings": {
      "year_1": -664.5,
      "year_3": -1593.51,
      "at_horizon": -1593.51
    },
    "verdict": "stay"
  },
  "managed": null,
  "curve": [
    {
      "month": 0,
      "incumbent": 0,
      "alternative": 200
    },
    {
      "month": 1,
      "incumbent": 19,
      "alternative": 257.71
    },
    {
      "month": 2,
      "incumbent": 38,
      "alternative": 315.42
    },
    {
      "month": 3,
      "incumbent": 57,
      "alternative": 373.13
    },
    {
      "month": 4,
      "incumbent": 76,
      "alternative": 430.84
    },
    {
      "month": 5,
      "incumbent": 95,
      "alternative": 488.55
    },
    {
      "month": 6,
      "incumbent": 114,
      "alternative": 546.26
    },
    {
      "month": 7,
      "incumbent": 133,
      "alternative": 603.97
    },
    {
      "month": 8,
      "incumbent": 152,
      "alternative": 661.68
    },
    {
      "month": 9,
      "incumbent": 171,
      "alternative": 719.39
    },
    {
      "month": 10,
      "incumbent": 190,
      "alternative": 777.1
    },
    {
      "month": 11,
      "incumbent": 209,
      "alternative": 834.81
    },
    {
      "month": 12,
      "incumbent": 228,
      "alternative": 892.52
    },
    {
      "month": 13,
      "incumbent": 247,
      "alternative": 950.23
    },
    {
      "month": 14,
      "incumbent": 266,
      "alternative": 1007.94
    },
    {
      "month": 15,
      "incumbent": 285,
      "alternative": 1065.65
    },
    {
      "month": 16,
      "incumbent": 304,
      "alternative": 1123.36
    },
    {
      "month": 17,
      "incumbent": 323,
      "alternative": 1181.07
    },
    {
      "month": 18,
      "incumbent": 342,
      "alternative": 1238.78
    },
    {
      "month": 19,
      "incumbent": 361,
      "alternative": 1296.49
    },
    {
      "month": 20,
      "incumbent": 380,
      "alternative": 1354.2
    },
    {
      "month": 21,
      "incumbent": 399,
      "alternative": 1411.91
    },
    {
      "month": 22,
      "incumbent": 418,
      "alternative": 1469.62
    },
    {
      "month": 23,
      "incumbent": 437,
      "alternative": 1527.33
    },
    {
      "month": 24,
      "incumbent": 456,
      "alternative": 1585.04
    },
    {
      "month": 25,
      "incumbent": 475,
      "alternative": 1642.75
    },
    {
      "month": 26,
      "incumbent": 494,
      "alternative": 1700.46
    },
    {
      "month": 27,
      "incumbent": 513,
      "alternative": 1758.17
    },
    {
      "month": 28,
      "incumbent": 532,
      "alternative": 1815.88
    },
    {
      "month": 29,
      "incumbent": 551,
      "alternative": 1873.59
    },
    {
      "month": 30,
      "incumbent": 570,
      "alternative": 1931.3
    },
    {
      "month": 31,
      "incumbent": 589,
      "alternative": 1989.01
    },
    {
      "month": 32,
      "incumbent": 608,
      "alternative": 2046.72
    },
    {
      "month": 33,
      "incumbent": 627,
      "alternative": 2104.43
    },
    {
      "month": 34,
      "incumbent": 646,
      "alternative": 2162.14
    },
    {
      "month": 35,
      "incumbent": 665,
      "alternative": 2219.85
    },
    {
      "month": 36,
      "incumbent": 684,
      "alternative": 2277.56
    }
  ],
  "sensitivity": [
    {
      "hourly_rate": 0,
      "verdict": "stay",
      "break_even_month": 0,
      "savings_at_horizon": -43.51
    },
    {
      "hourly_rate": 25,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -818.51
    },
    {
      "hourly_rate": 50,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -1593.51
    },
    {
      "hourly_rate": 75,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -2368.51
    },
    {
      "hourly_rate": 100,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -3143.51
    },
    {
      "hourly_rate": 150,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -4693.51
    },
    {
      "hourly_rate": 200,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -6243.51
    }
  ],
  "tradeoffs": {
    "you_lose": [
      "Funnels, ecommerce revenue tracking and several other features that are cloud-only",
      "Managed ClickHouse, which is the part of this stack most likely to bite you",
      "Supporting a small independent company that publishes its own self-hosting guide"
    ],
    "you_gain": [
      "Analytics data on your own infrastructure, which is the actual point for most people who ask",
      "No pageview ceiling",
      "AGPL-3.0"
    ]
  },
  "caveats": [
    "We expect this page to tell most readers to stay. Plausible Cloud is cheap, the CE build drops features, and ClickHouse is not a database you want to learn during an outage.",
    "Plausible CE is deliberately a subset of the cloud product. Check the feature matrix before you migrate, not after.",
    "This escape is here precisely because it usually loses. A site that only publishes wins is a marketing site."
  ],
  "category": "analytics",
  "updated_at": "2026-10-19"
}