.slurp files and compiled to plain HTML on the server. No framework is shipped
to the browser: a visitor downloads the generated HTML, and the client runtime
is optional.
It is comparable to a small Astro.
No code runs at render time
One pass over a JSON context. No reactivity, no callable functions, no
template-defined logic that could reach the host. A template is data
transformed into markup, not a program.
Escaped by default, per context
An interpolation is escaped for the exact place it lands: HTML text, an
attribute, a
style attribute, a srcdoc, or a JavaScript string.Sections and blocks
A template declares a typed schema in its frontmatter. The values become editable fields, so a non-technical person can change a heading, swap an image or reorder a list through a form, and the template stays untouched.Failure behaviour
Slurp is total and tolerant. Missing data renders as the empty string, resource budgets truncate rather than abort, and unknown editor settings are dropped rather than rejected.Next
Quickstart
Build and render a real page in about five minutes.
Installation
The CLI, the optional runtime, and the editor tooling.
Writing pages
File-based routing, page data, and output paths.
Working with agents
The MCP server and llms.txt files for coding agents.
Status
Slurp is 0.1.0, pre-1.0. The template language and the Rust API will both change without a deprecation cycle until 1.0. It was extracted from a production system where it renders multi-tenant sites, so parsing, rendering, escaping and the resource budgets are exercised daily. The edges are less settled: parts of the browser runtime are not yet wired to compiler codegen and ship underexperimental/, and the editor tooling and the
compiler disagree on a few points of syntax, where the compiler is right.