Tavo.js Framework documentation
Learn how to build, render, extend, test, and operate a Tavo.js application, then look up the exact APIs you need.
Choose the documentation flow
Learn by building
Understand a subsystem
Look up an exact API
How a Tavo.js application fits together
Tavo.js is a TypeScript and TSX framework with its own component runtime. Vite supplies the development server and bundling pipeline, while Tavo.js adds file routes, request data, server rendering, hydration, state, and production output.
Files in src/pages define the route tree. Middleware decides whether resolution continues, loaders prepare route data, and layouts compose the visible shell. Plain TSX components render interface; createTavo adds component-local state and controller behavior; stores share client state between consumers.
Follow one URL through Tavo.js
textURL
→ match a file route
→ run global, layout, and page middleware
→ load layout data from root to leaf, then page data
→ resolve route metadata
→ render or reuse SSR/static output, optionally stream deferred sections
→ send HTML and serialized route state
→ hydrate the same tree in the browser
→ handle later client navigation or server actionsThe exact work depends on the route mode. A CSR route sends a server shell and resolves in the browser. An SSR route renders for the request. Static and revalidated routes reuse SSR output according to their cache policy.
Browse the Framework by system
Fundamentals
Routing and data
Application model
Rendering
Server and security
Extensions
Quality and tooling
Production
Reference
How to read this reference
Start with the first example in a guide, then use its reference sections for defaults, lifecycle, and failure behavior. Examples labeled as a file can be adapted into your project; signature summaries describe an API and are not complete source files. Replace example domains and application-specific services with your own. The generated API inventory mirrors package declarations; check your installed version when a signature differs.
Use the production loop early
Development mode optimizes iteration. A production build verifies route discovery, generated types, SSR output, static generation, and bundle boundaries.
bashnpx tavo check
npx tavo build --report-json
npx tavo preview --ssrLook up exact public types
Follow linked API names to their canonical TypeScript declarations and package boundaries.