Write the application in TypeScript. Run it in Rust.
SnapFire started as SnapFire Web, a Tera templating library with live reload. It is now a stack built around SnapFire FSR, a runtime where routes, data loading, actions, service clients, sessions, identity, caching, streaming and client navigation are primitives rather than features owned by a UI framework. Beside it sit a compiler that turns TypeScript into browser-native ES modules with no Node and a typechecker that fetches and pins its own tsc. SnapFire Web is still here and is now one renderer among several.
Nothing in the chain needs Node, at build time or on the request path. There is no node_modules.
Each one installs and is used from its own README.
| What you want | Where it is |
|---|---|
| A full-stack application: file routes, loaders and actions in TypeScript, rendered by Rust | SnapFire FSR, the fsr executable |
TypeScript and CSS to browser ES modules, one binary, no package.json |
SnapFire Compiler, the snapfirec executable |
| Types checked against a pinned TypeScript, fetched and verified rather than found installed | SnapFire Typecheck, the snapfiretc executable |
| Tera templates with live reload inside an Actix application | SnapFire Web, the snapfire crate |
| Seven applications in reading order, each carrying what the ones before it do not reach | The SnapFire FSR examples |
| One question per chapter, with a lab on the running example | The SnapFire FSR guide |
| Directory | What it holds |
|---|---|
fsr/ |
SnapFire FSR: the runtime crates, the client library, the CLI, the guide and the examples |
compiler/ |
SnapFire Compiler, snapfirec, with its own example |
typecheck/ |
SnapFire Typecheck, snapfiretc |
web/ |
SnapFire Web, the snapfire crate: Tera and Actix, with its own example |
www/ |
the project's site, built with SnapFire FSR |
Every crate carries a README.md to skim, a README.USAGE.md to work from and an API_REFERENCE.md for the surface.
Mozilla Public License 2.0. See LICENSE.