{
  "description": "Browse aymeric's, an independent, searchable archive of readable snapshots from followed feeds, preserved in Git with aggr.",
  "feed_url": "https://aggr.aymericbeaumet.com/sources/occupysaas.com/feed.json",
  "home_page_url": "https://aggr.aymericbeaumet.com/sources/occupysaas.com/",
  "items": [
    {
      "authors": [
        {
          "name": "misswaterfairy"
        }
      ],
      "content_html": "<p>Est. October 2026 · Apache-2.0</p>\n<p>OccupySaaS is a protest movement written in code. Laid-off engineers, armed with AI and public documentation, are building <strong>clean-room, open-source, drop-in replacements</strong> for the platforms that rent our own industry back to us — one seat at a time.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://occupysaas.com/assets/img/logo.png\" alt=\"OccupySaaS logo: a raised fist holds a laptop showing a code symbol above a crowd of protesters with placards, in front of SaaS company skyscrapers. Below, OCCUPY in red brush letters and SAAS in black.\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>We are the<br />\n1,000,000</p>\n<p>The grievances</p>\n<h2>The software built<br />\nby the 99% belongs<br />\nto the 99%.</h2>\n<p>In 2011, Occupy Wall Street asked who the economy was really working for. In 2026 we're asking the same question about the cloud. The tools every company runs on are now toll booths — and the people who built them were shown the door.</p>\n<p>Per-seat pricing is a <em>tax</em> on growth</p>\n<p>Every hire, every intern, every contractor — another line item. Infrastructure shouldn't charge rent by the head.</p>\n<p>Lock-in is not a <em>feature</em></p>\n<p>Proprietary APIs, export walls and surprise price hikes keep customers captive. Compatible open alternatives set them free.</p>\n<p>They cut us. We <em>commit</em>.</p>\n<p>A million engineers were let go while the platforms kept growing. We still know how to ship. Now we ship it in the open.</p>\n<p>The method</p>\n<h2>Clean room.<br />\nAI rebuild.<br />\nDrop-in.</h2>\n<p>We don't leak, decompile or copy anyone's code. Every project is rebuilt from public documentation and open standards, with AI doing the heavy lifting on the build side of a strict firewall — then proven compatible against the vendors' own public SDKs.</p>\n<ol>\n<li>\n<h3>Read the public record</h3>\n<p>Public API references, open standards (OAuth 2.0, OIDC, REST) and published SDK behaviour become a written specification. Nothing confidential, nothing leaked, nothing from former employers.</p>\n</li>\n<li>\n<h3>Raise the firewall</h3>\n<p>Spec writers and builders stay separated. Each repo carries a <code>CLEAN_ROOM.md</code> policy, and provenance is recorded for every fixture and reference.</p>\n</li>\n<li>\n<h3>Rebuild with AI</h3>\n<p>AI agents implement from the spec alone — contracts first (<code>openapi.yaml</code>), then code, then tests — under human review at every merge.</p>\n</li>\n<li>\n<h3>Prove compatibility</h3>\n<p>A compatibility laboratory runs the vendors' own public client SDKs against our server. If your existing code doesn't work unchanged, it isn't done.</p>\n</li>\n<li>\n<h3>Release it to everyone</h3>\n<p>Apache-2.0. Self-hostable. Pluggable storage. No telemetry you didn't ask for, and no seat counter.</p>\n</li>\n</ol>\n<h4>Allowed in →</h4>\n<ul>\n<li>Public API docs</li>\n<li>Open standards &amp; RFCs</li>\n<li>Public SDK behaviour</li>\n<li>Black-box test results</li>\n</ul>\n<p>Clean room</p>\n<h4>× Never allowed</h4>\n<ul>\n<li>Leaked or proprietary source</li>\n<li>Decompiled binaries</li>\n<li>Former-employer confidential info</li>\n<li>Copied UI assets or trademarks</li>\n</ul>\n<p>First releases</p>\n<h2>Two towers<br />\noccupied.</h2>\n<p>Identity and CRM: the two subscriptions almost every company pays for and almost nobody loves. Both are early, both are public, and both welcome contributors today.</p>\n<p>Early · in the open Go</p>\n<h3>ZeroAuthy</h3>\n<p>Replaces</p>\n<p>Auth0</p>\n<p>A self-hostable identity server that speaks the Auth0 Authentication API. Point an existing Auth0 SDK at a ZeroAuthy tenant domain and it works with no code changes.</p>\n<ul>\n<li>OIDC discovery, JWKS &amp; multi-tenant domains</li>\n<li>Hosted login, authorization code + PKCE</li>\n<li><code>client_credentials</code>, rotating refresh tokens, revoke &amp; logout</li>\n<li>Verified with auth0-spa-js, auth0-react &amp; nextjs-auth0</li>\n</ul>\n<pre><code><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> build &amp; run</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> go build<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>o</span> bin/zeroauthy ./cmd/zeroauthy</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> ./bin/zeroauthy serve<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>config</span> config.yaml</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> curl https://localhost:8443/.well-known/openid-configuration</span>\n</span></span></code></pre>\n<p>SQLite PostgreSQL MySQL gRPC plugins Apache-2.0</p>\n<p>Early · in the open Go · Vue · TypeScript</p>\n<h3>SalesCompel</h3>\n<p>Replaces</p>\n<p>Salesforce</p>\n<p>A free, open-source Salesforce replacement with a tenant-isolated Go/PostgreSQL core, a Vue record editor, and a compatibility laboratory that checks behaviour against Salesforce's public API contract.</p>\n<ul>\n<li>Persistent Account &amp; Contact CRUD</li>\n<li>Object <code>describe</code> and limited queries</li>\n<li>External-ID upsert &amp; bearer authentication</li>\n<li>OpenAPI 3.2 REST contract &amp; offline test lab</li>\n</ul>\n<pre><code><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> run the compatibility laboratory</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> npm ci<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>prefix</span> compat/clients/node<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>ignore-scripts</span></span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> npm<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>prefix</span> compat/clients/node run check</span>\n</span></span></code></pre>\n<p>PostgreSQL Multi-tenant REST i18n Apache-2.0</p>\n<p>The occupation map</p>\n<h2>Who's next?</h2>\n<p>Every category on this board is a monthly invoice somewhere. The movement picks the next target in public — bring a spec, a use case, or a grudge.</p>\n<p>● Occupied</p>\n<h3>Identity &amp; Auth</h3>\n<p>ZeroAuthy — Auth0-compatible login, tokens and tenants.</p>\n<p>● Occupied</p>\n<h3>CRM</h3>\n<p>SalesCompel — Salesforce-compatible records and REST API.</p>\n<p>○ Proposed</p>\n<h3>Docs &amp; Wikis</h3>\n<p>Team knowledge bases that don't lock your writing behind a seat licence.</p>\n<p>○ Proposed</p>\n<h3>Issue Tracking</h3>\n<p>Tickets, sprints and boards with a compatible API for existing integrations.</p>\n<p>○ Proposed</p>\n<h3>Feature Flags</h3>\n<p>SDK-compatible flag evaluation you can run next to your own services.</p>\n<p>○ Proposed</p>\n<h3>Observability</h3>\n<p>Logs, metrics and traces without per-gigabyte ransom notes.</p>\n<p>○ Proposed</p>\n<h3>Customer Support</h3>\n<p>Help desk, inbox and knowledge base, priced at zero agents.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/occupysaas/website/issues/new?title=Target%20proposal%3A%20&amp;body=Which%20SaaS%20should%20we%20occupy%20next%2C%20and%20why%3F\">+ Your pick</a></p>\n<h3>Propose a target</h3>\n<p>Open an issue and make the case.</p>\n<p>Proposed categories are open for discussion, not commitments. Names of existing products are used only to describe compatibility.</p>\n<p>Lineage</p>\n<h2>From Zuccotti Park<br />\nto git push.</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://en.wikipedia.org/wiki/Occupy_Wall_Street\">Occupy Wall Street</a> began on 17 September 2011 in Zuccotti Park, New York City, with a simple frame: the 1% and the 99%. It had no leaders, made decisions in open assemblies, and spread to hundreds of cities.</p>\n<p>OccupySaaS borrows that spirit and swaps tents for terminals. No marches, no property damage — just working software, published under an open licence, that anyone can run.</p>\n<blockquote>\n<p>“We are the 99%.”</p>\n</blockquote>\n<ol>\n<li>\n<p>17 Sep 2011 <strong>Occupy Wall Street begins</strong></p>\n<p>Protesters set up camp in Zuccotti Park in Manhattan's Financial District.</p>\n</li>\n<li>\n<p>Oct 2011 <strong>The movement spreads</strong></p>\n<p>Occupy camps and general assemblies appear in cities around the world.</p>\n</li>\n<li>\n<p>15 Nov 2011 <strong>Zuccotti Park is cleared</strong></p>\n<p>The camp ends; the language of the 1% and the 99% doesn't.</p>\n</li>\n<li>\n<p>2022 – 2025 <strong>The great tech layoffs</strong></p>\n<p>Wave after wave of cuts across the industry while subscription prices keep climbing.</p>\n</li>\n<li>\n<p>14 Oct 2026 <strong>ZeroAuthy goes public</strong></p>\n<p>The first clean-room rebuild opens its repo under Apache-2.0.</p>\n</li>\n<li>\n<p>15 Oct 2026 <strong>SalesCompel joins the occupation</strong></p>\n<p>The second tower. More to come — decided in the open.</p>\n</li>\n</ol>\n<p>Join</p>\n<h2>Occupy everything.</h2>\n<p>You don't need permission, a badge or a manager. You need a laptop and an afternoon.</p>\n<h3>Write code</h3>\n<p>Pick an open issue, follow the clean-room policy, open a pull request.</p>\n<h3>Self-host it</h3>\n<p>Run a release against your real SDKs and tell us exactly where it breaks.</p>\n<h3>Write specs</h3>\n<p>Turn public docs into precise, testable specifications for the builders.</p>\n<h3>Make noise</h3>\n<p>Star the repos, share the site, and tell your CFO what you're paying per seat.</p>\n<p>Questions</p>\n<h2>Fair questions.</h2>\n<p>Is this legal?</p>\n<p>Clean-room reimplementation is a long-established way to build compatible software: you work only from public information and independently write your own code. Interoperating with an API is not the same as copying a product. Each project publishes its clean-room policy and source provenance so anyone can check the work. This page isn't legal advice; if you're adopting a project for a business, talk to your own counsel.</p>\n<p>Are you affiliated with Auth0, Okta or Salesforce?</p>\n<p>No. OccupySaaS and its projects are independent and not affiliated with, endorsed by, or sponsored by any vendor named on this site. Product names are used only to describe compatibility.</p>\n<p>Can former employees of those companies contribute?</p>\n<p>Yes, but never with confidential knowledge from a former employer. Contributors work only from public material, and anyone with relevant inside knowledge should stay on the public-spec side of the firewall or sit that project out. When in doubt, read the project's <code>CLEAN_ROOM.md</code> and ask first.</p>\n<p>Why use AI to build it?</p>\n<p>Because the giants had thousands of engineers and we have a movement. AI agents let a small group turn a precise spec into working code quickly. Humans write the specs, review every change, and own the result, and compatibility tests against real SDKs decide what counts as done.</p>\n<p>Why Go?</p>\n<p>Portability. A Go project compiles to a single self-contained binary, so self-hosting means dropping one file onto a server or into a Docker or Podman image — no installer, no runtime to set up, no tree of shared libraries to keep in sync. The same toolchain cross-compiles for Linux, macOS, Windows, x86 and ARM, and the result fits in a minimal container image. If you're leaving a SaaS vendor, the replacement should be this easy to carry.</p>\n<p>Why not Rust?</p>\n<p>Nothing is wrong with Rust, and we're not against it. Go was picked for the first projects because it makes the one-file, container-friendly drop-in the default with very little build setup. Rust can get there too; Go just gets there more simply for the kind of servers we're building.</p>\n<p>Rust recreations of these projects are welcome — they just haven't been made yet. The specs, API contracts and compatibility tests are language-neutral, so a Rust port can be checked against the same SDKs. If you want to start one, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/occupysaas/website/issues/new?title=Rust%20port%3A%20\">open an issue</a> and say which project.</p>\n<p>Is it production-ready?</p>\n<p>Not yet. Both first projects are early and say so plainly in their READMEs, along with exactly which features work today. Try them, break them, and file issues.</p>\n<p>What does it cost?</p>\n<p>Nothing. Every project is released under the Apache License 2.0. Run it, fork it, sell services around it. The only thing we ask is that you contribute back what you can.</p>\n",
      "date_modified": "2026-11-02T00:17:27+00:00",
      "date_published": "2026-11-02T00:17:27+00:00",
      "external_url": "https://occupysaas.com/",
      "id": "urn:aggr:item:250c77a220423f9e910abf50667a1d3b266721ae",
      "image": "https://occupysaas.com/assets/img/og.jpg",
      "summary": "Est. October 2026 · Apache-2.0 OccupySaaS is a protest movement written in code. Laid-off engineers, armed with AI and public documentation, are building clean-room, open-source, drop-in replacements for the platforms that rent our own…",
      "tags": [
        "news"
      ],
      "title": "OccupySaaS",
      "url": "https://aggr.aymericbeaumet.com/items/hnrss-org/2026-11-02-occupysaas/"
    }
  ],
  "language": "en",
  "title": "occupysaas.com",
  "version": "https://jsonfeed.org/version/1.1"
}