Roadmap
Compose native Web UI with TSX, deliver HTML first, and run interaction when needed. Alpha16–18 plan compilation and safe delivery, function components, then component-level streaming.
From shipped evidence to v1.0 freeze.
0.43.x is the stable maintenance line; the 1.0 alpha line is current.
The stable maintenance line closed at 0.43.3. The current 1.0 alpha line serves 1.0.0-alpha.15 on npm's per-package latest dist-tag, with 1.0.0-alpha.15 as the repository baseline. 1.0 Alpha is the new baseline: Element and Router as the public core, Create as the supported entry, UI as experimental — with no supported migration from 0.x.
Per-package npm latest: protocol v1.0.0-alpha.15 · element v1.0.0-alpha.15 · compiler v1.0.0-alpha.15 · router v1.0.0-alpha.15 · create v1.0.0-alpha.15 · ui v1.0.0-alpha.15
Start real application use with the public baseline: independently consumable Element and Router with Native/Lit application flows. Element and Router are the public core, Create is the supported entry, UI is experimental. 1.0 Alpha is a fresh baseline with no supported migration from 0.x.
published to npm under the @alpha dist-tag — verify the live dist-tags with npm view @openelement/create dist-tagsThe browser still executes Part Programs, so the backend must prepare for new composition. Generate direct DOM mount/claim/update/dispose, separate public and private output, extend existing server functions with async/full-await composition, and target zero JS only where there is no actual client need. Keep existing behavior and cleanup. Full function authoring belongs to Alpha17; new component defer to Alpha18. ADR-0174 formally accepts the generated-code/runtime direction and amends ADR-0148; implementation remains pending. ADR-0171 records the output-safety direction.
Planning target; release depends on validationUse Signals and setup-once for stateful composition without an extra host: props, children, conditions, keyed lists, explicit CE exports and independent precompiled component packages. Validate one recommended entry, starters, docs and migration; general upgrade tooling and URL-prefix removal are separate work. OpenElement has no React Hooks and promises no Hooks/React compatibility; old classes remain compatible without an immediate rewrite. ADR-0173 formally accepts the composition direction and amends ADR-0143; implementation and consumer validation remain pending. The distribution contract is not frozen.
Planning target; recommendation changes after author and consumer validationExtend existing route/field channels to deferred component subtrees, coordinating CSS, scripts, failures, bounded resources, cancellation and navigation/HTML morph. Isolate stale responses and measure real deployment benefits, full-await and HTML fallback. No arbitrary nesting, forced termination of any user task, or universally script-free dynamic insertion is promised. Extend ADR-0158 resource/component contracts; material protocol changes get a successor record.
Planning target; default enablement requires correctness and benefit evidenceFreeze contracts and dependencies after Alpha evidence; require at least fourteen days of RC soak, install/upgrade/security qualification and human GO. Element and Router do not mandate a package count.
unscheduledScope is explicit.
In product
- JSX-first application API
- Declarative Shadow DOM rendering
- Routes, layouts, content, islands, and i18n
- Loaders and actions with progressive-enhancement forms
- CSRF floor on the action surface
- Nitro server output (Node + Workers) and SPA mode
- Locale-prefixed routing with Document and head ownership
- Verified package and release boundaries
Out of current scope
- Hub product language
- Registry Hub as a current product promise
- RPC, CEM, and interop adapter package promises
- Generic auth, ORM, or database platform claims
- Old package-count public graph language
Design rule
The public site is a working demonstration of the framework’s static-first output.
Roadmap language stays inside the product boundary.
The package graph is part of the release artifact.
- No driftMarketing language, docs, package exports, and CI gates must agree.
- Retired stays retiredArchived Hub-era promises and webpack-era shortcuts stay out of the current public product line.
- Scope in the openUsers should understand what is shipped, current, planned, and explicitly out of scope.