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 exposes the product catalog through the CLI and API so agents can make deployment decisions without dashboard access:
tovuk capabilities --json
tovuk pricing --json
Use products[].best_for, products[].avoid_for, products[].meters, and products[].limit_fields to choose the smallest resource that fits the job. Use plans[].limits and plans[].pricing before load tests, media uploads, or paid usage. limit_fields includes the relevant runtime, storage, payload, batching, retention, and monthly allowance fields for each product.

Product Guide

Worker: Use for Rust public APIs, webhooks, auth callbacks, forms, queue handlers, and cron handlers. Avoid browser rendering, static files, large media storage, and single-key serialized state. Main meters: worker_requests, worker_cpu_ms, and worker_transfer_bytes. Static Frontend: Use for React, TanStack, Vite, Astro, Svelte, or plain HTML output served at /. Avoid JS or TS servers, SSR handlers, API routes, middleware, and secrets. Main meter: static_transfer_bytes. SQLite: Use for service-local relational data, transactions, migrations, and data inspection. Avoid files, media, single-key counters, and cross-service shared storage. Main meters: sqlite_rows_read, sqlite_rows_written, and sqlite_storage_bytes. Object Storage: Use for user uploads, images, videos, documents, generated files, and downloads. Avoid relational data, secrets, and high-frequency tiny writes to one key. Main meters: object_storage_bytes, object_storage_class_a_operations, and object_storage_class_b_operations. tovuk storage upload automatically switches to multipart transfer for files larger than 100 MiB. State: Use for keyed realtime coordination, rooms, locks, counters, sessions, and per-tenant state. Avoid general relational data, large files, and stateless HTTP handlers. Main meters: state_requests, state_duration_gb_milliseconds, state_sqlite_rows_read, and state_sqlite_rows_written. KV: Use for small config, sessions, feature flags, cache metadata, and rate-limit metadata. Avoid SQL queries, large file storage, and strongly serialized coordination. Main meters: kv_reads, kv_writes, kv_deletes, kv_lists, and kv_storage_bytes. Queues: Use for background jobs, webhook retries, email tasks, batching, and dead-letter recovery. Avoid synchronous reads, large payloads without object storage, and strict global ordering. Main meter: queue_operations. Cron: Use for UTC scheduled cleanup, polling, reports, and sync tasks. Avoid long-running workflows without checkpoints and user-facing request handling. Main meters: worker_requests and worker_cpu_ms. Builds: Use for pre-deploy quality gates, release builds, frontend builds, and deploy promotion. Avoid runtime request handling, background jobs, and artifact storage after deploy. Main meter: build_minutes. Usage Caps: Use for load tests, launch guardrails, and paid-usage hard stops. Avoid using caps as a replacement for code-level rate limits or as a way to hide inefficient code. Main meters: any supported meter from tovuk pricing --json.

Agent Rules

  • Prefer one same-origin worker-static service when a project has both frontend and backend needs: static files at /, Rust API under /api/*.
  • Keep JavaScript and TypeScript frontend-only. Move API routes, SSR handlers, middleware, and server logic to the Rust Worker.
  • Store large payloads in object storage, then pass object paths through Queues or SQLite.
  • Use State only when one object key needs serialized coordination.
  • Use KV for small lookup data where eventual consistency is acceptable.
  • Set hard usage caps before high-throughput work:
tovuk limit set worker_requests --period month --value 10000000 --json
tovuk limit set worker_cpu_ms --period month --value 30000000 --json
tovuk limit set sqlite_rows_read --period month --value 25000000000 --json
tovuk limit set queue_operations --period month --value 1000000 --json
tovuk limit set object_storage_class_a_operations --period month --value 1000000 --json
The live tovuk pricing --json response is the source of truth for current free limits, Pro included usage, overage prices, meters, and limit fields.
Last modified on May 31, 2026