Menu
AkurAI-Build
publicLatest change 0cf28150faedd8c150474a4f16be4c9922c04f56 - feat: add Ponytail UI design system by Olafur Bui
{% extends "layouts/docs.html" %} {% block title %}Bunfork documentation{%
endblock %} {% block description %}Documentation for Bunfork native pages,
static framework exports, CLI operations, encrypted SQLite, vectors, deployment,
backups, and security.{% endblock %} {% block docs_title %}Build less runtime.
Keep more control.{% endblock %} {% block docs_summary %}Bunfork is a
Linux-first Rust binary with two serving modes: native MiniJinja pages with
encrypted data, or verified static browser artifacts without data state.{%
endblock %} {% block docs_content %}
<section class="doc-section" aria-labelledby="choose-path">
<h2 id="choose-path">Choose a serving path</h2>
<div class="path-choices">
<article>
<h3>Native Rust application</h3>
<p>
Use file-routed MiniJinja pages, public assets, SQLCipher, and the
authenticated vector API.
</p>
<a href="/docs/getting-started"
>Set up native mode <span aria-hidden="true">→</span></a
>
</article>
<article>
<h3>Static framework export</h3>
<p>
Build with your framework, admit the immutable output, then serve it
without database keys or tokens.
</p>
<a href="/docs/frameworks"
>Prepare an export <span aria-hidden="true">→</span></a
>
</article>
</div>
</section>
<section class="doc-section" aria-labelledby="first-check">
<h2 id="first-check">Start with the repository check</h2>
<p>
The project pins Rust through <code>rust-toolchain.toml</code>. A locked
release build plus Bunfork's own test command exercises both unit tests and
the native runtime smoke path.
</p>
<pre><code>cargo build --release --locked
./target/release/bunfork test</code></pre>
<p class="code-caption">
The smoke check discovers routes and verifies an encrypted migration, vector
search, and backup in temporary storage; the locked Rust tests cover restore
behavior.
</p>
</section>
<section class="doc-section" aria-labelledby="documentation-map">
<h2 id="documentation-map">Documentation map</h2>
<dl class="doc-map">
<div>
<dt><a href="/docs/getting-started">Getting started</a></dt>
<dd>
Build, create separate secrets, migrate, run, and probe the native
server.
</dd>
</div>
<div>
<dt><a href="/docs/frameworks">Framework exports</a></dt>
<dd>
Known output directories and manifest settings for six verified
producers.
</dd>
</div>
<div>
<dt><a href="/docs/cli">CLI & operations</a></dt>
<dd>
The full command surface, global options, and public health endpoints.
</dd>
</div>
<div>
<dt><a href="/docs/data">SQLite & vectors</a></dt>
<dd>
Encrypted storage, exact migrations, scoped records, API calls, and hard
limits.
</dd>
</div>
<div>
<dt><a href="/docs/deployment">Deploy & recover</a></dt>
<dd>
Digest-owned bundles, hardened systemd units, verified backups, and
restore order.
</dd>
</div>
<div>
<dt><a href="/docs/security">Security</a></dt>
<dd>
Trust boundaries, production checklist, and deliberate non-features.
</dd>
</div>
</dl>
</section>
<aside class="doc-callout" aria-labelledby="scope-heading">
<h2 id="scope-heading">Scope, stated plainly</h2>
<p>
Bunfork serves compiled browser output; it does not implement framework
source compatibility, SSR adapters, Node APIs, React Server Components,
Nitro, or a JavaScript compiler. Native mode is a Rust application surface,
not an emulation layer.
</p>
</aside>
<nav class="docs-pagination" aria-label="Documentation pagination">
<span></span>
<a href="/docs/getting-started"
><small>Next</small>Getting started <span aria-hidden="true">→</span></a
>
</nav>
{% endblock %}