|
| 1 | +# STRATEGY.md — where this sits, and whether it has a shot |
| 2 | + |
| 3 | +Companion to [REPORT.md](./REPORT.md) (what to build into the api next). |
| 4 | +This file answers the other question: **where does a JSS + plugins stack |
| 5 | +sit in the ecosystem, what's missing, and what's the realistic play?** |
| 6 | +Written 2026-07, at 33 plugins / 374 tests. |
| 7 | + |
| 8 | +## The one-line position |
| 9 | + |
| 10 | +**One data plane, many protocol views.** A single small Node process |
| 11 | +where your data lives once — and Mastodon clients, Bluesky clients, |
| 12 | +Element, CalDAV phones, IndieWeb editors, remoteStorage apps, aws-cli, |
| 13 | +JMAP mail clients, nostr, and WebDAV mounts are all just *views of the |
| 14 | +same pod*, each behind WAC. `serve.js` runs this today. Nothing else in |
| 15 | +the ecosystem does. |
| 16 | + |
| 17 | +## Head-to-head with the incumbents |
| 18 | + |
| 19 | +| | **JSS + plugins** | **WordPress** | **Drupal** | **Nextcloud** | |
| 20 | +|---|---|---|---|---| |
| 21 | +| Core domain | personal data server (pods, WAC, identity) | CMS/publishing | CMS/framework | file sync + groupware | |
| 22 | +| Plugin model | route-ownership + loopback; plugins **cannot** touch core's pipeline (measured, [NOTES.md](./NOTES.md) #564) | hooks/filters everywhere — plugins *are* pipeline modification | hook system, heavyweight | PHP apps, signed, runtime enable/disable | |
| 23 | +| Ecosystem size | 33 | ~60,000 plugins, 20 years | ~50,000 modules, declining | ~300–400 apps | |
| 24 | +| Marketplace / install | none — boot-time config (the #200 gap) | wp.org + one-click + auto-update | drupal.org | in-app store, `occ app:enable` | |
| 25 | +| Admin | read side ✅ (`admin/`), write side impossible — each absence names a seam | the gold standard | strong | strong | |
| 26 | +| Identity | WebID / did:nostr / Bearer — protocol-grade | email+password | email+password | email+password, LDAP/SSO | |
| 27 | +| Protocol reach | Mastodon, Bluesky, Matrix, AP, JMAP, DAV×3, S3, remoteStorage, Micropub, oEmbed, WebFinger, nostr — one pod behind all | RSS + REST | similar | DAV family, some AP via app | |
| 28 | + |
| 29 | +The architecture comparison flatters JSS: WordPress's hook soup is |
| 30 | +exactly what the #564 line forbids, and it's why WP plugins conflict and |
| 31 | +are a security tar pit. But architecture has never been why WordPress |
| 32 | +wins. **Distribution is.** |
| 33 | + |
| 34 | +## The ecosystem map |
| 35 | + |
| 36 | +Grouped by distance from what JSS actually is: |
| 37 | + |
| 38 | +**Same square — personal data servers with a protocol identity** |
| 39 | + |
| 40 | +| Project | Note | |
| 41 | +|---|---| |
| 42 | +| ATProto PDS (+ Tranquil, Cocoon) | closest live competitor for "PDS" mindshare; real momentum, genuinely easy self-hosting — but single-protocol | |
| 43 | +| Solid siblings (CSS, Inrupt ESS, NSS) | spec-complete, app-light, a decade of that; none has a plugin ecosystem — that is JSS's differentiator *within* Solid | |
| 44 | +| Nostr relays (strfry, nostream…) | event stores, no personal data plane; JSS embeds a relay as one plugin | |
| 45 | +| remoteStorage / 5apps | near-dormant; `remotestorage/` here may be among the more complete servers anywhere | |
| 46 | +| Peergos | strong E2E-crypto story, weak protocol-bridge story | |
| 47 | + |
| 48 | +**Adjacent — self-hosted groupware/CMS**: Nextcloud (the giant), |
| 49 | +ownCloud/oCIS, Seafile; WordPress/Drupal on the publishing side. They |
| 50 | +win on distribution and end-user UI, not architecture. |
| 51 | + |
| 52 | +**Adjacent — "run apps on your box" platforms**: Umbrel (the app-store |
| 53 | +UX bar), CasaOS/Cosmos (lowest-friction onboarding), YunoHost (best |
| 54 | +operator experience — built-in SSO is what the `api.isOperator` finding |
| 55 | +gestures at), Cloudron/Start9 (packaging-as-product), Sandstorm (the |
| 56 | +philosophical cousin — capability-secure, effectively frozen, no |
| 57 | +successor). Key structural difference: these run apps as **isolated |
| 58 | +containers side by side** — apps don't share data. JSS is the inverse. |
| 59 | + |
| 60 | +**Adjacent — single-protocol servers people actually self-host**: |
| 61 | +Mastodon/GoToSocial, Matrix (Synapse/Conduit), Owncast, micro.blog. |
| 62 | +Each is one protocol and one silo. The pitch to exactly these users: |
| 63 | +*one* small process instead of five, one identity, one `backup/`. |
| 64 | + |
| 65 | +## Why the square is empty (the graveyard) |
| 66 | + |
| 67 | +It is not sparse because nobody noticed it. FreedomBox, Diaspora, |
| 68 | +Unhosted/remoteStorage, Sandstorm, arguably a decade of Solid itself — |
| 69 | +smart people kept entering this square and finding that technology was |
| 70 | +never the bottleneck. **Demand and distribution were.** Most people |
| 71 | +won't run a server; the ones who will already have opinions. An empty |
| 72 | +square can be an opportunity or a kill zone; this one has been both. |
| 73 | + |
| 74 | +## What changed (why now is different) |
| 75 | + |
| 76 | +1. **The concept has mainstream legs.** Bluesky made "PDS" a word. |
| 77 | + Nobody must explain *why* you'd want your own data server the way |
| 78 | + Diaspora had to in 2011. |
| 79 | +2. **The homelab wave built the rails.** Umbrel/CasaOS/YunoHost users |
| 80 | + already run boxes and browse app stores. The habit exists; be in the |
| 81 | + catalog. |
| 82 | +3. **The build cost collapsed.** What killed most graveyard projects |
| 83 | + was ecosystem starvation — years to twenty apps. This repo added |
| 84 | + eleven protocol implementations in a day, each ~one agent-session, |
| 85 | + findings included ([AGENT.md](./AGENT.md) is the contract that makes |
| 86 | + that repeatable). The historical moat — thousands of developer-years |
| 87 | + of plugins — deflates when plugins cost hours. This is the one |
| 88 | + structural trend running in our favor. |
| 89 | + |
| 90 | +## The honest gaps (ours) |
| 91 | + |
| 92 | +1. **Distribution** — no marketplace, no one-click hosting, no |
| 93 | + auto-update. 90% of why WordPress is WordPress. (#200 + the |
| 94 | + runtime-lifecycle seam in REPORT.md.) |
| 95 | +2. **End-user UI** — everything here is protocol surface. WP gives a |
| 96 | + human a website; Nextcloud gives them files; a pod gives them a URL. |
| 97 | + Solid's decade-old killer-app problem. |
| 98 | +3. **Identity UX** — WebID/bearer beats passwords technically and loses |
| 99 | + at onboarding every time. |
| 100 | +4. **Trust signals** — 0.0.x versioning; no third-party-plugin security |
| 101 | + story (and plugins can intercept each other today — NOTES.md #9). |
| 102 | +5. **Bodies** — one maintainer + agents vs. twenty-year communities. |
| 103 | + (But see "what changed", point 3.) |
| 104 | + |
| 105 | +## The play |
| 106 | + |
| 107 | +**Not** a WordPress/Nextcloud competitor. The realistic wedge, in order: |
| 108 | + |
| 109 | +1. **Lead with the demo nobody else can run** — one pod, every |
| 110 | + protocol, live (`npm run serve`, front door `/admin/`). This is the |
| 111 | + asset; Solid-the-spec is not the pitch. |
| 112 | +2. **Ride existing networks' onboarding** — Bluesky PDS self-hosters |
| 113 | + and Nostr users are the two crowds already primed to run a personal |
| 114 | + server. Be the PDS that *also* does their calendar, files, mail. |
| 115 | +3. **Get into the catalogs** — one Umbrel/CasaOS/YunoHost app that |
| 116 | + replaces five. The rails exist; use them. |
| 117 | +4. **Close the self-description loop** — the four seams + `api.plugins` |
| 118 | + (REPORT.md's order of work), then a registry/marketplace story, so |
| 119 | + the ecosystem can grow and describe itself. |
| 120 | +5. **Keep the findings discipline.** The repo's real moat is not the 33 |
| 121 | + plugins; it's the measured, evidence-per-claim method that produced |
| 122 | + them and can produce the next 33. |
| 123 | + |
| 124 | +## Verdict |
| 125 | + |
| 126 | +An uncrowded space with a high body count, entered at the first moment |
| 127 | +all three historical causes of death — no demand, no distribution, no |
| 128 | +ecosystem — are weakening at once. The technology position is genuinely |
| 129 | +strong and the ecosystem-growth cost just dropped by orders of |
| 130 | +magnitude. The execution risk lives almost entirely in distribution and |
| 131 | +onboarding, not in anything built in this repo. That's a real shot. |
0 commit comments