pre-1.0 · come crew it early

Launch the web from
your own shore.

One Rust binary is your whole backend — web server, functions, GraphQL, databases, and an edge gateway. Publish a static site in three commands, or run a multi-tenant platform on your own hardware, cloud, or edge. Deploys are atomic; every byte streams.

curl -sSf boatramp.dev/launch | sh

served by boatramp deploy af78a09 · streaming-first · atomic

01
You own it
Server, storage, certs, compute — your shore, not a tenancy.
02
Grows with you
Same binary, same commands — a static site today, a multi-tenant cluster tomorrow.
03
Streaming & atomic
Every byte streams; a deploy flips whole or not at all.
01 / QUICKSTART

Cast off in three commands.

$ curl -sSf boatramp.dev/launch | sh
↳ boatramp 0.3.17 → ~/.local/bin
$ boatramp serve &
↳ listening on http://127.0.0.1:8080
$ boatramp sync ./public --site my-site
↳ 214 files · sha 7f3a2c1 · streamed, 0 buffered
it's live — my-site · flipped in one atomic beat
// what just happened
content-addressed build
0 bytes buffered in memory
atomic pointer flip
prev launch still afloat
rollback → boatramp rollback
02 / CAPABILITIES

Six you'll feel on day one.

01
Atomic deploys
Content-addressed; launches whole or not at all.
sync
02
Streaming-first
Byte-for-byte store → socket; flat memory.
range: yes
03
Instant rollback
Immutable snapshots; back to shore in one flip.
rollback
04
Single binary
Server + API + CLI; bare metal to edge, same UX.
1 file
05
You own it
Your storage, TLS, compute — self-hosted, no phone-home.
self-host
06
Modern edge
HTTP/3 + auto-TLS; scale-to-zero, wakes on demand.
h3 · tls
0 files held in memory.

A 40 GB video and a 4 KB page cost the same flat memory — the tide never floods the box.

Back to shore, instantly.

Rollback is a pointer flip, not a rebuild — the previous launch is always still floating, ready in a beat.

02 · THE FULL MANIFEST Those six are just the shallows. The hull holds 128 capabilities across 14 systems — projects & multi-tenancy, a GraphQL edge, edge compute, containers & microVMs, the gateway, HA clustering, auth & access, storage, observability, and an agent-native MCP control plane.
Explore all features
the platform pillars
03 / FUNCTIONS

Everything that runs is a function.

see all features →
one componentmany doors
route     "/api/*"     → handler
invoke    "resize"     → by name, sync or async
cron      "0 * * * *"  → scheduled
queue     "orders"     → consumer
workflow   a → b → c   → durable DAG
Rust · JavaScript · Python · WASI 0.2
  • One portable WASI 0.2 component — reach it as a route handler, invoke it by name, put it on a cron, or drive it from a queue. One sandbox, many doors.
  • Bindings, deny-by-default: sql (a typed query builder + vector search), kv, blob, durable messaging — plus a managed database boatramp runs for you.
  • Chain functions into a durable workflow — fan-out, barrier fan-in, per-step retries, saga compensation — that survives restarts.
  • Separate sync, async, and streaming lanes, so a long job or an SSE stream never starves live traffic.
04 / GRAPHQL

A GraphQL API from your database. No resolvers.

see all features →
query→ one SQL statement
{
  posts(where: { published: { _eq: true } },
        order_by: { created_at: desc }, limit: 10) {
    title
    author { name }      # FK → subquery
  }
}
introspected · compiled · one round-trip, no N+1
  • Point boatramp at a managed database and it generates the read + write API — [handlers.graphql.data], zero resolver code.
  • Deny-by-default: only exposed tables and columns are visible, and a row filter bound to the project claim isolates tenants at every depth.
  • Multi-tenant SaaS by an app-token claim, an edge query-guard, persisted-query safelists, subscriptions, and GraphiQL.
  • Federate many subgraphs — wasm or SQL — into one supergraph, planned and stitched over the in-process invoke path.
05 / PROJECTS

Many sites. One tenant boundary.

