<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: os-alt</title>
    <description>The latest articles on Forem by os-alt (@osalt).</description>
    <link>https://forem.com/osalt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3923065%2F551c109a-034b-4322-ae71-4bab8a12221d.png</url>
      <title>Forem: os-alt</title>
      <link>https://forem.com/osalt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/osalt"/>
    <language>en</language>
    <item>
      <title>The Datadog escape hatch is real: observability is the OSS vertical that's actually winning (May 2026)</title>
      <dc:creator>os-alt</dc:creator>
      <pubDate>Sun, 10 May 2026 11:19:16 +0000</pubDate>
      <link>https://forem.com/osalt/the-datadog-escape-hatch-is-real-observability-is-the-oss-vertical-thats-actually-winning-may-3kka</link>
      <guid>https://forem.com/osalt/the-datadog-escape-hatch-is-real-observability-is-the-oss-vertical-thats-actually-winning-may-3kka</guid>
      <description>&lt;p&gt;&lt;em&gt;Cross-posted from &lt;a href="https://code-rho-dun.vercel.app/blog/self-host-datadog-alternatives-2026-05/" rel="noopener noreferrer"&gt;os-alt&lt;/a&gt; — canonical lives there.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two posts ago we &lt;a href="https://code-rho-dun.vercel.app/blog/self-host-pagerduty-alternatives-2026-05/" rel="noopener noreferrer"&gt;opened the PagerDuty vertical&lt;/a&gt; and found three-of-three self-host alternatives not alive. One post ago we &lt;a href="https://code-rho-dun.vercel.app/blog/self-host-link-in-bio-alternatives-2026-05/" rel="noopener noreferrer"&gt;opened Linktree&lt;/a&gt; and found two-of-three. We promised a positive-side post before the series got too doomy. Here it is.&lt;/p&gt;

&lt;p&gt;On &lt;a href="https://code-rho-dun.vercel.app/datadog/" rel="noopener noreferrer"&gt;/datadog/&lt;/a&gt; we list three self-hostable alternatives — &lt;code&gt;SigNoz&lt;/code&gt;, the &lt;code&gt;Grafana&lt;/code&gt; LGTM stack, and &lt;code&gt;Uptrace&lt;/code&gt;. As of today, &lt;strong&gt;three of three are alive&lt;/strong&gt;. Two of them shipped commits this morning.&lt;/p&gt;

&lt;p&gt;That's not a coincidence and it's not because we got lucky on the category. It's the first failure mode in this series where the failure mode is &lt;em&gt;absent&lt;/em&gt; — and the thing that holds it back, the structural reason this vertical doesn't decay, is worth the post.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three we list (and what their health pill says today)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;th&gt;Last commit&lt;/th&gt;
&lt;th&gt;Archived&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SigNoz/signoz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;26,857&lt;/td&gt;
&lt;td&gt;2026-05-10&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;alive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grafana/grafana&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;73,650&lt;/td&gt;
&lt;td&gt;2026-05-10&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;alive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;uptrace/uptrace&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4,196&lt;/td&gt;
&lt;td&gt;2026-04-30&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;alive&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same exact freshness query we ran on PagerDuty and Linktree. Different answer, because the surrounding economics are different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why observability didn't decay like on-call did
&lt;/h2&gt;

&lt;p&gt;Three structural reasons, in roughly the order they matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. OpenTelemetry won the data-shape war.&lt;/strong&gt; Five years ago every observability vendor had a proprietary agent and proprietary wire format — Datadog's &lt;code&gt;dd-trace&lt;/code&gt;, New Relic's, Dynatrace's, Splunk's, all mutually incompatible. Today, OpenTelemetry is the &lt;em&gt;de facto&lt;/em&gt; standard for traces, well on its way for metrics, with logs catching up. CNCF graduation. Microsoft / AWS / Google all shipping OTel as the preferred path. Datadog itself documents the OTel ingest path because their customers demanded it. That's the wedge: when the data shape is shared, switching off the SaaS is an agent-config change, not a re-instrumentation project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The pricing pain is too universal to ignore.&lt;/strong&gt; Coinbase's $65M Datadog bill made headlines in 2022; it became a meme but it described a real pattern. Per-host pricing in the $15-23/host/month range, plus per-GB log ingest, plus per-event custom-metric overage, compounds nonlinearly with how successful your business is. There's a constant supply of teams hitting a usage cliff and starting a Datadog escape project. That demand keeps SigNoz / Grafana / Uptrace funded — both directly (paid tiers) and indirectly (visibility, usage, contributors).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Commercial-OSS works in observability because operators value the same thing customers do.&lt;/strong&gt; The buyer of a paid SigNoz tier is a senior SRE. The maintainer of SigNoz is a senior SRE. They want the same product. Compare link-in-bio: the buyer of a Linktree paid tier is a creator who doesn't want to think about HTML; the maintainer of LittleLink is a developer who has already written the HTML. Mismatched audience, no funding feedback loop. Observability's buyer-maintainer alignment is the structural feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this leaves the series
&lt;/h2&gt;

