SnapFire FSR

Write TypeScript.
Run Rust.
Ditch Node.js.

Loaders, actions and JSX are read at build time and lowered into an execution plan the host evaluates directly, so a page render is a walk over data rather than a call into a JavaScript engine. What that buys you: ~130µs renders, server islands, and bearer tokens your application code cannot reach.

Live Host Inspector

This widget below has zero client React code attached. Clicks round-trip to the Rust host and patch the DOM via diffing.

Runtime: Rust Stock Host (snapfire_fsr_host)

~130µs Renders

Pages compile to a declarative IR. Rust evaluates the render tree directly without JS engine overhead.

📦

Zero node_modules

Third-party libraries live in committed vendor trees and resolve through native browser import maps.

🧩

Native Microfrontends

Mount standalone site artifacts under path prefixes with shared cookies, auth identity, and layouts.

🛡️

Structural Token Custody

Application TypeScript code cannot see bearer tokens. Credentials live exclusively in protected host cells.

See the Compiler in Action

TypeScript is parsed at build time into an executable JSON IR. Rust evaluates this without Node.

Authoring TypeScriptTypeScript
import type { Ctx } from "@snapfire/fsr";

export async function load({ session }: Ctx) {
  const count = Object.values(session.cart).reduce((n, q) => n + q, 0n);
  return { count };
}
Lowered IRplan.json
{
  "let": {
    "name": "count",
    "expr": {
      "reduce": [
        {
          "values": {
            "session": "cart"
          }
        },
        {
          "lit": {
            "int": 0
          }
        },
        {
          "lambda": {
            "params": [
              "n",
              "q"
            ],
            "body": {
              "arith": [
                "add",
                {
                  "var": "n"
                },
                {
                  "var": "q"
                }
              ]
            }
          }
        }
      ]
    }
  }
}

Built with SnapFire FSR. Pure Rust runtime, zero Node.js on the server.