Skip to content

Brick catalogue

Add a brick, get a feature. Each one contributes a capability to the request context, fully typed — and leaving it out makes using it a compile error rather than a crash at 3am.

Every page below answers the same questions in the same order: what it installs, what files and tables it creates, what endpoints it adds, and what it cannot do. If a brick has no endpoints, its page says so rather than omitting the section.

Brick Adds Endpoints
openapi ctx.openapi /openapi.json, /docs
db ctx.db — the native client optional health path
db-drizzle ctx.db — Drizzle, typed from your schema none
db-mongoose ctx.db — a Mongoose Connection none
auth ctx.user, ctx.auth none itself
auth-basic email and password auth, on Drizzle eight, at /auth/*
auth-mongo the same flows, on Mongoose eight, at /auth/*
auth-clerk ctx.user from Clerk, hosted sign-in none
auth-better ctx.user from better-auth all of its own
storage ctx.storage — S3, R2, MinIO, or a local directory none
mail ctx.mail /_oven/mail in development
queue ctx.queue — jobs, retries, cron /_oven/queue in development
cache ctx.cache — tags, stampede protection none
telemetry OpenTelemetry tracing (middleware) none
webhooks ctx.webhook — verified inbound deliveries none
ratelimit shared rate limiting (middleware) none
vector ctx.vector — embeddings, search, namespaces none
ai ctx.ai — SSE streaming, caching, token accounting none
image ctx.image — resize, convert, guard uploads none
storage-bunny Bunny.net as a storage driver none
storage-imagekit ImageKit as a storage driver none
Brick Adds
@theoven/db-prisma ctx.db — a PrismaClient

The brick contract is small and public — see Writing a brick for the interface and how types flow. A third-party brick is a normal npm package that exports a factory function; nothing about the first-party ones is privileged.