&lt;p&gt;Three vertical posts in, three distinct failure-mode shapes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On-call&lt;/strong&gt; — OSS dying under vendor pressure. PagerDuty alts at 3-of-3 not-alive; the largest player (Grafana OnCall) was archived in favor of a paid Grafana IRM rebrand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Link-in-bio&lt;/strong&gt; — OSS dying under vendor indifference. Linktree alts at 2-of-3 not-alive; no commercial OSS plausible because the buyer-maintainer mismatch breaks the funding loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observability&lt;/strong&gt; — OSS thriving on a shared data standard. Datadog alts at 3-of-3 alive; OpenTelemetry made the migration mechanical and the buyer-maintainer alignment makes commercial OSS work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The combined picture is more useful than any single post. A self-host directory that ranks by stars promotes the wrong projects, because stars accumulate slowly and don't decay when a project dies — but freshness alone isn't the whole picture either. The structural question is whether the category has a working commercial-OSS feedback loop. Where it does (observability), self-host alts compound. Where it doesn't (on-call, link-in-bio), they decay at different speeds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://code-rho-dun.vercel.app/blog/self-host-datadog-alternatives-2026-05/" rel="noopener noreferrer"&gt;Full post + per-alt deep-dive (SigNoz / Grafana / Uptrace) + editorial debt on the directory page →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>devops</category>
      <category>observability</category>
    </item>
    <item>
      <title>The link-in-bio OSS market never had a Grafana — and it's quietly dying anyway (May 2026)</title>
      <dc:creator>os-alt</dc:creator>
      <pubDate>Sun, 10 May 2026 10:42:25 +0000</pubDate>
      <link>https://forem.com/osalt/the-link-in-bio-oss-market-never-had-a-grafana-and-its-quietly-dying-anyway-may-2026-1he1</link>
      <guid>https://forem.com/osalt/the-link-in-bio-oss-market-never-had-a-grafana-and-its-quietly-dying-anyway-may-2026-1he1</guid>
      <description>&lt;p&gt;Last week we &lt;a href="https://code-rho-dun.vercel.app/blog/self-host-pagerduty-alternatives-2026-05/" rel="noopener noreferrer"&gt;zoomed in on the on-call vertical&lt;/a&gt; and found that &lt;strong&gt;three of three&lt;/strong&gt; self-host PagerDuty alternatives we recommend are not alive. Today we're zooming in on the opposite end of the SaaS market — link-in-bio landing pages. The same data exercise; a totally different failure mode.&lt;/p&gt;

&lt;p&gt;On our &lt;a href="https://code-rho-dun.vercel.app/linktree/" rel="noopener noreferrer"&gt;/linktree/&lt;/a&gt; page we list three self-hostable replacements: &lt;code&gt;LinkStack&lt;/code&gt;, &lt;code&gt;LittleLink&lt;/code&gt;, and &lt;code&gt;BioDrop&lt;/code&gt;. As of today, &lt;strong&gt;two are not alive&lt;/strong&gt;. The third has held on at 82 days since its last commit — eight days short of our 90-day "stale" line.&lt;/p&gt;

&lt;p&gt;That's not the headline. The headline is &lt;em&gt;why&lt;/em&gt; this category looks the way it does. On-call OSS is dying because well-funded vendors are killing it. Link-in-bio OSS is dying because nobody bothered.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three we list (and what their health pill says today)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;th&gt;Last commit&lt;/th&gt;
&lt;th&gt;Archived&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;linkstackorg/linkstack&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3,567&lt;/td&gt;
&lt;td&gt;2026-02-17&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;alive (just)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sethcottle/littlelink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2,947&lt;/td&gt;
&lt;td&gt;2026-01-28&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;stale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;EddieHubCommunity/BioDrop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5,709&lt;/td&gt;
&lt;td&gt;2024-07-01&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;yes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;dead&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three different stories of "not maintained anymore" — none of them dramatic, which is itself the point.&lt;/p&gt;

&lt;h3&gt;
  
  
  BioDrop — archived 22 months ago, after a pivot
&lt;/h3&gt;

&lt;p&gt;BioDrop is the most-starred of the three (5,709 stars). It started life as &lt;code&gt;EddieHub/LinkFree&lt;/code&gt;, rebranded to BioDrop, then quietly broadened from a Linktree clone into "a developer profile site with a links section." Then in mid-2024 the maintainer archived the repo. No farewell post, no successor announcement — the README still reads like the project is welcoming contributors.&lt;/p&gt;

