Skip to content

Repository files navigation

τjs  [ taujs ]

τ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.

@taujs/create-taujs @taujs/server @taujs/react @taujs/vue @taujs/solid @taujs/mcp node license

Website: https://taujs.dev

Packages

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.

Scaffold an app

npx @taujs/create-taujs        # or: npm create @taujs/taujs

Or add a package to an existing project:

pnpm add @taujs/server @taujs/react   # npm install / yarn add also fine

Requirements: 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.

Repository layout

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

Development

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 → test

Target a single package with a filter, e.g. pnpm --filter @taujs/server test.

Releasing

Versioning and publishing run through Changesets (independent versioning, provenance‑enabled).

pnpm changeset        # describe the change + choose semver bumps

Merging the changeset to main opens a Version Packages PR; merging that PR publishes the bumped packages to npm via the release workflow.

License

MIT Copyright (c) 2024-present Aoede Ltd. Attribution appreciated.

About

τjs [ taujs ] Request-first fullstack orchestration on Fastify + Vite. React, Vue and Solid on one server. Per-route CSR, SSR, Streaming SSR, SPA, MPA, MFE.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages