Skip to content
Tuvix.js logo

Many apps. One experience.

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-app
src/orchestrator.ts
import { 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();
Host shell
URL/dashboard/overview
  • React 18+mountedname: 'dashboard'activeWhen: '/dashboard/*'
  • Vue 3name: 'catalog'activeWhen: '/shop/*'
  • Svelte 3–5name: 'checkout'activeWhen: '/checkout/*'
  • Angular 15+name: 'settings'activeWhen: '/settings/*'
Shared event bus@tuvix.js/event-bus

What ships with Tuvix.js

Eight building blocks. Install the tuvix.js umbrella package to get the core five, or add single packages as your shell grows.

  • Framework agnostic

    Run React, Vue, Svelte, Angular and vanilla JS micro apps side by side in one shell.

    Micro apps guide
  • No third-party runtime dependencies

    Each package depends only on other @tuvix.js packages. You install the ones you import.

    All packages
  • Built-in routing

    The router mounts and unmounts apps as the URL changes, in history or hash mode.

    @tuvix.js/router
  • Event bus

    Apps publish and subscribe to typed events without sharing globals.

    @tuvix.js/event-bus
  • CSS and JS sandbox

    Shadow DOM keeps each app's styles inside its container. JsSandbox runs a script against a Proxy window you can throw away.

    @tuvix.js/sandbox
  • Dynamic loading

    The loader fetches app bundles on demand, caches them and retries failed loads.

    @tuvix.js/loader
  • DevTools

    An in-page panel lists registered apps, the active route and event bus traffic.

    @tuvix.js/devtools
  • Server rendering

    Render micro apps on the server and stitch their HTML into the shell template, as a string or a stream.

    @tuvix.js/server

Pick your framework

Each adapter turns a component into a micro app that the orchestrator can mount, update and unmount.

  • React

    createReactMicroApp wraps a component. useTuvixProps and useTuvixBus read props and events.

    npm i @tuvix.js/react
  • Vue

    createVueMicroApp mounts a Vue 3 app, with composables for props and the event bus.

    npm i @tuvix.js/vue
  • Svelte

    createSvelteMicroApp mounts Svelte 3, 4 and 5 components.

    npm i @tuvix.js/svelte
  • Angular

    createAngularMicroApp bootstraps an Angular 15+ component into its container.

    npm i @tuvix.js/angular
  • Vanilla JS

    defineMicroApp gives plain JavaScript mount, unmount and update hooks.

    npm i @tuvix.js/core

15 packages, each with its own version

Start with the umbrella package. Switch to single packages when you want a smaller install.