{
  "slug": "1password-to-passbolt",
  "title": "1Password Business to self-hosted Passbolt",
  "summary": "Passbolt is built for teams rather than families, with real access control. It is also considerably more work than Vaultwarden.",
  "publishable": true,
  "block_reason": null,
  "freshness": {
    "state": "fresh",
    "publishable": true,
    "oldest_input_days": 46.5,
    "problems": []
  },
  "incumbent": {
    "vendor": "1Password",
    "vendor_id": "1password",
    "plan": "Business",
    "plan_id": "business",
    "amount": 8.99,
    "period": "month",
    "per_seat": true,
    "billed": "annual",
    "seats": 12,
    "quote": "1Password Business costs $8.99 per user per month when billed annually, or $107.88 per user per year",
    "caveat": null,
    "source_url": "https://1password.com/business-pricing",
    "verified_at": "2026-10-19",
    "needs_reverification": false
  },
  "alternative": {
    "name": "Passbolt (self-hosted)",
    "repo": "passbolt/passbolt_api",
    "project": {
      "full_name": "passbolt/passbolt_api",
      "url": "https://github.com/passbolt/passbolt_api",
      "homepage": "https://passbolt.com",
      "description": "Passbolt Community Edition (CE) API. The JSON API for the open source password manager for teams!",
      "stars": 6177,
      "forks": 406,
      "open_issues": 26,
      "license": "AGPL-3.0",
      "archived": false,
      "pushed_at": "2026-10-19T10:22:56Z",
      "days_since_push": 0,
      "latest_release": {
        "tag": "v5.16.0",
        "published_at": "2026-09-17T10:01:50Z",
        "url": "https://github.com/passbolt/passbolt_api/releases/tag/v5.16.0"
      },
      "days_since_release": 32,
      "health": "active",
      "recommended": true,
      "verified_at": "2026-10-19T10:53:43.438Z"
    },
    "box": {
      "provider": "Vultr",
      "name": "vc2-1c-2gb",
      "id": "vultr:vc2-1c-2gb",
      "vcpu": 1,
      "ram_gb": 2,
      "disk_gb": 55,
      "bandwidth_tb": 2,
      "monthly_usd": 10,
      "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": 15,
      "monthly_usd": 0.1
    },
    "requirements": {
      "ram_gb": 2,
      "vcpu": 1,
      "disk_gb": 25
    },
    "box_alternatives": [
      {
        "provider": "Vultr",
        "name": "vc2-1c-2gb",
        "monthly_usd": 10,
        "vcpu": 1,
        "ram_gb": 2,
        "disk_gb": 55,
        "url": "https://www.vultr.com/pricing/",
        "chosen": true
      },
      {
        "provider": "Linode",
        "name": "Linode 2GB",
        "monthly_usd": 12,
        "vcpu": 1,
        "ram_gb": 2,
        "disk_gb": 50,
        "url": "https://www.linode.com/pricing/",
        "chosen": false
      },
      {
        "provider": "DigitalOcean",
        "name": "1 vCPU · 2 GB",
        "monthly_usd": 12,
        "vcpu": 1,
        "ram_gb": 2,
        "disk_gb": 50,
        "url": "https://www.digitalocean.com/pricing/droplets",
        "chosen": false
      }
    ],
    "migration_hours": 10,
    "maintenance_hours_per_month": 1
  },
  "result": {
    "computable": true,
    "inputs": {
      "seats": 12,
      "horizon_months": 36,
      "hourly_rate": 50
    },
    "incumbent": {
      "cash_monthly": 107.88,
      "time_monthly": 0,
      "monthly": 107.88,
      "one_time": 0,
      "annual": 1294.56
    },
    "alternative": {
      "cash_monthly": 10.1,
      "time_monthly": 50,
      "monthly": 60.1,
      "one_time": 500,
      "cash_one_time": 0,
      "time_one_time": 500,
      "annual": 721.25
    },
    "delta": {
      "monthly": 47.78,
      "upfront_to_switch": 500,
      "annual": 573.31
    },
    "break_even_month": 11,
    "break_even_hourly_rate": 76.52,
    "totals": {
      "at_12_months": {
        "incumbent": 1294.56,
        "alternative": 1221.25
      },
      "at_36_months": {
        "incumbent": 3883.68,
        "alternative": 2663.75
      },
      "at_horizon": {
        "incumbent": 3883.68,
        "alternative": 2663.75
      }
    },
    "savings": {
      "year_1": 73.31,
      "year_3": 1219.93,
      "at_horizon": 1219.93
    },
    "verdict": "switch"
  },
  "managed": null,
  "curve": [
    {
      "month": 0,
      "incumbent": 0,
      "alternative": 500
    },
    {
      "month": 1,
      "incumbent": 107.88,
      "alternative": 560.1
    },
    {
      "month": 2,
      "incumbent": 215.76,
      "alternative": 620.2
    },
    {
      "month": 3,
      "incumbent": 323.64,
      "alternative": 680.3
    },
    {
      "month": 4,
      "incumbent": 431.52,
      "alternative": 740.4
    },
    {
      "month": 5,
      "incumbent": 539.4,
      "alternative": 800.5
    },
    {
      "month": 6,
      "incumbent": 647.28,
      "alternative": 860.6
    },
    {
      "month": 7,
      "incumbent": 755.16,
      "alternative": 920.7
    },
    {
      "month": 8,
      "incumbent": 863.04,
      "alternative": 980.8
    },
    {
      "month": 9,
      "incumbent": 970.92,
      "alternative": 1040.9
    },
    {
      "month": 10,
      "incumbent": 1078.8,
      "alternative": 1101
    },
    {
      "month": 11,
      "incumbent": 1186.68,
      "alternative": 1161.1
    },
    {
      "month": 12,
      "incumbent": 1294.56,
      "alternative": 1221.2
    },
    {
      "month": 13,
      "incumbent": 1402.44,
      "alternative": 1281.3
    },
    {
      "month": 14,
      "incumbent": 1510.32,
      "alternative": 1341.4
    },
    {
      "month": 15,
      "incumbent": 1618.2,
      "alternative": 1401.5
    },
    {
      "month": 16,
      "incumbent": 1726.08,
      "alternative": 1461.6
    },
    {
      "month": 17,
      "incumbent": 1833.96,
      "alternative": 1521.7
    },
    {
      "month": 18,
      "incumbent": 1941.84,
      "alternative": 1581.8
    },
    {
      "month": 19,
      "incumbent": 2049.72,
      "alternative": 1641.9
    },
    {
      "month": 20,
      "incumbent": 2157.6,
      "alternative": 1702
    },
    {
      "month": 21,
      "incumbent": 2265.48,
      "alternative": 1762.1
    },
    {
      "month": 22,
      "incumbent": 2373.36,
      "alternative": 1822.2
    },
    {
      "month": 23,
      "incumbent": 2481.24,
      "alternative": 1882.3
    },
    {
      "month": 24,
      "incumbent": 2589.12,
      "alternative": 1942.4
    },
    {
      "month": 25,
      "incumbent": 2697,
      "alternative": 2002.5
    },
    {
      "month": 26,
      "incumbent": 2804.88,
      "alternative": 2062.6
    },
    {
      "month": 27,
      "incumbent": 2912.76,
      "alternative": 2122.7
    },
    {
      "month": 28,
      "incumbent": 3020.64,
      "alternative": 2182.8
    },
    {
      "month": 29,
      "incumbent": 3128.52,
      "alternative": 2242.9
    },
    {
      "month": 30,
      "incumbent": 3236.4,
      "alternative": 2303
    },
    {
      "month": 31,
      "incumbent": 3344.28,
      "alternative": 2363.1
    },
    {
      "month": 32,
      "incumbent": 3452.16,
      "alternative": 2423.2
    },
    {
      "month": 33,
      "incumbent": 3560.04,
      "alternative": 2483.3
    },
    {
      "month": 34,
      "incumbent": 3667.92,
      "alternative": 2543.4
    },
    {
      "month": 35,
      "incumbent": 3775.8,
      "alternative": 2603.5
    },
    {
      "month": 36,
      "incumbent": 3883.68,
      "alternative": 2663.6
    }
  ],
  "sensitivity": [
    {
      "hourly_rate": 0,
      "verdict": "switch",
      "break_even_month": 0,
      "savings_at_horizon": 3519.93
    },
    {
      "hourly_rate": 25,
      "verdict": "switch",
      "break_even_month": 4,
      "savings_at_horizon": 2369.93
    },
    {
      "hourly_rate": 50,
      "verdict": "switch",
      "break_even_month": 11,
      "savings_at_horizon": 1219.93
    },
    {
      "hourly_rate": 75,
      "verdict": "marginal",
      "break_even_month": 33,
      "savings_at_horizon": 69.93
    },
    {
      "hourly_rate": 100,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -1080.07
    },
    {
      "hourly_rate": 150,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -3380.07
    },
    {
      "hourly_rate": 200,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -5680.07
    }
  ],
  "tradeoffs": {
    "you_lose": [
      "1Password's security team, audits and bug bounty",
      "Polished mobile apps; Passbolt's are functional rather than pleasant",
      "Watchtower breach monitoring and account recovery"
    ],
    "you_gain": [
      "OpenPGP end-to-end encryption with per-user keys, which is a genuinely different security model",
      "Sharing and access control designed for organisations rather than households",
      "AGPL-3.0, free seats, and no per-user charge at any size"
    ]
  },
  "caveats": [
    "A password vault is the worst thing to lose. If you will not keep backups tested and the host patched, stay on 1Password whatever this page says.",
    "Passbolt's key model means a lost private key is unrecoverable by design. That is a security feature and an operational hazard; plan recovery before you migrate.",
    "It needs GPG, a mail server for invitations, and TLS. The 10-hour estimate assumes all three go smoothly, which they often do not."
  ],
  "category": "password-manager",
  "updated_at": "2026-10-19"
}