← all SaaS

os-alt · annual report · 2026

State of Self-Host 2026

A build-time audit of every open-source alternative we list — what's still maintained, what's quietly aging, and where the self-host story has gaps.

Findings at a glance

  1. 17 of 168 (10%) self-hostable alternatives we track haven't shipped a commit in over 90 days. 10 of those (incl. 6 archived) are over a year cold.
  2. 8 repos with ≥1,000 stars haven't shipped in 180+ days — popular projects are not the same as maintained projects.
  3. 0 of 99 SaaS categories we cover have no mature self-host option (zero alive alts, or the best alive alt is under 500 stars).

Data: live GitHub fetch at build time across 227 unique repos listed as alternatives to 100 paid SaaS. Build date: 2026-05-11. Methodology: below.

1 · The freshness distribution

The single number worth quoting: 10% of self-hostable alternatives are stale or dead.

  • alive ≤ 90d — 151 (90% of 168)
  • stale 91–365d — 7 (4%)
  • dead >365d or archived — 10 (6%, incl. 6 archived)
  • unknown59 (could not parse last commit)

The healthy cohort is healthier than the headline number suggests: the median commit age across the 151 alive repos is 2 days. Half of all alive alternatives have committed inside the last quarter; the other half are within the alive band but moving more slowly.

Most-starred alive alternatives in the directory:

#OSSStarsLast commit
1 n8n n8n-io/n8n 187.4k 1d ago
2 Ollama ollama/ollama 171.2k 2d ago
3 Excalidraw excalidraw/excalidraw 122.9k 4d ago
4 Immich immich-app/immich 100.3k 1d ago
5 Hugo + Decap CMS gohugoio/hugo 88.0k today
6 Uptime Kuma louislam/uptime-kuma 86.5k today
7 Hoppscotch hoppscotch/hoppscotch 79.1k 9d ago
8 code-server coder/code-server 77.5k 2d ago
9 Grafana stack (Mimir + Loki + Tempo) grafana/grafana 73.7k today
10 Apache Superset apache/superset 72.8k 1d ago

2 · Big and quiet

8 repos with ≥ 1,000 stars have no commit on the default branch in 180+ days.

These are the projects most likely to mislead a self-host shopper. Star count signals past traction, not current maintenance — a directory that doesn't disclose this is silently routing people toward unmaintained software. Below is the full list as the audit caught it; the /insights/ page tracks this cohort across builds.

OSSStarsLast commitCold for
Maybe Finance maybe-finance/maybe 54.1k Jul 24, 2025 10mo ago
Focalboard mattermost/focalboard 26.1k Jun 11, 2025 11mo ago
BioDrop EddieHubCommunity/BioDrop 5.71k Jul 1, 2024 23mo ago
HTTPie Desktop httpie/desktop 3.94k Mar 19, 2025 14mo ago
Trilium Notes TriliumNext/Notes 2.92k Jun 24, 2025 11mo ago
OhMyForm ohmyform/ohmyform 2.89k Oct 31, 2024 19mo ago
Cuttlefish mlandauer/cuttlefish 1.62k Jun 27, 2024 23mo ago
Oncall (LinkedIn) linkedin/oncall 1.25k Aug 20, 2025 9mo ago

3 · Where the OSS bench is thin

0 of 99 categories have no mature open-source self-host option in our directory.

"Mature" here is intentionally generous: ≥1 alive alt with at least 500 GitHub stars. Falling below that bar means the alt-side is either dead, stale, or so small that picking it is a bet on a single maintainer. Where the bench is thin, the SaaS isn't competing with self-host — it's competing with nothing.

A second concentration risk: 17 categories have ≥2 listed alternatives but only one is alive. If that single repo ever stops shipping, the open-source story for the whole category collapses to "the bench is thin" overnight.

4 · The savings math

Self-hosting the entire 100-SaaS corpus on one shared VPS: ~$ 30/mo vs paying ~$ 3,710/mo at SaaS list price.

That's ~$44,166/year in theoretical savings if a single buyer subscribed to entry-tier of every SaaS we cover and replaced them all with the listed primary OSS pick. No buyer does that, of course — the right reading is per-pick, which is what /calc/ computes.

The methodology is the same as /calc/: shared VPS sized to the heaviest pick (most tools fit on $5/mo; a few want $10–$20+), one paid seat per SaaS at its lowest-tier monthly price. The honest number per individual buyer is much smaller — most picks save tens of dollars a month, not thousands. The why bother case is durability and lock-in, not arithmetic.

5 · Methodology & caveats

  • Sample. 227 unique GitHub repos listed as alternatives across 100 paid SaaS pages on os-alt. Curated by hand; not exhaustive of the open-source ecosystem. Full list with health flags.
  • "Stale" and "dead" definitions. Last commit on the default branch > 90 days = stale. > 365 days OR repo archived = dead. These thresholds are coarse on purpose — many maintained projects in long-tail categories ship infrequently. A 91-day-quiet repo is not necessarily abandoned; it shows up in the stale bucket regardless.
  • "Mature self-host option" definition. ≥1 listed alt that is alive AND has ≥500 GitHub stars. Stars are a noisy popularity signal; the cutoff is editorial, not statistical.
  • Build-time, not point-in-time. All numbers refresh on every deploy — this page is regenerated against live GitHub state, so figures here will drift week-to-week. Re-run builds and the report re-runs. Snapshot-vs-live diffs live at /insights/.
  • Selection bias. The corpus is biased toward better-known SaaS with at least one well-known OSS alternative — by construction. The "thin categories" count would be larger if we widened to every SaaS without a directory entry. Honest reading: within a curated set that already has open-source picks, this many categories still have no mature option.
  • SaaS pricing. Lowest paid-tier monthly price per SaaS (free tiers count as $0). One seat. Ignores volume discounts and annual commits.