Native-first application orchestration
Build for the web.
Scale with
Web Components.
XTend keeps small HTML projects simple, then adds declarative orchestration, diagnostics, and controlled remote surfaces when your product grows.
- Browser-nativeStandards before framework lock-in
- Local-firstSame-origin modules and manifests
- Accessible by contractKeyboard, motion, and screen-reader policies
- Auditable releasesDeterministic gates and production evidence
One native-first toolkit
A small entry point, not a small ceiling.
Start with semantic HTML, familiar ESM JavaScript or TypeScript, or declarative RMT without closing the path to a larger application tomorrow.
01
Native UI
Load owned Web Components from a local manifest and compose them directly in semantic HTML.
- No required UI framework
- Themeable component contracts
- Viewport-aware loading
02
Declarative applications
Move state, actions, resources, routes, and surfaces into reviewable RMT source when complexity grows.
- Compiler and language tooling
- Browser and server adapters
- Maraca production builds
03
Production evidence
Keep scheduling, diagnostics, security decisions, and release readiness visible instead of implicit.
- Fabric lanes and reporters
- Accessibility and security gates
- Deterministic verification
Progressive architecture
Choose the runtime path you need.
XTend Classic, the ESM Registry, and XTend Maraca share the same local, inspectable component and orchestration foundation.
XTend Classic
HTML, JavaScript, and manifest-driven Web Components
Author regular HTML, preload the first viewport, and let xtend-loader.js register deeper components as they approach the viewport.
Best for: landing pages, documentation, progressive enhancement, and small application shells.
Learn XTend Classic →
ESM Registry
Named imports for JavaScript and TypeScript applications
Import scheduling, rendering, typed app and store APIs from @ccslabs/xtend, then boot the RMT orchestration host once with await readyXTend().
Imports stay side-effect-free, while browser, bundler, Vite, and DOM-neutral SSR projects use the same concise API.
Best for: JavaScript and TypeScript teams that want framework-style DX with native platform boundaries.
Explore the ESM Registry →
Application platform
RMT source and Maraca builds
Compile declarative application records into optimized ESM bundles with explicit hydration, transitions, PWA policy, and production evidence.
Best for: stateful products, governed teams, reusable shells, and server-capable delivery.
Explore XTend Maraca →
Source to governed surface
Every layer has a visible responsibility.
XTend scales through explicit boundaries rather than hiding application behavior inside a monolithic runtime.
-
01
Author
Start in HTML or describe state, actions, events, resources, and surfaces in RMT.
-
02
Compose
Connect XTend UI, routing, browser capabilities, and host adapters without surrendering platform primitives.
-
03
Observe
Use Fabric lanes, fibers, reporters, and hydration policy to make runtime work measurable.
-
04
Scale safely
Let XScaler preflight remote code and XSurface Shard create lifecycle-owned, ATC-compatible handoffs.
ESM Registry · JavaScript and TypeScript
Start with the module workflow you already know.
Use the package root with a browser import map, Vite, or another ESM-aware bundler. The import is side-effect-free; readiness explicitly starts the orchestration kernel.
import {
readyXTend,
createApp,
schedule,
render
} from '@ccslabs/xtend';
await readyXTend();
const app = createApp({ initialState: { count: 0 } });
schedule(() => render(document.querySelector('#app'), {
type: 'element',
tag: 'strong',
children: [{ type: 'text', text: String(app.getState().count) }]
}));
XTend Classic · No application build required
The page you are viewing uses XTend Classic.
Preload only the first viewport and leave the remaining component modules to the loader.
<meta name="xtend-preload"
content="xtend-state,x-theme,x-icon,x-header,x-hero,x-type">
<script type="module"
src="/xtend-loader.js"
data-manifest="/components/manifest.json"
data-dev-api="true"></script>
<x-hero background-image="/background.webp" overlay>
<h1>Build for the web.</h1>
<p>Scale only when your product needs it.</p>
</x-hero>
Keep the entry point simple
Build one page. Keep the path to a platform.
Start in semantic HTML, build a typed ESM application, learn RMT, or inspect every runtime and gate directly in the repository.