How we count
The arithmetic is simple. The honesty is in what gets included.
Your time is a cost
Almost every self-hosting comparison comes down to "$240 a year versus $60 a year, so obviously self-host". That is only true if your time is free. It is not, so we charge it: the hours to migrate, and the hours each month to keep the thing patched, backed up and running. Then we solve for the hourly rate at which the two totals meet. That rate is the headline number on every page, and it is the one figure here you will not find anywhere else.
The third option
Comparisons like this usually offer two choices: keep paying, or run it yourself. There is a third — a managed host that runs the same open-source software, applies the updates and takes the backups — and it is the honest answer for anyone whose hours are worth more than the saving. We price it wherever the provider publishes a figure for that application, and we say plainly that it is their minimum allocation rather than the sized server the self-hosted column prices.
Where the prices come from
Hosting prices come straight from Vultr's and Linode's public plan catalogues, refreshed nightly. The cheapest plan that meets the stated requirements is chosen automatically — we do not pick the provider by hand, and we do not pick the one that pays best.
SaaS list prices are verified by hand against the vendor's own pricing page, and each one is stored with the exact sentence that justifies it. A nightly job re-reads those pages and compares what it finds against what we stored. If they agree, the verification date moves forward. If they disagree, the stored price does not change — the page is flagged and a human re-checks it. A collector that fails keeps the last known value and marks it stale.
What we refuse to do
- We never publish a number we could not verify. If a price cannot be confirmed, the comparison goes stale and comes down rather than going out with a guess.
- We never claim self-hosting is always cheaper. 10 of the 36 comparisons on this site conclude that you should keep paying.
- We never recommend software that has stopped moving. If the upstream project goes dormant or gets archived, the comparison is pulled regardless of how good the price looks.
- Affiliate relationships never touch the arithmetic. Provider selection is automated and the code is the same for every comparison.
What is an estimate
Three inputs are our judgement rather than a measurement: the size of box each piece of software needs, the hours to migrate, and the hours per month to maintain it. We set them conservatively — biased toward the subscription — because the worst thing this site could do is talk someone into a migration that never paid off. They are printed on every page so you can disagree with them, and the slider lets you test how much they matter.
Your team size decides most of it
A per-seat subscription scales with headcount; a server does not care how many people use it. That single fact decides most of these comparisons, which is why every page with a per-seat incumbent lets you set your own team size rather than fixing one. The same comparison can honestly say "obviously switch" at twenty people and "obviously stay" at two, and a page that picked one number for you would be wrong for nearly everyone reading it.
Each page also states the team size at which switching starts to pay at your hourly rate — usually the more actionable of the two numbers, because "worth doing once you are past six people" is a decision you can make today.
Horizon and assumptions
- Costs are compared over 36 months unless a page says otherwise.
- Migration and maintenance hours do not scale with team size. Moving twenty people off Notion is not twice the work of moving ten, and pretending otherwise would flatter the subscription.
- Prices are US list prices, in USD, excluding tax.
- Annual-billing discounts are used where the vendor offers them, since that is the cheaper honest comparison for the subscription.
- No discounting of future cash flows. Over three years at these amounts it would change the conclusions by less than the error in our hour estimates.
- One server, no redundancy. A high-availability self-hosted deployment costs considerably more and would lose most of these comparisons.
Use the data
Every comparison is available as JSON, with the same provenance the pages carry. It is free to use, including commercially, with attribution. Start here.