Skip to content

Repository files navigation

openElement

English | Simplified Chinese

A Web Components-native, static-first application framework. Custom Elements are the durable application contract; JSX and Basic Element are the authoring layer; Declarative Shadow DOM is the default server representation; interactive regions upgrade selectively.

Source package line: 0.42.0-alpha.15 (v0.42.0-alpha.15) — the in-flight five-package source line under ADR-0119's scoped interface freeze; the abandoned beta naming is not an active line. npm registry line: v0.42.0-alpha.15 — the published five-package release. The registry line is allowed to lag the source line by one alpha.

License: MIT Deno npm CI

Current product

OpenElement = Web Components-native fullstack application framework
current proven scope = static-first applications with fullstack output paths
official build path = Vite + Nitro

The current consumer graph has five packages:

Package Role
@openelement/element JSX, Custom Elements, DSD, hydration, signals and component runtime contracts
@openelement/app Pages, routes, loaders, actions, islands and normalized request semantics
@openelement/adapter-vite Vite, content, SSG, generated data, Hono and Nitro build/deploy implementation
@openelement/create Version-coherent starter generation and consumer lifecycle
@openelement/ui Optional, reusable and dogfood-proven Web Component primitives

(Role wording follows docs/current/STACK_CONTRACT.md, the source of truth.)

The former core, signal, router, protocol, content and ssg packages are implementation history, not supported consumer imports.

Why openElement

Use OpenElement when a standard Custom Element should remain the same component contract in a standalone library and in a complete application. It combines native element authoring with routing, static generation, DSD, selective upgrades and deployable output without making a framework-specific virtual DOM the enduring UI model.

The strategic target is WC fullstack leadership, earned through WC SSR compatibility evidence, third-party element interop, portable deployments and external adoption. It is not presented as an already-achieved market claim.

Current release state

The five-package convergence is published as stable 0.41.0. npm beta.1 through beta.3 remain withdrawn partial artifacts and are not compatibility baselines. The third audit sweep completed in alpha.19 (see ADR-0118), and the #390 pilot was retired by maintainer decision after zero recruitment (see ADR-0119).

0.42 = WC light fullstack. The 0.42.0 alpha line ships the request-time Application Loop: dynamic loader/action routes, no-JS + enhanced forms, build → start, fail-closed static prerender and a default same-origin CSRF check on generated action POSTs. Login apps are supported via the better-auth recipe on Web-standard Request headers.

Explicitly not in the 0.42 claim (ADR-0122 §5): framework session/flash, cache/ISR, streaming SSR, performance SLOs, the third-party WC SSR corpus (0.43), production runtime recovery (0.44) and auth packages. The current promise is static-first applications with fullstack output paths—not broad fullstack parity.

The 1.0.0 path is a stable five-package product after the application loop, WC SSR, production runtime and external-adoption evidence are complete.

Start

deno run -A --minimum-dependency-age 0 npm:@openelement/create@alpha my-app
cd my-app
deno task dev

The @alpha dist-tag pins the current 0.42 alpha line (untagged npm:@openelement/create resolves to the 0.41.x stable line), and --minimum-dependency-age 0 is needed because Deno's default minimumDependencyAge (~24h) refuses packages published within the last day.

The generated application exposes dev, check, test, build, start and preview.

Documentation

Section Link
Guide openelement.org/guide/getting-started
API reference openelement.org/apilist
Architecture openelement.org/architecture/architecture
Roadmap docs/roadmap/ROADMAP.md
Current status docs/status/STATUS.md

Mandatory project workflow: docs/governance/PROJECT_WORKFLOW.md.

Contributing

See CONTRIBUTING.md. Architecture decisions live in docs/adr/; historical release and audit records remain available as evidence, not current product documentation.

Brand

The canonical compact mark is the dark <open/> SVG in www/public/favicon.svg (open-favicon-inverted.svg is the maintained light-surface variant). Brand SVGs are distributed under the repository MIT license; forks may reuse them with attribution but should not imply endorsement.

License

MIT