Tuvix.js mounts React, Vue, Svelte, Angular and vanilla JS micro apps into one host page. Routing, an event bus, sandboxing and server rendering come as separate packages you add when you need them.
npx create-tuvix-appimport { createOrchestrator } from 'tuvix.js';const orchestrator = createOrchestrator({ router: { mode: 'history', routes: [ { path: '/dashboard/*', app: 'dashboard' }, { path: '/settings/*', app: 'settings' }, ], },});orchestrator.register({ name: 'dashboard', entry: 'https://cdn.example.com/dashboard/main.js', container: '#main-content', activeWhen: '/dashboard/*',});orchestrator.start();/dashboard/overviewname: 'dashboard'activeWhen: '/dashboard/*'name: 'catalog'activeWhen: '/shop/*'name: 'checkout'activeWhen: '/checkout/*'name: 'settings'activeWhen: '/settings/*'@tuvix.js/event-busEight building blocks. Install the tuvix.js umbrella package to get the core five, or add single packages as your shell grows.
Run React, Vue, Svelte, Angular and vanilla JS micro apps side by side in one shell.
Micro apps guideEach package depends only on other @tuvix.js packages. You install the ones you import.
All packagesThe router mounts and unmounts apps as the URL changes, in history or hash mode.
@tuvix.js/routerApps publish and subscribe to typed events without sharing globals.
@tuvix.js/event-busShadow DOM keeps each app's styles inside its container. JsSandbox runs a script against a Proxy window you can throw away.
@tuvix.js/sandboxThe loader fetches app bundles on demand, caches them and retries failed loads.
@tuvix.js/loaderAn in-page panel lists registered apps, the active route and event bus traffic.
@tuvix.js/devtoolsRender micro apps on the server and stitch their HTML into the shell template, as a string or a stream.
@tuvix.js/serverEach adapter turns a component into a micro app that the orchestrator can mount, update and unmount.
createReactMicroApp wraps a component. useTuvixProps and useTuvixBus read props and events.
npm i @tuvix.js/reactcreateVueMicroApp mounts a Vue 3 app, with composables for props and the event bus.
npm i @tuvix.js/vuecreateSvelteMicroApp mounts Svelte 3, 4 and 5 components.
npm i @tuvix.js/sveltecreateAngularMicroApp bootstraps an Angular 15+ component into its container.
npm i @tuvix.js/angulardefineMicroApp gives plain JavaScript mount, unmount and update hooks.
npm i @tuvix.js/coreStart with the umbrella package. Switch to single packages when you want a smaller install.
Umbrella package with core, router, event bus, loader and sandbox.
The orchestrator. Registers micro apps and runs their lifecycles.
Activates micro apps by URL, in history or hash mode.
Typed publish/subscribe between micro apps.
Loads app bundles on demand, with caching and retries.
CSS isolation through Shadow DOM, JS isolation through Proxy.
Server-side composition and streaming for the host page.
Loads micro apps from Webpack Module Federation remotes.
In-page debug panel for apps, routes and events.
React adapter, hooks and server rendering helpers.
Vue 3 adapter, composables and server rendering helpers.
Svelte adapter with server rendering support.
Angular adapter with server rendering support.
Vite plugin that puts island CSS and modulepreload links into the SSR head, so server-rendered micro apps are styled on first paint.
Scaffolds a new host and micro app project from the command line.