see all features →
apply.cfgone project, one file
(
  project: "acme",
  sites: [
    ( name: "www",  path: "www/dist" ),
    ( name: "blog", path: "blog/dist",
      routing: ( clean_urls: true ) ),
  ],
  functions: [
    ( name: "resize", component: "resize.wasm" ),
  ],
)
$ boatramp apply -f apply.cfg
  • A project owns many sites plus their functions and compute — same-named sites in two projects stay fully isolated.
  • Each project is a tenant boundary: kv, blob, SQL, and messaging namespaces are scoped to it — nothing bleeds across.
  • One apply.cfg reconciles the whole project in a single pass — pure upsert, never prunes, --dry-run to preview.
  • Per-project Cedar roles — admin / publisher / viewer; a token scoped to one project can't touch another.
06 / AGENT-NATIVE

Hand the helm to an agent.

see all features →
model context protocol

boatramp ships an MCP server. Point Claude or Codex at it and drive the whole control plane in plain language.

you ▸ roll docs back to the previous deployment, then tail the last 50 log lines
  • boatramp mcp over stdio for a desktop agent, or POST /mcp on serve — on by default.
  • Typed, enumerated tools — one per operation, no generic passthrough, every call legible in an audit log.
  • Runs with your token's authority — hand it a read-only token and the write tools simply 403.
  • One agent, many nodes — address them by name from mcp.toml.
07 / THE REST OF THE PLATFORM

The same binary hands you the rest.

see all features →

Serve over modern HTTP, run heavier cargo in containers and microVMs, front private services through the gateway, scale to a cluster, own your storage and controls, observe it all, and ship it anywhere — every layer in the one hull.

serve

A real web server

HTTP/1.1, /2, and /3 over QUIC, routing and redirects, SPA fallback, caching plus an edge response cache, and compression — boatramp's own HTTP stack, not a bucket.

→ serve
compute

Containers & microVMs

Pick a per-function runtime — the Wasm sandbox, an OCI container, or a Firecracker-class microVM — with snapshot/restore and scale-to-zero.

→ containers
gateway

Edge gateway

Publish private services through the edge: geo-aware load balancing (nearest region), passive + active health checks, retries, and DNS discovery.

→ gateway
secure

Own the controls

COSE/CWT tokens + Cedar policies, OIDC login, KMS/HSM signers, and per-site visitor access control at the edge.

→ auth & access
scale

Scale to a fleet

One node to an HA Raft cluster with the same commands — shared-store frontends, a one-paste join ticket, and an in-binary Kubernetes operator.

→ scale
storage

Your storage

Content-addressed blobs on local disk, S3, R2, GCS, or Azure; metadata in embedded SlateDB or Cloudflare KV. Your bytes, your backend.

→ storage
operate

Observability

Prometheus metrics, JSON logs with live tailing, handler stats and dead-letter queues, health probes, and online store migrations.

→ operate
ship

Ship anywhere

One static binary — prebuilt for Linux, macOS, and Windows; an OCI image; a NixOS module; a Cloudflare Worker generator; or embedded as a Rust library.

→ ship
see it in use
08 / WHAT YOU CAN BUILD

You've seen the parts. Here's the work.

see all features →
saas

A SaaS backend

GraphQL straight from your Postgres, OIDC + cookie sessions, and cron jobs — on a database boatramp runs and whose credential it manages for you.

→ graphql · sql · auth
media

Media & streaming

Serve a 40 GB video at flat memory with range requests and HTTP/3 — every byte goes store → socket, never buffered whole.

→ serve · range
agentic

An agent-run platform

Let Claude or Codex drive the whole control plane over MCP — deploy, roll back, tail logs, invoke functions, in natural language.

→ agent-native
09 / HOW IT WORKS

One binary. One request path.

No control plane to run beside the data plane, no sidecars, no build servers. The same process terminates TLS, routes the request, serves a file or runs your code, and reads from a content-addressed store — everywhere it runs.

client one binary · router
staticstreamed, ranged, 0 buffered
wasm handlersql · kv · blob · queue
graphql→ one SQL statement
gatewaycompute / private upstream
content-addressed store · atomic pointer flip
10 / WHERE IT RUNS

One hull, every port.

same UX · same binary
Bare metal
boatramp serve
NixOS
services.boatramp
Docker / OCI
ghcr.io/boatramp/boatramp
Cloudflare
boatramp cloudflare
Cluster
serve --cluster-init
Kubernetes
operator · Helm
pre-1.0

boatramp is young and honest about it. APIs will still shift, edges are still being sanded. What's here is real and dogfooded — this site sails on it. If you like owning your stack and shaping tools early, come crew it.