Product
@openelement/app
5 exportsJSX-first framework API for pages, layouts, islands, SPA bootstrap, i18n, and the Vite facade.
@openelement/app, @openelement/app/spa, @openelement/app/preact- Exports: ., ./spa, ./i18n, ./i18n-plugin, ./preact
- Use `definePage`, `defineIsland`, `defineElement`, and `defineLayout` for app authoring.
- Alpha.5 adds first-class `defineApp({ mode: "spa" })` client bootstrap.
- Use `@openelement/adapter-vite/app-vite` or generated create tasks from Vite config.
Supporting
@openelement/router
4 exportsRuntime-free route support behind the framework, including data context and client routing.
@openelement/router/client-router- Exports: ., ./data-context, ./i18n, ./client-router
- Alpha.5 exposes the client router used by SPA mode.
- Route params are protected against prototype poisoning and guard redirects are cycle-limited.
- Most app authors reach this package through `@openelement/app`.
Product
@openelement/element
3 exportsCanonical component authoring facade for OpenElement, StyleSheet, signals, islands, JSX, and VNode types.
@openelement/element- Exports: ., ./open-element-render, ./open-element-hydration
- Start here for product-facing native Web Component authoring.
- Shadow/DSD is the default render mode; light DOM remains explicit opt-in.
- Re-exports low-level primitives so app code does not import kernel internals first.
Supporting
@openelement/ui
11 exportsFirst-party `open-*` Web Components and Open Props token foundation used by the docs site.
@openelement/ui/open-layout- Exports: ., ./open-button, ./open-card, ./open-input, ./open-brand-mark, ./open-layout, ./open-theme-toggle, ./open-dropdown, ./open-modal, ./open-tabs, ./open-props-tokens
- `open-brand-mark` is the current `<open/>` brand primitive.
- The UI package exports a CEM-compatible manifest for package island scanning.
- Alpha.5 keeps tokens aligned to Open Props plus semantic aliases.
Supporting
@openelement/core
12 exportsLow-level runtime kernel for JSX, VNode rendering, DSD, hydration, StyleSheet, errors, and trust boundaries.
@openelement/core/static, @openelement/core/style-sheet- Exports: ., ./static, ./hydrate, ./csr, ./prop, ./errors, ./context, ./logger, ./style-sheet, ./html-escape, ./jsx-runtime, ./dsd-hydration
- Runtime-free public code: no `Deno.*` or `node:*` APIs in the public package surface.
- Use `@openelement/element` first for component authoring.
- Core owns the escaping and explicit trusted HTML boundary.
Supporting
@openelement/protocol
11 exportsShared type contracts for render, hydration, manifest, data, runtime, errors, prop, island, and SSG shapes.
@openelement/protocol/ssg- Exports: ., ./signal, ./vnode, ./render, ./manifest, ./framework, ./data, ./ssg, ./errors, ./island, ./prop
- Alpha.5 defines BuildPlan, BuildArtifacts, and resolver contract shapes here.
- This package stays runtime-free and exists to keep package boundaries explicit.
- Deep imports are alpha-line contracts and should stay synchronized with package surface docs.
Supporting
@openelement/signal
3 exportsReactive primitive layer built on `@preact/signals-core` with framework integration hooks.
@openelement/signal- Exports: ., ./framework, ./preact-engine
- Exports signal, computed, and effect primitives at the package root.
- Framework integration is isolated under `./framework`.
- Preact engine wiring stays optional and explicit.
Supporting
@openelement/content
6 exportsBuild-time Markdown, MDX, blog data, navigation metadata, sitemap, and robots support.
@openelement/content/mdx- Exports: ., ./blog-data, ./mdx, ./nav, ./sitemap, ./write-json
- Normal apps configure content through `openElement()` rather than runtime imports.
- MDX compiles into the same JSX/DSD path as application code.
- Build/server glue may use Deno or Node APIs.
Supporting
@openelement/ssg
1 exportsAdapter-agnostic static site generation engine for route scanning, entry generation, rendering, and postprocess.
@openelement/ssg- Exports: .
- Alpha.5 owns `build(plan) -> artifacts` and `prepareBuildPlan()` policy orchestration.
- It depends on core/router/content concepts, never on Vite.
- Adapters delegate framework build policy to this engine.
Supporting
@openelement/adapter-vite
8 exportsVite/Nitro bridge that scans projects, prepares build plans, emits client assets, and delegates SSG work.
@openelement/adapter-vite/plugin- Exports: ., ./plugin, ./route-manifest, ./generated-data-resolver, ./subpath-resolver, ./cli/build, ./cli/build-client, ./cli/build-ssg
- Alpha.5 keeps this package thin: Vite glue here, framework policy in `@openelement/ssg`.
- Resolver helpers cover workspace aliases, package subpaths, and npm/jsr export maps.
- Public helpers prefer Node APIs where npm consumers invoke builds directly.
Product
@openelement/create
2 exportsStarter generator and consumer entry for creating new openElement projects.
npm:@openelement/create- Exports: CLI binary, ./cli.ts
- Use it for first-run project scaffolding.
- Generated projects should consume the framework facade rather than adapter internals.
- Starter output is part of the beta.1 adoption freeze path.