Tibi

Tibi is a Rust compiler. Single-file .tibi components in — standard HTML, scoped CSS, and native Web Components out. No runtime framework tax, no virtual DOM, no hydration shim shipping with every page.

Pages land at ~10 KB on the wire, builds finish in under a second. Authors write <template> + <style> + <script tibi> in one file; the compiler does the rest. SSG, SSR, file-based routing, IDB-backed client store, multiplexed WebSocket channels — all driven by a single .tibi-config the tibi CLI reads at boot. Apps need no Rust.

$ curl -fsSL https://tibi.fi/install.sh | sh $ tibi new my-app && cd my-app $ tibi dev

On Windows: irm https://tibi.fi/install.ps1 | iex

Single-file components

Author <template> + <style> + <script tibi> in one .tibi file. Optional frontmatter runs at compile time in JS, TS, Python, or Rust.

Compiles to native Web Components

Every component lands as a <tibi-{tag}> custom element with a declarative shadow root — what ships is plain HTML, scoped CSS, and a thin per-component script. No runtime framework wrapping every element.

Reactivity without the tax

{{count}} interpolation, @click handlers, :attr bindings, t-if / t-else / t-for chains. Signals (state / computed / effect) compile down to direct DOM updates — no virtual DOM, no diffing pass.

Config over code

One .tibi-config declares server channels, cron jobs, store namespaces, plugins, redirects. tibi serve reads it and runs.

Deploys anywhere

tibi build writes static dist/ with .gz + .br sidecars. Drops onto Cloudflare Pages, Netlify, Vercel, GitHub Pages, S3, plain nginx — no platform shim, no runtime to keep alive.