Packages and imports

Most app code imports Beignet through @beignet/core subpaths. This page maps each app responsibility to the core subpath, integration package, or provider package that provides it.

Alpha software: All published Beignet packages are in the experimental 0.0.x alpha line. APIs and package boundaries may change between releases.

ResponsibilityImport path
Contracts@beignet/core/contracts
Server runtime@beignet/core/server
Web Fetch adapter@beignet/web
Web Fetch route testing@beignet/web/testing
Next.js adapter@beignet/next
Typed HTTP client@beignet/core/client
Client-only boundary helpers@beignet/core/client-only
Use cases@beignet/core/application
Operational task definitions@beignet/core/tasks
Ports, audit logging, redaction, cache, storage, and logging@beignet/core/ports
Provider lifecycle and instrumentation@beignet/core/providers
Domain helpers@beignet/core/domain
App errors@beignet/core/errors
HTTP error response helpers@beignet/core/errors/http
Product entitlements@beignet/core/entitlements
Environment config@beignet/core/config
Event definitions and listeners@beignet/core/events
Idempotency ports and helpers@beignet/core/idempotency
Job definitions and inline dispatch@beignet/core/jobs
Lease-backed locks and memory adapter@beignet/core/locks
Mail port and memory adapter@beignet/core/mail
Notification definitions, dispatchers, and test adapters@beignet/core/notifications
Durable outbox helpers@beignet/core/outbox
Payments port and memory adapter@beignet/core/payments
Search port and memory adapter@beignet/core/search
Inbound webhook definitions and verifiers@beignet/core/webhooks
Error reporting port and memory adapter@beignet/core/error-reporting
Feature flag definitions and adapters@beignet/core/flags
Schedule primitives@beignet/core/schedules
Server-only boundary helpers@beignet/core/server-only
Tenant scope helpers for repository boundaries@beignet/core/tenancy
Trace context helpers@beignet/core/tracing
Upload definitions, router, signer port, and test signer@beignet/core/uploads
Browser upload client@beignet/core/uploads/client
Pagination types and normalizers@beignet/core/pagination
Test fixtures, recording adapters, assertions, factories, and seeds@beignet/core/testing
OpenAPI generation@beignet/core/openapi
App scaffoldingcreate-beignet (run as bun create beignet, never imported)
CLI and generators@beignet/cli
Local request, provider, and audit timeline@beignet/devtools
TanStack Query integration@beignet/react-query
React Hook Form integration@beignet/react-hook-form
React upload hooks@beignet/react-uploads
URL state integration@beignet/nuqs

Server import policy

Framework-neutral route declarations, route registries, hooks, request types, and server primitives come from @beignet/core/server. Runtime adapters do not re-export that surface:

This keeps feature routes independent from the app's deployment runtime and prevents an adapter package from becoming an accidental second home for core APIs.

Provider packages

Provider packages adapt common services to app-owned ports. They are named provider-<capability>-<implementation>; when an implementation spans multiple database backends, each backend is a subpath export, so the Drizzle package ships @beignet/provider-db-drizzle/sqlite, /postgres, and /mysql:

ServicePackage
Better Auth@beignet/provider-auth-better-auth
Drizzle database@beignet/provider-db-drizzle
Memory event bus@beignet/provider-event-bus-memory
Redis event bus@beignet/provider-event-bus-redis
BullMQ jobs@beignet/provider-jobs-bullmq
Inngest jobs@beignet/provider-jobs-inngest
Pino logging@beignet/provider-logger-pino
Resend mail@beignet/provider-mail-resend
SMTP mail@beignet/provider-mail-smtp
Stripe payments@beignet/provider-payments-stripe
OpenFeature flags@beignet/provider-flags-openfeature
Sentry error reporting@beignet/provider-error-reporting-sentry
OpenTelemetry tracing and metrics@beignet/provider-tracing-opentelemetry
Redis locks@beignet/provider-locks-redis
Meilisearch search@beignet/provider-search-meilisearch
GitHub webhooks@beignet/provider-webhooks-github
Generic Stripe webhooks@beignet/provider-webhooks-stripe
Local storage@beignet/provider-storage-local
S3-compatible storage@beignet/provider-storage-s3
Vercel Blob storage@beignet/provider-storage-vercel-blob
Redis@beignet/provider-cache-redis
Upstash rate limiting@beignet/provider-rate-limit-upstash

Installation pattern

Start apps with the create-beignet package:

bun create beignet my-app

Generated apps include @beignet/cli as a dev dependency and a beignet package script, so maintenance commands run as bun beignet <command>.

Add packages when the app enables the corresponding capability:

bun add @beignet/core zod
bun add @beignet/web # Web Fetch runtimes
bun add @beignet/next # Next.js apps
bun add @beignet/react-query @tanstack/react-query
bun add @beignet/react-uploads
bun add @beignet/devtools

Use the generated API reference for exact public export signatures. Use package READMEs — rendered on each package's page in the @beignet npm org — for package-level setup notes, and use the docs site for app architecture and production workflow.