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.xalpha line. APIs and package boundaries may change between releases.
| Responsibility | Import 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 scaffolding | create-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:
- Use
@beignet/nextforcreateNextServer(...), lazy server loading, Next route handlers, Next client defaults, and Server Component context. - Use
@beignet/webforcreateFetchServer(...), Web Fetch conversion, and standardRequest/Responseadapters.
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:
| Service | Package |
|---|---|
| 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-appGenerated 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/devtoolsUse 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.