The long-term openElement direction is a WC SSR/SSG rendering kernel and component package protocol. A public registry hub should follow local indexing, manifests, validation artifacts, and security governance.
openElement can become a Web Components SSR/SSG rendering kernel and package protocol, but it should not promise automatic SSR, registration, and hydration for arbitrary Web Components. Automation must come from manifests, not runtime guessing.
| Reference | How openElement Uses It | What openElement Avoids |
|---|---|---|
| WHATWG HTML / DSD | Follow template attributes such as shadowrootmode as the SSR output base. | Do not replace platform semantics with private hydration markers. |
| Custom Elements Manifest | Use it as metadata for tags, attributes, properties, events, slots, parts, and CSS tokens. | Do not invent an incompatible component documentation format. |
| Open UI | Borrow vocabulary for parts, states, behavior, accessibility, and form semantics. | Do not turn openElement into an OpenWC template or Open UI implementation library. |
| OpenWC | Learn from testing, linting, demoing, and publishing history. | Do not adopt older test stacks, Rollup presets, or project templates as the main route. |
| Lit / FAST | Treat them as WC authoring models and adapter inputs. | Do not bind openElement's identity to one authoring library. |
| Scoped Custom Element Registries | Track future multi-version and duplicate-tag isolation. | Do not depend on it before browser and protocol support are stable. |
| CSS Houdini | Watch it as future styling and worklet adjacency. | Do not make Houdini part of the current renderer promise. |
| Capability | Credible Condition | Failure Behavior |
|---|---|---|
| One-command install | Package declares a manifest, schema passes, source and version are recorded. | Show a dry-run diff only; do not modify config. |
| Automatic registration | Manifest declares tag, module, export, and registration strategy. | Skip duplicate defines and report version conflicts. |
| Automatic rendering | Component declares ssr.renderable: true and a matching adapter exists. | Degrade to host element or pure island and record diagnostics. |
| Automatic hydration | Manifest declares hydrate strategy, events, selectors, and cleanup. | Keep static DSD HTML and bind no unknown events. |
| Hub listing | Consume manifest, SSR/SSG snapshots, bundle cost, tests, and a11y notes. | Hide unverified fields and do not trust README marketing text. |
v0.16 should not freeze the entire ecosystem protocol immediately, but it should define verifiable fields: package, version, components, tag, module, export, ssr, dsd, hydrate, events, slots, parts, states, tokens, diagnostics, and validation.
This direction is differentiated, but it is not a replacement for mainstream React/Vue app frameworks. The best-fit users are design system authors, Web Component package authors, docs/product site teams, Deno/Edge teams, and organizations that need internal component indexing and quality review.
PackageIslandMeta toward a CEM-compatible package manifest draft.less validate-manifest before open add.