&lt;p&gt;Star count is the worst signal in this category. BioDrop has the most stars and is the most comprehensively dead. The stars accumulated in 2022–2023; the archive happened in 2024; nobody updated the README. A directory that ranks by stars promotes BioDrop. A directory that surfaces &lt;code&gt;archived: true&lt;/code&gt; demotes it. We &lt;a href="https://code-rho-dun.vercel.app/blog/most-self-host-alternatives-are-still-alive-but-some-arent-2026-05/" rel="noopener noreferrer"&gt;wrote about this exact failure mode&lt;/a&gt; in the May overview — BioDrop is the cleanest example we've found.&lt;/p&gt;

&lt;h3&gt;
  
  
  LittleLink — quietly stale
&lt;/h3&gt;

&lt;p&gt;LittleLink is the most charming of the three: a single-file static site, no DB, no admin, deploy-it-on-any-static-host. The README is friendly. The brand-icon CSS is genuinely useful. And the last commit was January 28, 2026 — 102 days ago.&lt;/p&gt;

&lt;p&gt;That's not a project in trouble; that's a project that doesn't &lt;em&gt;need&lt;/em&gt; to ship anything. Static HTML doesn't have integrations to keep current. The brand-class catalogue (the value prop) gets PR'd by users when a new social network shows up. The maintainer can leave for three months and nothing technically breaks.&lt;/p&gt;

&lt;p&gt;But three months without a commit is also exactly how a project becomes inactive without anyone noticing. There's no roadmap to compare against. Our pill calls it &lt;code&gt;stale&lt;/code&gt;; in practice that's "fine if you accept that no PR will be merged quickly." Which, for a static-HTML link page, may genuinely be fine.&lt;/p&gt;

&lt;h3&gt;
  
  
  LinkStack — the survivor, eight days from stale
&lt;/h3&gt;

&lt;p&gt;LinkStack is the only one our pill calls &lt;code&gt;alive&lt;/code&gt;: 3,567 stars, last commit February 17, 2026 — 82 days ago. Our threshold for stale is 90 days. So LinkStack is alive in the same way Schrödinger's project is alive. If today is 2026-05-10 and nothing lands in main by 2026-05-18, our snapshot will flip it to &lt;code&gt;stale&lt;/code&gt; on the next sweep without a single thing changing about the codebase.&lt;/p&gt;

&lt;p&gt;Look at the cadence of the project's contribution graph and that's not a one-off lull — this is a maintainer-led PHP/Laravel project that ships in bursts. It's the most viable link-in-bio option in OSS today, and that's only true because BioDrop quit and LittleLink is essentially a CSS file.&lt;/p&gt;

&lt;h2&gt;
  
  
  The link-in-bio failure mode is the inverse of on-call
&lt;/h2&gt;

&lt;p&gt;Our &lt;a href="https://code-rho-dun.vercel.app/blog/self-host-pagerduty-alternatives-2026-05/" rel="noopener noreferrer"&gt;PagerDuty post&lt;/a&gt; argued that on-call OSS dies because the vendor money in that space is huge: PagerDuty, Splunk On-Call, Opsgenie, FireHydrant. Maintainers get acquihired. Projects get archived after a scramble of farewell fixes. Grafana OnCall → Grafana IRM is the canonical arc.&lt;/p&gt;

&lt;p&gt;Link-in-bio is the opposite. Linktree raised &lt;strong&gt;$110M&lt;/strong&gt; in 2022 at a $1.3B valuation. Beacons, Bento, Carrd are all alive and well. There is plenty of money in this category. &lt;em&gt;None of it is being spent on killing the OSS competition&lt;/em&gt;, because the OSS competition isn't a threat. A static page with a list of links is too cheap to clone, too low-value per user, and too cosmetic to displace the SaaS option for the audience that actually pays for one (creators, who want analytics + custom domains + a 30-second signup).&lt;/p&gt;

&lt;p&gt;So link-in-bio OSS doesn't die from vendor sabotage. It dies from &lt;em&gt;indifference&lt;/em&gt;. Nobody hires the LittleLink maintainer away. Nobody archives BioDrop because Linktree bought the project. The maintainer just gets bored and stops. The project drifts. Eventually the README still says it's accepting PRs while the repo is technically archived. That's the whole arc.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually missing from our /linktree/ page
&lt;/h2&gt;

&lt;p&gt;In the PagerDuty post we declared an editorial debt — we hadn't listed &lt;code&gt;keephq/keep&lt;/code&gt;, the obvious current successor, on &lt;a href="https://code-rho-dun.vercel.app/pagerduty/" rel="noopener noreferrer"&gt;/pagerduty/&lt;/a&gt;. (Now we have.)&lt;/p&gt;

&lt;p&gt;For link-in-bio, the editorial debt is the opposite shape. There &lt;em&gt;isn't&lt;/em&gt; a well-funded, fast-shipping OSS successor we forgot to list. We looked. The best candidates are forks of the three projects above; most are unmaintained themselves. The category doesn't have its Keep, and in our reading, it's unlikely to grow one — there's no business model that funds a maintainer here. Self-hosters either accept LinkStack-as-it-is, fork LittleLink and treat it as a static-site template, or write 30 lines of HTML themselves.&lt;/p&gt;

