Home

The Frontend Framework for Complete Web Apps

Build CSR and SSR TypeScript applications with file-based routing, reactive stores, MVC components, and production tooling.

T ~npx @tavojs/cli create app my-app
Powered byVite

What is Tavo.js Framework?

One application model

CSR and SSR without two architectures.

Use the same routes, loaders, stores, and MVC components across client rendering, server rendering, hydration, and static output.

TSX
tsximport { createTavo, TavoController } from "@tavojs/core";
import { Button } from "@tavojs/ui";

class CounterController extends TavoController {
  increment() {
    this.model.patch((state) => ({
      count: state.count + 1
    }));
  }
}

export const Counter = createTavo({
  model: () => ({ count: 0 }),
  controller: CounterController,
  view: ({ state, controller }) => (
    <Button onClick={() => controller?.increment()}>
      Count: {state.count}
    </Button>
  )
});
Start with Tavo.js

Build with the framework. Add only what you need.