Encrypted data
Bundled SQLCipher, exact embedded migrations, tenant/model-scoped vectors, and no loadable SQLite extensions.
SQLite & vectorsA small Rust runtime, deliberately.
Serve native MiniJinja pages or verified exports from Svelte, SvelteKit, Next.js, Vue, Nuxt, and Vite—then keep migrations, vectors, tests, backups, and deploys behind the same CLI.
$ bunfork doctor \
--static frontend/out \
--manifest bunfork-static.json
ok: artifact matches manifest
$ bunfork serve \
--static frontend/out \
--manifest bunfork-static.json
listening on 0.0.0.0:3100
Bunfork accepts completed browser output. It does not pretend to be the framework compiler or its server runtime.
Bunfork invokes exactly the program and arguments you provide with a reduced environment.
Every regular file receives a byte count and SHA-256 digest in a strict manifest.
Files are re-hashed, preloaded, and served with framework-aware routes and caching.
File routes and MiniJinja inheritance cover static, dynamic, grouped, catch-all, error, and server-rendered pages. Development rescans on each request; production compiles routes before listening.
Open the live dynamic route demoapp/
templates/base.html
pages/
index.html /
notes/[slug].html /notes/:slug
docs/index.html /docs
The same binary that serves the app also owns the checks that make a release recoverable.
Bundled SQLCipher, exact embedded migrations, tenant/model-scoped vectors, and no loadable SQLite extensions.
SQLite & vectorsbunfork test runs locked Rust tests plus route, migration, vector, backup, and restore smoke checks.
Backups are encrypted, no-overwrite, and validated. Restore preserves the previous live database.
Deploy & recoverRelease bundles carry a complete digest inventory, hardened user units, and a preserved prior release.
Deployment workflowBunfork encrypts data at rest, validates inputs and artifacts, and fails closed on suspicious files. It does not provide TLS, user accounts, remote backup transport, host provisioning, or protection from a compromised live process.
Keep the browser expressive. Keep production explainable.