&lt;p&gt;That last option is the dark horse. A link-in-bio "page" is genuinely 30 lines of HTML, zero dependencies, deployable on any free static host. The reason a SaaS like Linktree commands $110M in funding isn't the page; it's the analytics, the dashboard, and the creator who doesn't want to think about DNS. A self-hoster who is willing to think about DNS already has the answer in 30 minutes without using any of the three projects above.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you trusted our /linktree/ page last week
&lt;/h2&gt;

&lt;p&gt;Our pill colors today are honest — BioDrop renders &lt;code&gt;dead&lt;/code&gt;, LittleLink renders &lt;code&gt;stale&lt;/code&gt;, LinkStack renders &lt;code&gt;alive&lt;/code&gt;. The page itself still presents all three with equal weight in the alternatives table, which understates how much the practical recommendation has narrowed to "use LinkStack, or accept a static-site template, or just write the HTML." That nuance is in the body of this post but not yet on the directory page. The next sweep should reorder the table to lead with LinkStack and demote the archived BioDrop entry visually, not only via a freshness pill.&lt;/p&gt;

&lt;p&gt;We hold off on rewriting the page right now for the same reason we did for &lt;a href="https://code-rho-dun.vercel.app/pagerduty/" rel="noopener noreferrer"&gt;/pagerduty/&lt;/a&gt; last week: the page being out of date &lt;em&gt;is&lt;/em&gt; the post's wedge. Rewrite it after publishing, not before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this leaves us
&lt;/h2&gt;

