τjs is an orchestration layer built on Fastify, Vite, and React / Vue / Solid. Developer-first with declarative configuration for building modern web apps: per-route control over SSR and Streaming SSR, with CSR by omission of a route.
Website: https://taujs.dev
| Package | Description |
|---|---|
@taujs/create-taujs |
Scaffolder for a new τjs application. |
@taujs/server |
Fastify plugin & render orchestration - SSR / Streaming SSR per declared route, CSR by omission - for SPA, MPA, and build‑time micro‑frontends (MFE). Vite HMR + tsx in dev. |
@taujs/react |
React renderer: CSR, SSR, Streaming SSR. Standalone and runtime‑agnostic. |
@taujs/vue |
Vue renderer: CSR, SSR, Streaming SSR. Standalone and runtime‑agnostic. |
@taujs/solid |
Solid renderer: CSR, SSR and Streaming SSR. Standalone and runtime‑agnostic. |
@taujs/mcp |
MCP server for AI agents: reads the dev‑emitted request graph and live request episodes (filesystem‑only stdio adapter). Wired by the scaffolder. |
Current versions are shown by the badges above.
Packages share a common render‑surface / streaming protocol.
npx @taujs/create-taujs # or: npm create @taujs/taujsOr add a package to an existing project:
pnpm add @taujs/server @taujs/react # npm install / yarn add also fineRequirements: Node ^20.19.0 || >=22.12.0 and Vite ^8.2.1 (both are Vite 8's own floors;
note the Node range excludes 21.x and 22.0-22.11). The renderer packages additionally peer on
their framework plugin: @vitejs/plugin-react ^5.2.0, @vitejs/plugin-vue ^6.0.3 or
vite-plugin-solid ^2.11.11.
taujs/
├── pnpm-workspace.yaml
├── tsconfig.base.json
├── .changeset/
├── fixtures/
│ ├── playground-react/ # @taujs/react fixture (introspection e2e + demos)
│ ├── playground-vue/ # @taujs/vue fixture
│ ├── playground-solid/ # @taujs/solid fixture
│ └── renderer-composition/ # real-Vite multi-renderer composition proof
└── packages/
├── server/ # @taujs/server
├── react/ # @taujs/react
├── vue/ # @taujs/vue
├── solid/ # @taujs/solid
├── mcp/ # @taujs/mcp
└── create-taujs/ # @taujs/create-taujs
Requires Node ^20.19.0 || >=22.12.0 (the repo pins 22.19.0 - see .nvmrc) and pnpm (pinned via packageManager; corepack enable will provide it).
pnpm install # single root install for the whole workspace
pnpm build # pnpm -r build - build every package (tsup)
pnpm test # pnpm -r test - run every package's tests (vitest)
pnpm typecheck # pnpm -r typecheck - tsc across packages
pnpm check-format # prettier --check .
pnpm format # prettier --write .
pnpm check-exports # pnpm -r check-exports - attw packaging check
pnpm check # build → typecheck → check-format → check-exports → testTarget a single package with a filter, e.g. pnpm --filter @taujs/server test.
Versioning and publishing run through Changesets (independent versioning, provenance‑enabled).
pnpm changeset # describe the change + choose semver bumpsMerging the changeset to main opens a Version Packages PR; merging that PR publishes the bumped packages to npm via the release workflow.
MIT Copyright (c) 2024-present Aoede Ltd. Attribution appreciated.