Templates and polyglot composition
The thirteen microapp targets, available shells, generated adapters, and each template's scope.
See versions, changes and requirements in Framework 4.0 and CLI 1.2.
Implemented catalog
The CLI accepts thirteen microapp names. Shell selection adds astro and next. Support for a name means a generation path exists; it does not establish absolute parity in compilers, SSR, ecosystems, or lifecycle across frameworks.
| Target | Generated component / registration | Shell generated with this selection |
|---|---|---|
react |
App.tsx, wuReact.register with explicit React/ReactDOM runtime |
React |
vue |
App.vue, wuVue.register |
Vue |
svelte |
App.svelte, wuSvelte.registerSvelte5 |
Framework-agnostic JavaScript |
solid |
App.tsx, wuSolid.register |
Solid |
preact |
App.tsx, wuPreact.register |
Preact |
qwik |
App.tsx, wuQwik.register |
Qwik |
lit |
App.ts, wuLit.register |
Lit |
vanilla |
App module, wuVanilla.register with a render function |
Framework-agnostic JavaScript |
angular |
Angular component and configuration, registerStandalone |
Angular |
alpine |
JavaScript with @alpinejs/csp, wuAlpine.register |
Framework-agnostic JavaScript |
stencil |
Custom element and wuStencil.register |
Framework-agnostic JavaScript |
htmx |
HTML/JS module, wuHtmx.register |
Framework-agnostic JavaScript |
stimulus |
Controller module, wuStimulus.register |
Framework-agnostic JavaScript |
Extensions reflect quick mode with TypeScript enabled where supported. The wizard can generate JavaScript variants. It does not offer TypeScript for Alpine, HTMX, or Stimulus.
Catalog versions in 1.1
wu catalog
wu catalog --json
The catalog is the single source for create, add, install, upgrade and discovery. It declares WU Framework ^4.0.0, Preact ^11.0.0 and TypeScript ~6.0.0 for Angular 22. JSON includes ranges and reasons for held versions; generation does not query npm to choose versions.
What makes up a generated microapp
The generator writes an identifiable package, Vite configuration, index.html, a demo component, and a registration entrypoint. The HTML standalone container matches the selector expected by the adapter. This lets you run the app with its toolchain as well as mount it from the WU shell.
It does not automatically generate a source wu.json. In development, the server may offer a virtual manifest with empty contracts; in production, the build writes one with the emitted entrypoint. To use contract imports/exports or permissions, write an explicit manifest and verify that its requests match host grants.
Details that matter
React
The entrypoint passes React and ReactDOM to the adapter to preserve one runtime identity. Avoid mixing an adapter copy resolving another instance with the one used by the component. Production dependency sharing also requires including the complete imported specifiers.
Angular
The scaffold generates tsconfig.json and tsconfig.app.json, imports the compiler, prepares application configuration, and passes creation functions to the standalone adapter. Angular compilation needs its specific integration; removing these files as though they were decorative may produce a build without the expected code.
Stencil
The current template directly writes a class extending HTMLElement and registers a custom element. It uses the Stencil adapter but does not generate a complete Stencil compiler project with its entire pipeline. If you need that pipeline, integrate it explicitly and verify its built entrypoint.
Each Stencil app registers wu-stencil-<name> and does not install @stencil/core. The Angular shell declares rxjs, the Solid shell its Babel preset and the agnostic shell does not add Svelte. The Vanilla template forwards state and WU context to rendering and components.
Alpine and HTMX
Alpine uses the CSP distribution. The HTMX entrypoint disables evaluation and script tags, prepares configuration before importing the runtime, and avoids automatic indicator styles. These decisions are part of the scaffold; re-enabling the features requires reviewing their relationship with host policy.
Qwik
Development has a compilation selection that uses the Qwik optimizer. The WU microapp template mounts on the client; it does not by itself promise a complete host SSR or resumability architecture.
Astro or Next shell
wu create conocimiento --template react --shell astro
cd conocimiento
wu add vue explorador --no-install
wu add lit indicador --no-install
wu install
wu dev --no-open
Astro builds the shell; React, Vue, and Lit register as microapps. The host must decide their mounting and contracts. They do not need to adopt the shell’s framework.
The --shell next alternative uses a static export to out/. --template astro and --template next fail because the microapp catalog does not contain those targets. Shell support does not imply that WU runs an Astro or Next SSR server.
Minimum test for a combination
Build, load each app, use its demo counter, switch apps, and mount it again. Check the console, styles, and cleanup on unmount. If you add communication, verify both an allowed operation and one rejected by contract. A template table is an inventory; this test establishes what works in your project and installed versions.
Implementation references
wu-cli/src/config/catalog.zigwu-cli/src/commands/catalog.zigwu-cli/src/commands/templates/wu-cli/tests/scaffold-catalog.test.cjswu-cli/tests/vanilla-ctx.test.cjs