&lt;p&gt;Two posts in, two verticals deep, two opposite failure modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On-call OSS&lt;/strong&gt;: dies under vendor pressure. PagerDuty alts at 3-of-3 not-alive. Successor exists (&lt;code&gt;keephq/keep&lt;/code&gt;) — added to our directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Link-in-bio OSS&lt;/strong&gt;: dies under vendor &lt;em&gt;indifference&lt;/em&gt;. Linktree alts at 2-of-3 not-alive. No clear successor. The directory entry that survives is the one that doesn't require ongoing maintenance to stay correct.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both share the same underlying truth: a self-host directory that ranks by stars promotes the wrong projects, because stars accumulate slowly and don't decay when a project dies. Last-commit date and the &lt;code&gt;archived&lt;/code&gt; flag together catch most of what stars miss. That's the entire premise of &lt;a href="https://code-rho-dun.vercel.app/" rel="noopener noreferrer"&gt;os-alt&lt;/a&gt;, and the &lt;a href="https://code-rho-dun.vercel.app/graveyard/" rel="noopener noreferrer"&gt;graveyard page&lt;/a&gt; is where it shows up most concretely — every not-alive repo across our 100 SaaS pages, with backlinks to the SaaS each is listed under.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;This is the third post in the monthly snapshot series. Coming up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first month-over-month diff (June 2026 — what flipped state, including whether LinkStack went stale on schedule)&lt;/li&gt;
&lt;li&gt;Form builders post-Typeform (&lt;code&gt;ohmyform&lt;/code&gt; abandoned — what's actually shipping for self-host forms)&lt;/li&gt;
&lt;li&gt;Categories where OSS is &lt;em&gt;winning&lt;/em&gt; the freshness race, for contrast&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you'd rather get the diff post in your inbox than rediscover us via search later, &lt;a href="https://code-rho-dun.vercel.app/" rel="noopener noreferrer"&gt;subscribe on the directory homepage&lt;/a&gt; — the form below ships the monthly digest the same day each post lands.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>We list 3 self-host PagerDuty alternatives. None of them are alive. (May 2026)</title>
      <dc:creator>os-alt</dc:creator>
      <pubDate>Sun, 10 May 2026 10:24:24 +0000</pubDate>
      <link>https://forem.com/osalt/we-list-3-self-host-pagerduty-alternatives-none-of-them-are-alive-may-2026-1a71</link>
      <guid>https://forem.com/osalt/we-list-3-self-host-pagerduty-alternatives-none-of-them-are-alive-may-2026-1a71</guid>
      <description>&lt;p&gt;The on-call OSS space has a problem. Of the three self-hostable PagerDuty alternatives our directory recommends, &lt;strong&gt;zero are currently alive&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://code-rho-dun.vercel.app/blog/most-self-host-alternatives-are-still-alive-but-some-arent-2026-05/" rel="noopener noreferrer"&gt;Last week's first repo-health snapshot&lt;/a&gt; flagged ~11% of all listed self-host alternatives as not-alive. This week we're zooming in on the worst-affected single category: on-call rotation and incident paging. It's not 11%. It's 100%.&lt;/p&gt;

&lt;p&gt;If you're paying $21–41/user/month for PagerDuty and were planning the self-host escape hatch, the directories you're staring at — including ours — are largely out of date. Here's what May 2026 actually looks like, and what to do instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three we listed (and what their health pill says today)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;th&gt;Last commit&lt;/th&gt;
&lt;th&gt;Archived&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grafana/oncall&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3,881&lt;/td&gt;
&lt;td&gt;2026-03-24&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;yes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;dead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;linkedin/oncall&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,249&lt;/td&gt;
&lt;td&gt;2025-08-20&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;stale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cabotapp/cabot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;404 from GitHub API&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three projects, three different ways of being not-alive. Worth taking each one in turn — the failure modes generalize to any OSS-buying decision in 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grafana OnCall — archived two months ago
&lt;/h3&gt;

&lt;p&gt;The most painful entry. Grafana archived their own on-call project on 2026-03-24. The repo's README points at "Grafana IRM" — Grafana's roadmap-rebranded successor. As of May 2026, IRM is a paid Grafana Cloud feature, not a self-host package.&lt;/p&gt;

&lt;p&gt;For a self-hoster, that means: the codebase is frozen, no PRs accepted, the next features live behind a SaaS paywall. What makes this trap harder to spot is that the repo still has &lt;em&gt;recent&lt;/em&gt; commits — the archive happened after a scramble of farewell fixes. A tool that surfaces only &lt;code&gt;last_commit_at&lt;/code&gt; would tell you OnCall is fine. The signal that catches it is &lt;code&gt;archived: true&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Lesson: when you're picking a self-host target, last-commit-recency is half the answer. The other half is the archive flag, and roughly a third of the "dead" repos in our snapshot are dead specifically because of &lt;code&gt;archived: true&lt;/code&gt;, not because their commits dried up.&lt;/p&gt;

&lt;h3&gt;
  
  
  LinkedIn Oncall — nine months silent
&lt;/h3&gt;

&lt;p&gt;LinkedIn's Oncall was always a partial story. It's the rotation/calendar layer; you paired it with &lt;code&gt;linkedin/iris&lt;/code&gt; for actual paging. Two processes, MySQL underneath, a 2018-vintage UI. Acceptable trade-off if it shipped.&lt;/p&gt;

&lt;p&gt;It hasn't. Nine months without a commit on a tool that needs to keep up with Twilio API versions, Slack Block Kit revisions, and Prometheus AlertManager schema is a real risk. Open-issue count is 78. The &lt;code&gt;iris&lt;/code&gt; half (&lt;code&gt;linkedin/iris&lt;/code&gt;) shows similar stagnation.&lt;/p&gt;

&lt;p&gt;This is a textbook "acquihire-grade abandonment": a single open-source project that an internal team kept alive while a single maintainer was around, then stopped touching when that person rotated off. Not malicious, not formally dead — just no one driving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cabot — repo no longer exists
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;cabotapp/cabot&lt;/code&gt; returns &lt;strong&gt;404&lt;/strong&gt; from the GitHub API today. Renamed, deleted, or transferred to a private namespace — we genuinely don't know which.&lt;/p&gt;

&lt;p&gt;Cabot was the smallest install of the three: a Pingdom-plus-paging combo with just Postgres + Cabot. The minimal surface area made it attractive for tiny teams. But a 404 from &lt;code&gt;api.github.com/repos/cabotapp/cabot&lt;/code&gt; means no clone, no fork, no historical issue tracker. Whatever knowledge was in there is — for any practical self-host purpose — gone.&lt;/p&gt;

&lt;p&gt;We hold it as &lt;code&gt;unknown&lt;/code&gt; in our snapshot rather than promoting it to &lt;code&gt;dead&lt;/code&gt;, because someone might restore the namespace next month. But the 404 is itself the strongest "do not put this on a 2026 roadmap" signal we have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the on-call vertical decays harder than most
&lt;/h2&gt;

&lt;p&gt;A few observations from staring at this category specifically:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;On-call tools live or die on integrations that age fast.&lt;/strong&gt; Twilio outbound API versions, Slack Block Kit, Prometheus AlertManager schema, PagerDuty's own webhook format for receiving migrations. Six months of maintainer silence and you've got at least one of those broken. A static site generator can ship a single commit a year and still be useful. An on-call tool cannot.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The vendor money in this space is real.&lt;/strong&gt; PagerDuty, Splunk On-Call, Opsgenie, FireHydrant — all well-funded SaaS with vested interest in killing OSS competition. Grafana OnCall arcing into Grafana IRM is the textbook end state: get acquired-by-roadmap, archive the public repo, sell the same code as a hosted feature.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;It's a high-trust install.&lt;/strong&gt; People deploy a status page on a whim. People do not deploy "the thing that decides who gets woken up at 3am" without serious vetting. So the user base of OSS on-call tools skews smaller and more demanding — which inverts the casual-contributor loop healthier OSS projects depend on.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The combination is brutal. You need ongoing integration maintenance, the vendors will hire away your one maintainer, and your user base is too small and too cautious to cushion the gap with PRs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you should actually self-host for paging in 2026
&lt;/h2&gt;

&lt;p&gt;Two real options, neither of which is on our /pagerduty/ page yet — this is a directory bug we'll fix in the next sweep:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Keep — &lt;code&gt;keephq/keep&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;11,805 stars, last commit yesterday (2026-05-09), AGPL-3.0&lt;/li&gt;
&lt;li&gt;Bills itself as the open-source AIOps and alert management platform. Modern stack (Python + Next.js), active Discord, regular releases.&lt;/li&gt;
&lt;li&gt;The clearest current self-host alternative to PagerDuty. Native integrations for Prometheus, Datadog, Sentry, Slack, Twilio. Workflow engine for routing rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fact that we hadn't surfaced this on our /pagerduty/ page when we wrote it is the editorial bug this whole post is paying off. The June 2026 sweep will add it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Hand-rolled: AlertManager + a calendar + Twilio
&lt;/h3&gt;

&lt;p&gt;Deeply boring. Prometheus AlertManager handles routing. Google Calendar (or any calendar with an iCal feed) holds the rotation. A tiny webhook script translates &lt;em&gt;"AlertManager fired → who's on call right now per the calendar → Twilio outbound call/SMS"&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Not a product. Not a deploy. A weekend script. But it's what a lot of small teams have actually converged on while waiting for the OSS on-call market to settle, and it has zero supply-chain dependency on anyone else's roadmap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means if you trusted our /pagerduty/ page last week
&lt;/h2&gt;

&lt;p&gt;Honestly: the page is misleading right now. Our pill colors will tell you Grafana OnCall is dead, but the directory still lists it as the lead alternative. That's an editorial state we have to fix, not a "feature".&lt;/p&gt;

&lt;p&gt;This is exactly the failure mode a freshness-first directory is supposed to catch quickly — and the reason we built &lt;a href="https://code-rho-dun.vercel.app/graveyard/" rel="noopener noreferrer"&gt;the graveyard&lt;/a&gt; page (every dead/stale repo across our 100 SaaS pages, with backlinks to the SaaS each is listed under) and the &lt;a href="https://code-rho-dun.vercel.app/api/" rel="noopener noreferrer"&gt;public JSON API&lt;/a&gt; (so anyone aggregating us downstream gets the freshness signal too).&lt;/p&gt;

&lt;p&gt;If you were planning a 2026 PagerDuty migration and our /pagerduty/ page was your starting point — thank you for reading carefully. Your fallback today is Keep, or hand-rolled AlertManager + calendar + Twilio. Don't put &lt;code&gt;grafana/oncall&lt;/code&gt;, &lt;code&gt;linkedin/oncall&lt;/code&gt;, or &lt;code&gt;cabotapp/cabot&lt;/code&gt; on a 2026 self-host roadmap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;This is the second post in the monthly snapshot series. The May post established the overall ~11% not-alive headline. This post zooms in on the worst category. Future posts in this series will cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first month-over-month diff (June 2026 — what flipped state)&lt;/li&gt;
&lt;li&gt;Linktree-style "link in bio" tools (BioDrop dead, littlelink stale — same pattern, smaller stakes)&lt;/li&gt;
&lt;li&gt;Form builders post-Typeform (ohmyform abandoned — what's actually shipping)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want the diff post when it lands? Subscribe to the monthly digest from any &lt;a href="https://code-rho-dun.vercel.app/" rel="noopener noreferrer"&gt;SaaS page&lt;/a&gt; on the directory.&lt;/p&gt;

&lt;p&gt;We'd rather you find out from us than from a &lt;code&gt;git clone&lt;/code&gt; followed by a confused stare at the archive banner.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>devops</category>
      <category>sre</category>
    </item>
    <item>
      <title>Most self-host SaaS alternatives are alive — but 13 of 118 aren't (May 2026)</title>
      <dc:creator>os-alt</dc:creator>
      <pubDate>Sun, 10 May 2026 09:06:24 +0000</pubDate>
      <link>https://forem.com/osalt/most-self-host-saas-alternatives-are-alive-but-13-of-118-arent-may-2026-3aen</link>
      <guid>https://forem.com/osalt/most-self-host-saas-alternatives-are-alive-but-13-of-118-arent-may-2026-3aen</guid>
      <description>&lt;p&gt;We just built a directory of paid SaaS and the open-source tools you can self-host instead. Then, instead of shipping the directory and calling it a day, we ran a build-time freshness check on every recommended OSS repo: how recent is the last commit, and is the GitHub repo archived? This post is what we found in the first monthly snapshot.&lt;/p&gt;

&lt;p&gt;If you're paying for SaaS and looking for a self-hostable replacement, here's the headline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;118&lt;/strong&gt; unique GitHub repos referenced across &lt;strong&gt;50&lt;/strong&gt; SaaS categories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;105&lt;/strong&gt; alive (last commit ≤ 90 days)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4&lt;/strong&gt; stale (90 days – 1 year)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;6&lt;/strong&gt; dead (commit &amp;gt; 1 year ago, or repo archived on GitHub)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3&lt;/strong&gt; unknown (renamed / moved / private — see notes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's about &lt;strong&gt;11%&lt;/strong&gt; of recommended self-host alternatives that we wouldn't deploy on a fresh box today without a second look — 5% truly dead, 3% stale, 3% we can't currently classify.&lt;/p&gt;

&lt;p&gt;Most directories of "open source alternatives to X" don't tell you any of this. They list the project, maybe a star count, and stop there. Star counts are sticky: a tool can pick up tens of thousands of stars over five years and still be effectively dormant. We needed something a directory you'd actually use &lt;em&gt;for migration decisions&lt;/em&gt; would surface up front.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a freshness signal matters when you're picking a self-host target
&lt;/h2&gt;

&lt;p&gt;Star count is the wrong primary signal. The signal that matters when you're about to spend a weekend standing up a tool on your VPS is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Will this still get security patches in 12 months?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can't answer that from stars. You can answer it, imperfectly, from the last commit date and whether the repo is archived. So that's what we surface on every alternative card on &lt;a href="https://code-rho-dun.vercel.app/" rel="noopener noreferrer"&gt;the directory&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Two boundaries to be honest about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Last commit ≤ 90 days isn't a guarantee.&lt;/strong&gt; A tool can be commit-active and still neglected by maintainers — no responses on issues, no tagged releases. We don't measure release cadence in this snapshot; that's a v2 item.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archived ≠ dead project.&lt;/strong&gt; Some of the projects we flag as &lt;code&gt;dead&lt;/code&gt; are archived because the project &lt;em&gt;moved&lt;/em&gt; — different namespace, different host, different fork that's the new canonical. The flag still matters for your self-host decision: the archived repo is not where future patches will land.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With those caveats, here's the actual list.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 6 we flagged as dead
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;th&gt;Last commit&lt;/th&gt;
&lt;th&gt;Archived&lt;/th&gt;
&lt;th&gt;SaaS page&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minio/minio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;60,900&lt;/td&gt;
&lt;td&gt;2026-02-12&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/aws-s3/" rel="noopener noreferrer"&gt;aws-s3&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grafana/oncall&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3,881&lt;/td&gt;
&lt;td&gt;2026-03-24&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/pagerduty/" rel="noopener noreferrer"&gt;pagerduty&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ohmyform/ohmyform&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2,886&lt;/td&gt;
&lt;td&gt;2024-10-31&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/typeform/" rel="noopener noreferrer"&gt;typeform&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;EddieHubCommunity/BioDrop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5,709&lt;/td&gt;
&lt;td&gt;2024-07-01&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/linktree/" rel="noopener noreferrer"&gt;linktree&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mlandauer/cuttlefish&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,619&lt;/td&gt;
&lt;td&gt;2024-06-27&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/sendgrid/" rel="noopener noreferrer"&gt;sendgrid&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;glitchtip/glitchtip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2022-08-21&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/sentry/" rel="noopener noreferrer"&gt;sentry&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three patterns to notice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Archived but not really dead.&lt;/strong&gt; &lt;code&gt;minio/minio&lt;/code&gt; and &lt;code&gt;grafana/oncall&lt;/code&gt; both have commits within the last 90 days but the GitHub repo itself is archived. That's a self-host warning regardless of where the project goes from here: you can't file an issue, no PRs are being accepted, and future releases won't be tagged on this repo. Whatever's coming next lives somewhere else, and that "somewhere else" is your problem to track. We mark these as &lt;code&gt;dead&lt;/code&gt; honestly, and our next sweep will surface the successor repo on the aws-s3 and pagerduty pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Truly abandoned.&lt;/strong&gt; &lt;code&gt;ohmyform&lt;/code&gt;, &lt;code&gt;EddieHubCommunity/BioDrop&lt;/code&gt;, and &lt;code&gt;mlandauer/cuttlefish&lt;/code&gt; look like the genuine article: no commits in 9–22 months, dozens to hundreds of open issues, and no archive flag because nobody bothered to flip the switch. If you read a 2023 article recommending these as self-host alternatives to Typeform, Linktree, or SendGrid respectively, that recommendation is now stale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mirror snafu.&lt;/strong&gt; &lt;code&gt;glitchtip/glitchtip&lt;/code&gt; is a 1-star, 2022 mirror of a project whose actual development happens elsewhere — GlitchTip's canonical repo is on GitLab. Our directory points to the wrong canonical for that alt. That's an editorial bug we'll fix in the next sweep, not a real abandonment signal. We'd rather ship the snapshot honestly with the bug visible than silently hide it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 4 we flagged as stale
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;th&gt;Last commit&lt;/th&gt;
&lt;th&gt;SaaS page&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mattermost/focalboard&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;26,149&lt;/td&gt;
&lt;td&gt;2025-06-11&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/monday/" rel="noopener noreferrer"&gt;monday&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;linkedin/oncall&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,249&lt;/td&gt;
&lt;td&gt;2025-08-20&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/pagerduty/" rel="noopener noreferrer"&gt;pagerduty&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sethcottle/littlelink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2,947&lt;/td&gt;
&lt;td&gt;2026-01-28&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/linktree/" rel="noopener noreferrer"&gt;linktree&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FerretDB/FerretDB&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;10,934&lt;/td&gt;
&lt;td&gt;2026-02-07&lt;/td&gt;
&lt;td&gt;&lt;a href="https://code-rho-dun.vercel.app/mongodb-atlas/" rel="noopener noreferrer"&gt;mongodb-atlas&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Stale isn't dead. A 6-month gap on a stable, mature tool can mean "no urgent bugs, releases when needed". Two of these (&lt;code&gt;littlelink&lt;/code&gt;, &lt;code&gt;FerretDB&lt;/code&gt;) sit just inside the 90-day boundary on the staleness side — they may flip back to &lt;code&gt;alive&lt;/code&gt; next month if a single commit lands, which is exactly the kind of state transition the monthly diff catches.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mattermost/focalboard&lt;/code&gt; is the special one. Mattermost stepped away from active Focalboard development in 2023, and community forks now carry the torch under various names. So 11 months stale on the official repo isn't a bug — it's the project being parked. Our job is to either repoint the recommendation on the monday page to the live community fork, or drop the suggestion entirely. We'll do that work in the June sweep.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3 we couldn't classify
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;cabotapp/cabot&lt;/code&gt;, &lt;code&gt;forgejo/forgejo&lt;/code&gt;, and &lt;code&gt;opennextjs/opennext&lt;/code&gt; returned non-200 from the GitHub repo API at snapshot time. The first is likely renamed or deleted. &lt;code&gt;forgejo/forgejo&lt;/code&gt; is a known case: the project lives canonically on Codeberg, and the GitHub mirror was retired. &lt;code&gt;opennextjs/opennext&lt;/code&gt; is probably a namespace move. We hold these as &lt;code&gt;unknown&lt;/code&gt; rather than dropping them, so a future scan picking them up cleanly shows a real &lt;code&gt;unknown → alive&lt;/code&gt; transition (not a synthesized one).&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for the site's positioning
&lt;/h2&gt;

&lt;p&gt;When we wrote our &lt;a href="https://code-rho-dun.vercel.app/" rel="noopener noreferrer"&gt;MVP brief&lt;/a&gt;, we said the wedge against the closest competitor (openalternative.co) was four things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Strict self-hostability filter (no service-only "OSS" projects)&lt;/li&gt;
&lt;li&gt;Setup-time score per alternative&lt;/li&gt;
&lt;li&gt;Monthly cost estimate on a small VPS&lt;/li&gt;
&lt;li&gt;Health flag from &lt;code&gt;last_commit + archived&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This snapshot is point 4 in concrete form. Today, &lt;strong&gt;roughly 11% of the alternatives we list are not alive&lt;/strong&gt; — and on competitor sites, you'd see the same projects listed without that signal. We wouldn't have known either, if we hadn't run the scan.&lt;/p&gt;

&lt;p&gt;That's the point of the freshness wedge: a directory of self-host alternatives is only as good as its last freshness check.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next (and what's deliberately &lt;em&gt;not&lt;/em&gt; next)
&lt;/h2&gt;

&lt;p&gt;We're snapshotting on the 1st of every month, on a Vercel cron. The June 2026 snapshot will give us our first month-over-month diff: which alternatives flipped state since May. That diff is the real gold — alive→stale or alive→dead in 30 days is a much louder signal than a static "X projects are dead today".&lt;/p&gt;

&lt;p&gt;Two things we're explicitly &lt;em&gt;not&lt;/em&gt; shipping yet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;An RSS feed of state flips.&lt;/strong&gt; It needs at least two snapshots to be meaningful. Coming July.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A monthly digest email&lt;/strong&gt; with the diff. Same constraint, plus we'd like to see ≥20 subscribers before sending the first one. Form on the canonical post if you want it when it lands.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Until then, every category page on the site shows the freshness pill on each alternative, today. If you're paying for $SaaS and looking at an OSS replacement, a 30-second check of &lt;a href="https://code-rho-dun.vercel.app/" rel="noopener noreferrer"&gt;our directory&lt;/a&gt; tells you whether the replacement is worth the weekend.&lt;/p&gt;

&lt;p&gt;We'd rather you find out from us than from a &lt;code&gt;git clone&lt;/code&gt; followed by a confused stare at the last commit date.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>saas</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
