An entry point for anyone browsing. This repo is an experiment: build out-of-tree plugins for JavaScript Solid Server on the #206 loader, and treat every wall as a finding about what the plugin api is missing.
Where it stands
- 33 plugins, 386 tests, all green (
npm test); compose.test.js boots all 33 on one server, serve.js is the runnable demo (front door: /admin/).
- Capability classes: realtime, DAV family, fediverse/social/chat (5 shims), IndieWeb publishing, identity, query/search, object storage, proxy, dev tooling, pay, data portability, ops/observability, mail (JMAP), link-embeds (oEmbed), remoteStorage, operator admin.
The docs (read in this order)
- AGENT.md — how to build a plugin (the contract, the five patterns, the copy-map, the footguns).
- NOTES.md — the findings log: every wall, ranked by how many plugins independently demanded the seam.
- REPORT.md — the maintainer-facing summary: the four api seams to add next (
authorize, events, reservePath, serverInfo) + api.plugins, each fileable, with consumers/sketch/cost.
- STRATEGY.md — where this sits vs WordPress/Nextcloud/ATProto PDS, and the realistic play.
- SECURITY.md — the four-axis audit: what was found, fixed, and accepted-as-risk.
Filed upstream (core)
Five loader/core bugs found during this work: JavaScriptSolidServer#596–#600 (id derivation, dotted-prefix WS, logger:false vs onResponse hooks, error-wrap drops err.code, and the non-atomic conditional write — the one with data-loss consequences).
Open here
The api seams (not filed upstream yet)
The four seams in REPORT.md are the highest-value core additions. They are not filed on the core repo yet — that's a maintainer decision. REPORT.md is the draft.
Where it's going
Distribution is the gap (STRATEGY.md): a Dockerfile + Umbrel/CasaOS manifest, a public demo instance, and leading with the "one pod, every protocol" demo rather than the spec. Contributions welcome — see the plugin-idea issues and AGENT.md.
An entry point for anyone browsing. This repo is an experiment: build out-of-tree plugins for JavaScript Solid Server on the #206 loader, and treat every wall as a finding about what the plugin api is missing.
Where it stands
npm test);compose.test.jsboots all 33 on one server,serve.jsis the runnable demo (front door:/admin/).The docs (read in this order)
authorize,events,reservePath,serverInfo) +api.plugins, each fileable, with consumers/sketch/cost.Filed upstream (core)
Five loader/core bugs found during this work: JavaScriptSolidServer#596–#600 (id derivation, dotted-prefix WS,
logger:falsevs onResponse hooks, error-wrap dropserr.code, and the non-atomic conditional write — the one with data-loss consequences).Open here
The api seams (not filed upstream yet)
The four seams in REPORT.md are the highest-value core additions. They are not filed on the core repo yet — that's a maintainer decision. REPORT.md is the draft.
Where it's going
Distribution is the gap (STRATEGY.md): a Dockerfile + Umbrel/CasaOS manifest, a public demo instance, and leading with the "one pod, every protocol" demo rather than the spec. Contributions welcome — see the plugin-idea issues and AGENT.md.