The flagship · web development, end to end
SnapFire FSR
Build web apps in TypeScript. Serve them from Rust.
Routes, loaders, actions and layouts, the shape you already know. Write the pages as React and TypeScript or as Tera templates. Either way what renders them is Rust.
- Rendered in RustYour React and TSX pages, server-rendered with no JavaScript engine
- Many sites, one productMount a whole application inside another at a prefix
- One binary to shipNothing to install on the box, no Node to keep patched
- Deploy by copyingA directory and a binary; move a pointer to release
app/routes/
layout.tsx the chrome every page keeps
page.tsx /
product/[id]/
page.tsx /product/{id}
page.loader.ts its data, typed into the page
actions.ts what a button doesFlagshipWeb applications in TypeScript, served by Rust.
The application is TypeScript under app/. The runtime is Rust. Loaders and actions are read at build time and become data the host executes directly, so nothing in the serving path is a JavaScript engine.
- Native SSR of React pages with no JS engine
- Typed service calls generated from OpenAPI and Protobuf
- Server islands, sessions and identity in the host
SupportingA TypeScript and CSS compiler for the browser.
Compiles TypeScript to browser-native ES modules with no Node and no node_modules. FSR uses it to bundle the client half; it knows nothing about FSR and works on its own. Its binary is snapfirec.
- Native, SWC-backed, no toolchain to install
- Source maps, minification, import maps
- A preload manifest for what the page needs first
Where it startedTera templates over Actix, with live reload.
The original crate: a templating library with an integrated zero-configuration reload server. Edit a template, the browser updates. Every development-only feature compiles out of a release build.
- First-class Tera 2 and Actix Web integration
- Live reload with no configuration
- Nothing development-only in a release binary