Make porting a normal web app mechanical — Sandstorm's postmortem lesson is that porting friction kills the ecosystem, and this design asks more of app authors than Sandstorm did. See NOTES.md — Developer experience.
Directions:
- A componentize-js SDK:
fetch shim → capability-checked host fetch; storage shim (IndexedDB/KV-shaped) → framework data services; templates (polymorph create-app). In-family precedent: webcrypto-componentize (crypto.subtle over WIT imports).
- A WIT-first surface for component-native developers (Rust, …) in parallel.
- The embedded-UI story: asset pipeline (bundle → srcdoc/blob injection), and a dev loop (local shell, hot reload, capability mocks).
Open sub-questions:
- Target persona and budget split: JS devs porting web apps vs component-native devs — this decides where SDK effort goes first.
- How much of the web platform the shims must cover before "just port it" is honest (routing? workers? WebSocket?).
- App packaging/manifest format (interacts with the network-capabilities manifest) and signing/distribution (app stores? URLs? content-addressed?).
- Testing story for apps: what of the polymorph:test stack is reusable for app authors.
Make porting a normal web app mechanical — Sandstorm's postmortem lesson is that porting friction kills the ecosystem, and this design asks more of app authors than Sandstorm did. See NOTES.md — Developer experience.
Directions:
fetchshim → capability-checked host fetch; storage shim (IndexedDB/KV-shaped) → framework data services; templates (polymorph create-app). In-family precedent: webcrypto-componentize (crypto.subtle over WIT imports).Open sub-questions: