diff --git a/docs/sexpr-risks-and-pitfalls.md b/docs/sexpr-risks-and-pitfalls.md new file mode 100644 index 0000000..e503ffb --- /dev/null +++ b/docs/sexpr-risks-and-pitfalls.md @@ -0,0 +1,86 @@ +# S-expression Protocol: Risks and Pitfalls + +**Bear traps, historical precedents, and honest assessment of what could go wrong.** + +--- + +## Adoption Chicken-and-Egg + +No one builds clients for a protocol no one serves. No one serves a protocol no one has clients for. HTTP won despite technically inferior alternatives because it was *there*. The Tier 0 strategy (sexp rendered to HTML by the server) is the right answer — you don't need anyone to adopt anything on day one. But the jump from Tier 0 to Tier 1/2 requires a critical mass of sites serving sexp, and that's historically where alternative protocols die. + +--- + +## Security Surface Area + +Evaluating arbitrary sexp from a remote server is `eval()` with s-expressions. Sandboxing matters enormously. What can a component do? Can it access localStorage? Make network requests? Read other components' state? HTML's security model (same-origin policy, CSP, CORS) took 20 years of CVEs to get to where it is. You'd need an equivalent — and you'd need it from day one, not after the first exploit. The "components are functions" model is powerful but "functions from strangers" is the oldest trap in computing. + +--- + +## Accessibility + +HTML's semantic elements (`