{
  "schemaVersion": 1,
  "frameworkVersion": "0.0.65",
  "revision": "f27ffc691ada2988ce24a71558d3c529d53a9c1d",
  "modified": true,
  "scope": "current-checkout",
  "bootstrapUrl": "https://www.beignetjs.com/markdown/agent-instructions.md",
  "indexUrl": "https://www.beignetjs.com/llms.txt",
  "pages": [
    {
      "path": "/",
      "title": "Beignet",
      "description": "A TypeScript application framework built for developers and agents, with shared REST contracts and CLI tools to scaffold and verify application code.",
      "section": "Start",
      "url": "https://www.beignetjs.com/",
      "markdownUrl": "https://www.beignetjs.com/markdown/index.md",
      "bytes": 5955
    },
    {
      "path": "/getting-started",
      "title": "Quickstart",
      "description": "Create a Beignet app, run it locally, and make a first schema change you can watch take effect across the form, API, and OpenAPI.",
      "section": "Start",
      "url": "https://www.beignetjs.com/getting-started",
      "markdownUrl": "https://www.beignetjs.com/markdown/getting-started.md",
      "bytes": 9670
    },
    {
      "path": "/getting-started/agents",
      "title": "Build with a coding agent",
      "description": "Create or inspect a Beignet app with a coding agent, make the first validation change, and review the checks together.",
      "section": "Start",
      "url": "https://www.beignetjs.com/getting-started/agents",
      "markdownUrl": "https://www.beignetjs.com/markdown/getting-started/agents.md",
      "bytes": 4909
    },
    {
      "path": "/agents",
      "title": "Agent tools",
      "description": "Build with coding agents: inspect the app, scaffold features, and verify changes with the CLI, versioned package skills, generated guides, and MCP tools.",
      "section": "Start",
      "url": "https://www.beignetjs.com/agents",
      "markdownUrl": "https://www.beignetjs.com/markdown/agents.md",
      "bytes": 25088
    },
    {
      "path": "/agent-instructions",
      "title": "Instructions for coding agents",
      "description": "Start agent work in a new or existing Beignet app: select version-appropriate guidance, inspect the source, scaffold a change, and verify the result.",
      "section": "Start",
      "url": "https://www.beignetjs.com/agent-instructions",
      "markdownUrl": "https://www.beignetjs.com/markdown/agent-instructions.md",
      "bytes": 5288
    },
    {
      "path": "/learn",
      "title": "Build your first feature",
      "description": "Build a Projects feature with persistent data, account ownership, and a React UI, on your own or with a coding agent.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/learn",
      "markdownUrl": "https://www.beignetjs.com/markdown/learn.md",
      "bytes": 6388
    },
    {
      "path": "/build-first-resource",
      "title": "Build your first feature: API",
      "description": "Start the three-chapter Projects tutorial: generate the API, add a description field, migrate SQLite, and verify persisted records over HTTP.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/build-first-resource",
      "markdownUrl": "https://www.beignetjs.com/markdown/build-first-resource.md",
      "bytes": 13366
    },
    {
      "path": "/build-first-resource/ownership",
      "title": "Build your first feature: ownership",
      "description": "Add session-derived ownership, policies, filtered lists, and access-control tests to the Projects API from chapter one.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/build-first-resource/ownership",
      "markdownUrl": "https://www.beignetjs.com/markdown/build-first-resource/ownership.md",
      "bytes": 26163
    },
    {
      "path": "/build-first-resource/ui",
      "title": "Build your first feature: UI",
      "description": "Connect the authorized projects API to forms, a paginated list, detail and edit screens, cache refreshes, and account-switch cleanup.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/build-first-resource/ui",
      "markdownUrl": "https://www.beignetjs.com/markdown/build-first-resource/ui.md",
      "bytes": 19795
    },
    {
      "path": "/concepts",
      "title": "Mental model",
      "description": "Follow a request through a contract, route, use case, and port, then learn the vocabulary shared by Beignet APIs and tooling.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/concepts",
      "markdownUrl": "https://www.beignetjs.com/markdown/concepts.md",
      "bytes": 7091
    },
    {
      "path": "/app-architecture",
      "title": "App architecture",
      "description": "Understand the Beignet app architecture: where contracts, routes, use cases, ports, infra, clients, and features belong.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/app-architecture",
      "markdownUrl": "https://www.beignetjs.com/markdown/app-architecture.md",
      "bytes": 33078
    },
    {
      "path": "/comparisons",
      "title": "Comparisons",
      "description": "How Beignet compares to tRPC, ts-rest, oRPC, Hono, NestJS, AdonisJS, and Laravel-style frameworks — and when each is the better choice.",
      "section": "Learn",
      "url": "https://www.beignetjs.com/comparisons",
      "markdownUrl": "https://www.beignetjs.com/markdown/comparisons.md",
      "bytes": 12812
    },
    {
      "path": "/guides",
      "title": "Guides",
      "description": "Find practical guides for protecting resources, connecting a UI, uploading files, sending mail, running background work, and deploying a Beignet app.",
      "section": "Guides",
      "url": "https://www.beignetjs.com/guides",
      "markdownUrl": "https://www.beignetjs.com/markdown/guides.md",
      "bytes": 3528
    },
    {
      "path": "/guides/background-jobs",
      "title": "Run a background job",
      "description": "Extend the Projects app with a job saved in SQLite alongside a project, deliver it through an outbox drain, and verify retries and rollback.",
      "section": "Guides",
      "url": "https://www.beignetjs.com/guides/background-jobs",
      "markdownUrl": "https://www.beignetjs.com/markdown/guides/background-jobs.md",
      "bytes": 16688
    },
    {
      "path": "/contracts",
      "title": "Contracts",
      "description": "Define Beignet API contracts for methods, paths, parameters, responses, errors, metadata, and schema validation.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/contracts",
      "markdownUrl": "https://www.beignetjs.com/markdown/contracts.md",
      "bytes": 15218
    },
    {
      "path": "/application",
      "title": "Use cases",
      "description": "Build validated Beignet use cases with input and output schemas, domain events, instrumentation, and route-handler wiring.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/application",
      "markdownUrl": "https://www.beignetjs.com/markdown/application.md",
      "bytes": 15154
    },
    {
      "path": "/agent-capabilities",
      "title": "Agent capabilities",
      "description": "Expose typed, validated Beignet use cases through capability registries, MCP tools, and Better Auth Agent Auth.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/agent-capabilities",
      "markdownUrl": "https://www.beignetjs.com/markdown/agent-capabilities.md",
      "bytes": 19843
    },
    {
      "path": "/ports",
      "title": "Ports and adapters",
      "description": "Define dependency ports for Beignet application code so handlers and use cases stay independent from infrastructure.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/ports",
      "markdownUrl": "https://www.beignetjs.com/markdown/ports.md",
      "bytes": 13533
    },
    {
      "path": "/server",
      "title": "Routes and server",
      "description": "Create Beignet servers with typed route handlers, request and response validation, lifecycle hooks, and runtime adapters.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/server",
      "markdownUrl": "https://www.beignetjs.com/markdown/server.md",
      "bytes": 41309
    },
    {
      "path": "/request-lifecycle",
      "title": "Request lifecycle",
      "description": "Follow a Beignet request through route matching, parsing, hooks, context, handlers, validation, errors, and response ownership.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/request-lifecycle",
      "markdownUrl": "https://www.beignetjs.com/markdown/request-lifecycle.md",
      "bytes": 19306
    },
    {
      "path": "/hooks",
      "title": "Hooks",
      "description": "Use Beignet server hooks for auth, CORS, logging, tracing, rate limits, response shaping, and error mapping.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/hooks",
      "markdownUrl": "https://www.beignetjs.com/markdown/hooks.md",
      "bytes": 12457
    },
    {
      "path": "/errors",
      "title": "Errors",
      "description": "Handle Beignet server and client errors with AppError, ContractError, structured response envelopes, and safeCall.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/errors",
      "markdownUrl": "https://www.beignetjs.com/markdown/errors.md",
      "bytes": 8836
    },
    {
      "path": "/client",
      "title": "Clients",
      "description": "Create fully typed Beignet HTTP clients from your contracts with typed params, responses, errors, and safe calls.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/client",
      "markdownUrl": "https://www.beignetjs.com/markdown/client.md",
      "bytes": 14515
    },
    {
      "path": "/openapi",
      "title": "OpenAPI",
      "description": "Generate OpenAPI 3.1 documents from Beignet contracts, operation metadata, responses, parameters, and Zod schemas.",
      "section": "Core app model",
      "url": "https://www.beignetjs.com/openapi",
      "markdownUrl": "https://www.beignetjs.com/markdown/openapi.md",
      "bytes": 21350
    },
    {
      "path": "/domain",
      "title": "Domain modeling",
      "description": "Use Beignet domain helpers for value objects, entities, domain events, and validated domain modeling.",
      "section": "Feature design",
      "url": "https://www.beignetjs.com/domain",
      "markdownUrl": "https://www.beignetjs.com/markdown/domain.md",
      "bytes": 2888
    },
    {
      "path": "/authentication",
      "title": "Authentication",
      "description": "Authenticate Beignet requests with auth ports, route metadata, HTTP boundary hooks, and Better Auth.",
      "section": "Feature design",
      "url": "https://www.beignetjs.com/authentication",
      "markdownUrl": "https://www.beignetjs.com/markdown/authentication.md",
      "bytes": 28420
    },
    {
      "path": "/authorization",
      "title": "Authorization",
      "description": "Keep Beignet authorization in use cases and app-owned policy functions so business rules run from HTTP, jobs, scripts, and tests.",
      "section": "Feature design",
      "url": "https://www.beignetjs.com/authorization",
      "markdownUrl": "https://www.beignetjs.com/markdown/authorization.md",
      "bytes": 18807
    },
    {
      "path": "/tenancy",
      "title": "Tenancy",
      "description": "Resolve tenant scope from verified request state, carry it on context, scope repositories, and enforce tenant boundaries in policies.",
      "section": "Feature design",
      "url": "https://www.beignetjs.com/tenancy",
      "markdownUrl": "https://www.beignetjs.com/markdown/tenancy.md",
      "bytes": 7551
    },
    {
      "path": "/config",
      "title": "Config",
      "description": "Define environment-first Beignet configuration with schema validation, prefix filtering, typed values, and testable config loading.",
      "section": "Feature design",
      "url": "https://www.beignetjs.com/config",
      "markdownUrl": "https://www.beignetjs.com/markdown/config.md",
      "bytes": 4334
    },
    {
      "path": "/testing",
      "title": "Testing",
      "description": "Test Beignet apps at the use-case, route, contract, provider, seed, and resource boundaries.",
      "section": "Feature design",
      "url": "https://www.beignetjs.com/testing",
      "markdownUrl": "https://www.beignetjs.com/markdown/testing.md",
      "bytes": 22733
    },
    {
      "path": "/react",
      "title": "React overview",
      "description": "Choose Beignet React integrations for server state, URL state, and forms while reusing contract schemas and types.",
      "section": "Frontend adapters",
      "url": "https://www.beignetjs.com/react",
      "markdownUrl": "https://www.beignetjs.com/markdown/react.md",
      "bytes": 5600
    },
    {
      "path": "/react-query",
      "title": "React Query",
      "description": "Create typed TanStack Query options, mutations, query keys, cancellation, and prefetching from Beignet contracts.",
      "section": "Frontend adapters",
      "url": "https://www.beignetjs.com/react-query",
      "markdownUrl": "https://www.beignetjs.com/markdown/react-query.md",
      "bytes": 27621
    },
    {
      "path": "/react-hook-form",
      "title": "React Hook Form",
      "description": "Create typed React Hook Form options from Beignet request body schemas and reuse contract validation in forms.",
      "section": "Frontend adapters",
      "url": "https://www.beignetjs.com/react-hook-form",
      "markdownUrl": "https://www.beignetjs.com/markdown/react-hook-form.md",
      "bytes": 13268
    },
    {
      "path": "/react-form",
      "title": "TanStack Form",
      "description": "Create typed TanStack Form options from Beignet request body schemas with Standard Schema validation and server error mapping.",
      "section": "Frontend adapters",
      "url": "https://www.beignetjs.com/react-form",
      "markdownUrl": "https://www.beignetjs.com/markdown/react-form.md",
      "bytes": 9711
    },
    {
      "path": "/react-uploads",
      "title": "React uploads",
      "description": "Track Beignet upload client state from React components with typed metadata, progress, errors, and completion results.",
      "section": "Frontend adapters",
      "url": "https://www.beignetjs.com/react-uploads",
      "markdownUrl": "https://www.beignetjs.com/markdown/react-uploads.md",
      "bytes": 7846
    },
    {
      "path": "/nuqs",
      "title": "nuqs",
      "description": "Connect Beignet query schemas to nuqs URL state for typed search, filters, tabs, sorting, and pagination.",
      "section": "Frontend adapters",
      "url": "https://www.beignetjs.com/nuqs",
      "markdownUrl": "https://www.beignetjs.com/markdown/nuqs.md",
      "bytes": 8303
    },
    {
      "path": "/providers",
      "title": "Providers",
      "description": "Install Beignet provider adapters for databases, caches, mail, auth, logging, jobs, rate limits, and event buses.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/providers",
      "markdownUrl": "https://www.beignetjs.com/markdown/providers.md",
      "bytes": 20588
    },
    {
      "path": "/database",
      "title": "Database and transactions",
      "description": "Use Beignet repository ports, Drizzle adapters, Unit of Work transactions, and after-commit domain events in production apps.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/database",
      "markdownUrl": "https://www.beignetjs.com/markdown/database.md",
      "bytes": 39535
    },
    {
      "path": "/encryption",
      "title": "Encryption",
      "description": "Encrypt sensitive strings through EncryptionPort, bind values to their context, and manage key generation, rotation, and recovery.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/encryption",
      "markdownUrl": "https://www.beignetjs.com/markdown/encryption.md",
      "bytes": 9976
    },
    {
      "path": "/cache",
      "title": "Cache",
      "description": "Use Beignet's CachePort with Redis or app-owned adapters for cached reads, invalidation, and typed serialization.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/cache",
      "markdownUrl": "https://www.beignetjs.com/markdown/cache.md",
      "bytes": 7043
    },
    {
      "path": "/search",
      "title": "Search",
      "description": "Index and query searchable Beignet read models through SearchPort, memory tests, and Meilisearch providers.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/search",
      "markdownUrl": "https://www.beignetjs.com/markdown/search.md",
      "bytes": 9661
    },
    {
      "path": "/storage",
      "title": "Storage",
      "description": "Use Beignet's StoragePort for object storage, generated files, imports, exports, attachments, and public asset URLs.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/storage",
      "markdownUrl": "https://www.beignetjs.com/markdown/storage.md",
      "bytes": 23100
    },
    {
      "path": "/uploads",
      "title": "Uploads",
      "description": "Define typed upload workflows with file constraints, authorization, direct upload signing, completion hooks, and storage-backed objects.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/uploads",
      "markdownUrl": "https://www.beignetjs.com/markdown/uploads.md",
      "bytes": 22183
    },
    {
      "path": "/payments",
      "title": "Payments and billing",
      "description": "Use Beignet's PaymentsPort with Stripe for hosted checkout, billing portal sessions, refunds, verified webhooks, and app-owned billing workflows.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/payments",
      "markdownUrl": "https://www.beignetjs.com/markdown/payments.md",
      "bytes": 24297
    },
    {
      "path": "/webhooks",
      "title": "Webhooks",
      "description": "Receive provider webhooks with raw-body signature verification, typed event catalogs, Next.js route adapters, and idempotent handlers.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/webhooks",
      "markdownUrl": "https://www.beignetjs.com/markdown/webhooks.md",
      "bytes": 12785
    },
    {
      "path": "/feature-flags",
      "title": "Feature flags",
      "description": "Define typed Beignet feature flags, evaluate them through FlagsPort, test them with memory adapters, and adapt OpenFeature providers.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/feature-flags",
      "markdownUrl": "https://www.beignetjs.com/markdown/feature-flags.md",
      "bytes": 4951
    },
    {
      "path": "/mail",
      "title": "Mail",
      "description": "Send mail through Beignet's stable MailerPort with Resend, SMTP, memory test adapters, jobs, and devtools.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/mail",
      "markdownUrl": "https://www.beignetjs.com/markdown/mail.md",
      "bytes": 13854
    },
    {
      "path": "/rate-limiting",
      "title": "Rate limiting",
      "description": "Protect Beignet routes with contract metadata, rate limit hooks, and Upstash-backed RateLimitPort adapters.",
      "section": "Infrastructure",
      "url": "https://www.beignetjs.com/rate-limiting",
      "markdownUrl": "https://www.beignetjs.com/markdown/rate-limiting.md",
      "bytes": 12428
    },
    {
      "path": "/workflows",
      "title": "Workflows",
      "description": "Map Beignet's background work toolbox: events, jobs, schedules, tasks, notifications, idempotency, and outbox, and how they compose into workflows.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/workflows",
      "markdownUrl": "https://www.beignetjs.com/markdown/workflows.md",
      "bytes": 13733
    },
    {
      "path": "/events",
      "title": "Events",
      "description": "Define Beignet domain events, listeners, event buses, and after-commit publishing.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/events",
      "markdownUrl": "https://www.beignetjs.com/markdown/events.md",
      "bytes": 13439
    },
    {
      "path": "/broadcasting",
      "title": "Broadcasting",
      "description": "Publish typed browser updates through authorized channels, SSE, and memory or Redis providers, with reconnect reconciliation and transactional inbox hints.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/broadcasting",
      "markdownUrl": "https://www.beignetjs.com/markdown/broadcasting.md",
      "bytes": 35253
    },
    {
      "path": "/jobs",
      "title": "Jobs",
      "description": "Define typed Beignet jobs, dispatch them locally or durably, and run them through provider adapters such as BullMQ or Inngest.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/jobs",
      "markdownUrl": "https://www.beignetjs.com/markdown/jobs.md",
      "bytes": 48646
    },
    {
      "path": "/schedules",
      "title": "Schedules",
      "description": "Define typed Beignet schedules for cron-triggered workflows, inline testing, and job dispatch.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/schedules",
      "markdownUrl": "https://www.beignetjs.com/markdown/schedules.md",
      "bytes": 11156
    },
    {
      "path": "/idempotency",
      "title": "Idempotency",
      "description": "Make Beignet commands, webhooks, and jobs safe to retry with scoped keys, payload fingerprints, and durable reservations.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/idempotency",
      "markdownUrl": "https://www.beignetjs.com/markdown/idempotency.md",
      "bytes": 16658
    },
    {
      "path": "/locks",
      "title": "Locks and leases",
      "description": "Coordinate singleton schedules, jobs, outbox drains, and short critical sections with lease-backed LocksPort providers.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/locks",
      "markdownUrl": "https://www.beignetjs.com/markdown/locks.md",
      "bytes": 7639
    },
    {
      "path": "/outbox",
      "title": "Outbox",
      "description": "Record Beignet events and jobs transactionally, then drain them after commit with retries and dead-letter handling.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/outbox",
      "markdownUrl": "https://www.beignetjs.com/markdown/outbox.md",
      "bytes": 36649
    },
    {
      "path": "/notifications",
      "title": "Notifications",
      "description": "Define user-facing Beignet notifications above mail, Web Push, jobs, events, and outbox-backed delivery.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/notifications",
      "markdownUrl": "https://www.beignetjs.com/markdown/notifications.md",
      "bytes": 26310
    },
    {
      "path": "/tasks",
      "title": "Tasks",
      "description": "Define typed Beignet operational tasks for backfills and maintenance, register them in server/tasks.ts, and run them with beignet task run.",
      "section": "Background work",
      "url": "https://www.beignetjs.com/tasks",
      "markdownUrl": "https://www.beignetjs.com/markdown/tasks.md",
      "bytes": 7441
    },
    {
      "path": "/observability",
      "title": "OpenTelemetry",
      "description": "Export Beignet request, use case, listener, job, schedule, task, and provider telemetry through app-owned OpenTelemetry SDKs.",
      "section": "Observability",
      "url": "https://www.beignetjs.com/observability",
      "markdownUrl": "https://www.beignetjs.com/markdown/observability.md",
      "bytes": 10768
    },
    {
      "path": "/logging",
      "title": "Logging",
      "description": "Add structured logging to Beignet apps with LoggerPort, request hooks, Pino, request IDs, and production-safe metadata.",
      "section": "Observability",
      "url": "https://www.beignetjs.com/logging",
      "markdownUrl": "https://www.beignetjs.com/markdown/logging.md",
      "bytes": 8558
    },
    {
      "path": "/error-reporting",
      "title": "Error reporting",
      "description": "Report Beignet HTTP, job, schedule, outbox, and task failures through ErrorReporterPort, memory tests, and Sentry providers.",
      "section": "Observability",
      "url": "https://www.beignetjs.com/error-reporting",
      "markdownUrl": "https://www.beignetjs.com/markdown/error-reporting.md",
      "bytes": 13569
    },
    {
      "path": "/audit",
      "title": "Audit and activity logging",
      "description": "Record durable Beignet audit logs with actor, tenant, request, resource, and transaction-aware activity metadata.",
      "section": "Observability",
      "url": "https://www.beignetjs.com/audit",
      "markdownUrl": "https://www.beignetjs.com/markdown/audit.md",
      "bytes": 12537
    },
    {
      "path": "/devtools",
      "title": "Devtools",
      "description": "Use Beignet devtools to inspect development-time request, error, use case, job, schedule, and provider events.",
      "section": "Observability",
      "url": "https://www.beignetjs.com/devtools",
      "markdownUrl": "https://www.beignetjs.com/markdown/devtools.md",
      "bytes": 16624
    },
    {
      "path": "/deployment",
      "title": "Going to production",
      "description": "Take a Beignet app to production: preflight checks, env validation and secrets, host settings, runtime entrypoints, and the pre-launch security checklist.",
      "section": "Going to production",
      "url": "https://www.beignetjs.com/deployment",
      "markdownUrl": "https://www.beignetjs.com/markdown/deployment.md",
      "bytes": 20431
    },
    {
      "path": "/runtime-recipes",
      "title": "Runtime recipes",
      "description": "Choose Beignet runtime entrypoints for web processes, cron routes, outbox drains, workers, provider-backed functions, tasks, and readiness checks.",
      "section": "Going to production",
      "url": "https://www.beignetjs.com/runtime-recipes",
      "markdownUrl": "https://www.beignetjs.com/markdown/runtime-recipes.md",
      "bytes": 23353
    },
    {
      "path": "/privacy-lifecycle",
      "title": "Privacy lifecycle",
      "description": "Design Beignet app retention, export, deletion, anonymization, redaction, and sensitive-data boundaries before production launch.",
      "section": "Going to production",
      "url": "https://www.beignetjs.com/privacy-lifecycle",
      "markdownUrl": "https://www.beignetjs.com/markdown/privacy-lifecycle.md",
      "bytes": 8275
    },
    {
      "path": "/cli",
      "title": "CLI",
      "description": "Use the Beignet CLI to create apps, generate features, inspect routes, and keep projects aligned.",
      "section": "Reference",
      "url": "https://www.beignetjs.com/cli",
      "markdownUrl": "https://www.beignetjs.com/markdown/cli.md",
      "bytes": 89883
    },
    {
      "path": "/package-reference",
      "title": "Packages and imports",
      "description": "Map Beignet app responsibilities to the core subpaths, integration packages, providers, and tooling that implement them.",
      "section": "Reference",
      "url": "https://www.beignetjs.com/package-reference",
      "markdownUrl": "https://www.beignetjs.com/markdown/package-reference.md",
      "bytes": 12851
    },
    {
      "path": "/stability",
      "title": "Stability and releases",
      "description": "Understand Beignet's alpha compatibility policy, matching package versions, release validation, and upgrade expectations.",
      "section": "Reference",
      "url": "https://www.beignetjs.com/stability",
      "markdownUrl": "https://www.beignetjs.com/markdown/stability.md",
      "bytes": 5456
    },
    {
      "path": "/upgrading",
      "title": "Upgrading",
      "description": "Upgrade Beignet packages in lockstep, apply release migrations, and validate framework, provider, worker, and generated-app boundaries.",
      "section": "Reference",
      "url": "https://www.beignetjs.com/upgrading",
      "markdownUrl": "https://www.beignetjs.com/markdown/upgrading.md",
      "bytes": 14729
    },
    {
      "path": "/writing-a-provider",
      "title": "Writing a provider",
      "description": "Build a Beignet provider package: ports, lifecycle, instrumentation, metadata manifest, and conventions.",
      "section": "Reference",
      "url": "https://www.beignetjs.com/writing-a-provider",
      "markdownUrl": "https://www.beignetjs.com/markdown/writing-a-provider.md",
      "bytes": 18561
    },
    {
      "path": "/api-reference",
      "title": "API reference",
      "description": "Open the generated Beignet API reference built from public TypeScript exports and TSDoc comments.",
      "section": "Reference",
      "url": "https://www.beignetjs.com/api-reference",
      "markdownUrl": "https://www.beignetjs.com/markdown/api-reference.md",
      "bytes": 1382
    }
  ]
}
