Skip to content

startThe stack, assembled

Type-safe, 12-factor backend applications — one demesne graph, many transport hosts. TanStack Start, but for a backend.

startstart
A beetroot in a hard hat, digging

Under construction. start is incubating — all packages are currently private while the API settles. The RFCs in design/ are the source of truth, and everything here may change without ceremony.

The idea

Your application is a demesne graph — pure use cases behind ports, adapters wired at the boundary, everything discharged before you run. start adds the process spine and lets you serve that same graph over any transport:

a contract (zod input / output) + a handler (a demesne-injected use case) + a host (owns the process, opens a fork scope per invocation)

The host is the only thing that changes between transports. Config, the DI graph, the error channel, and graceful shutdown are shared.

HostDisposition DInvocation unit
@btravstack/start-apiHTTP statusper request
@btravstack/start-amqpack / requeue / dead-letterper message
@btravstack/start-temporalretryable / non-retryableper activity

Each host is pure transport glue over the kernel's runHandler + a total DispositionMap — no DI, lifecycle, validation, or dispatch logic of its own.

Built on the stack

start is where the BtravStack packages meet: demesne does the wiring, unthrown carries the errors, and 12-factor falls out of building your app as a graph.

Released under the MIT License. Incubating — the API is still settling.