Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tovuk.com/llms.txt

Use this file to discover all available pages before exploring further.

Tovuk deploys projects that are explicit and reproducible.

Required files

Rust backend:
Cargo.toml
Cargo.lock
tovuk.toml
Cargo.lock is required so builds are deterministic. Static frontend:
package.json
bun.lock or package-lock.json
src/main.tsx
tovuk.toml
Static frontend package.json must include typecheck, lint, and build scripts. typecheck must run stable native type-aware TypeScript checks such as oxlint --type-aware --type-check. lint must run native tooling such as oxlint, biome check, or deno lint, plus Fallow dead-code, semantic dupes, and health gates. Plain static frontend:
index.html
tovuk.toml
Plain static frontends do not need a package manager. Use check = ":", command = ":", and output = ".". Fullstack app:
tovuk.toml
api/Cargo.toml
api/Cargo.lock
web/package.json or web/index.html

Rust tovuk.toml

name = "hello-rust"

[build]
check = "cargo fmt --all --check && cargo check --locked && cargo clippy --locked --all-targets --all-features -- -D warnings"
command = "cargo build --release"

[run]
command = "./target/release/hello-rust"
port = 3000
health = "/healthz"

Frontend tovuk.toml

name = "dashboard"
kind = "static_frontend"

[build]
check = "bun ci && bun run typecheck && bun run lint"
command = "bun run build"
output = "dist"

Fullstack tovuk.toml

name = "my-app"
kind = "fullstack"

[backend]
root = "api"
check = "cargo fmt --all --check && cargo check --locked && cargo clippy --locked --all-targets --all-features -- -D warnings"
build = "cargo build --release"
command = "./target/release/api"
port = 3000
health = "/api/healthz"

[frontend]
root = "web"
check = "bun ci && bun run typecheck && bun run lint"
build = "bun run build"
output = "dist"

Rust runtime behavior

  • Bind to 0.0.0.0:$PORT
  • Return success from the configured health path
  • Keep secrets in server-side environment variables
  • Avoid build steps that require interactive input
Static frontends do not run server code on Tovuk. Fullstack apps keep the frontend static and proxy /api/* to the Rust backend inside the same app URL. JavaScript and TypeScript are frontend-only: Next API routes, Astro server endpoints, Svelte +server handlers, middleware, SSR handlers, and Node/Bun servers are rejected. Put that logic in Rust under the backend root.
Last modified on May 29, 2026