Telaio
Build backends
with certainty.
The hard decisions are already made. PostgreSQL, Redis, queues, auth, email — pre-chosen, pre-typed, pre-wired. Skip the configuration. Ship the product.
// app.ts
const app = await createApp(config)
.withDatabase()
.withCache()
.withQueue(queues)
.build()
// Database, cache, queues — wired.
// No decisions. Just build.Phantom Types
Feature flags live in the type system. If .withCache() was never called, app.cache doesn't exist at compile time — no runtime guards needed.
Builder Pattern
Compose exactly the features you need. Every .with*() call returns a narrower type. Unused modules don't exist in your build or your types.
Opinionated Stack
PostgreSQL via Kysely. Redis. pg-boss. Pino. TypeBox. Every pairing is pre-typed and pre-wired. Zero config overhead for decisions already made.
One stack. Zero compromises.
Every pairing is pre-typed, pre-wired, and battle-tested.
Fastify 5PostgreSQLKyselyRedispg-bossPinoTypeBoxZodAWS SDKReact EmailBetter AuthTypeScript
Quick Start
Up and running in under a minute.
CLI (recommended)
# Scaffold a new project
pnpx telaio init my-app
cd my-app
pnpm install
pnpm run dev