{
  "name": "Lakebed Docs",
  "url": "https://docs.lakebed.dev",
  "description": "Public alpha documentation for Lakebed, an agent-native CLI and runtime for small full-stack TypeScript apps.",
  "agentEntrypoints": {
    "agentsMd": "https://lakebed.dev/agents.md",
    "llms": "/llms.txt",
    "llmsFull": "/llms-full.txt",
    "manifest": "/docs.json"
  },
  "pages": [
    {
      "title": "Lakebed Docs",
      "description": "Capsule layout, server and client contracts, actions, auth and env basics, runtime inspection, deploy, custom domains, and current limits in one page.",
      "section": "Docs",
      "source": "docs/README.md",
      "url": "/",
      "canonicalUrl": "https://docs.lakebed.dev/",
      "markdownUrl": "/index.md",
      "headings": [
        {
          "id": "lakebed-docs",
          "level": 1,
          "text": "Lakebed Docs"
        },
        {
          "id": "start-here",
          "level": 2,
          "text": "Start Here"
        },
        {
          "id": "server-contract",
          "level": 2,
          "text": "Server Contract"
        },
        {
          "id": "client-contract",
          "level": 2,
          "text": "Client Contract"
        },
        {
          "id": "actions",
          "level": 2,
          "text": "Actions"
        },
        {
          "id": "auth-and-env",
          "level": 2,
          "text": "Auth And Env"
        },
        {
          "id": "inspect-the-runtime",
          "level": 2,
          "text": "Inspect The Runtime"
        },
        {
          "id": "deploy",
          "level": 2,
          "text": "Deploy"
        },
        {
          "id": "bring-your-own-domain",
          "level": 3,
          "text": "Bring your own domain"
        },
        {
          "id": "current-limits",
          "level": 2,
          "text": "Current Limits"
        },
        {
          "id": "read-next",
          "level": 2,
          "text": "Read Next"
        }
      ]
    },
    {
      "title": "Lakebed Reference",
      "description": "Quick contract for every capsule surface: module boundaries, server, data, endpoint, and client APIs, CLI commands, env, styling, inspection, deploy behavior, and custom domains.",
      "section": "Docs",
      "source": "docs/reference.md",
      "url": "/reference/",
      "canonicalUrl": "https://docs.lakebed.dev/reference/",
      "markdownUrl": "/reference/index.md",
      "headings": [
        {
          "id": "lakebed-reference",
          "level": 1,
          "text": "Lakebed Reference"
        },
        {
          "id": "capsule",
          "level": 2,
          "text": "Capsule"
        },
        {
          "id": "module-boundaries",
          "level": 2,
          "text": "Module Boundaries"
        },
        {
          "id": "server-api",
          "level": 2,
          "text": "Server API"
        },
        {
          "id": "data-api",
          "level": 2,
          "text": "Data API"
        },
        {
          "id": "external-endpoints",
          "level": 2,
          "text": "External Endpoints"
        },
        {
          "id": "client-api",
          "level": 2,
          "text": "Client API"
        },
        {
          "id": "actions",
          "level": 2,
          "text": "Actions"
        },
        {
          "id": "auth",
          "level": 2,
          "text": "Auth"
        },
        {
          "id": "server-env",
          "level": 2,
          "text": "Server Env"
        },
        {
          "id": "cli-environment-variables",
          "level": 3,
          "text": "CLI environment variables"
        },
        {
          "id": "styling",
          "level": 2,
          "text": "Styling"
        },
        {
          "id": "runtime-inspection",
          "level": 2,
          "text": "Runtime Inspection"
        },
        {
          "id": "cli",
          "level": 2,
          "text": "CLI"
        },
        {
          "id": "build-behavior",
          "level": 2,
          "text": "Build behavior"
        },
        {
          "id": "deploy-behavior",
          "level": 2,
          "text": "Deploy Behavior"
        },
        {
          "id": "custom-domains",
          "level": 2,
          "text": "Custom Domains"
        },
        {
          "id": "http",
          "level": 3,
          "text": "HTTP"
        }
      ]
    },
    {
      "title": "Capsule Database",
      "description": "Database API v1: indexes, field types, optional fields, sort rules, collect versus paginate, dashboard counts, relationships, user references, and consistency.",
      "section": "Docs",
      "source": "docs/database.md",
      "url": "/database/",
      "canonicalUrl": "https://docs.lakebed.dev/database/",
      "markdownUrl": "/database/index.md",
      "headings": [
        {
          "id": "capsule-database",
          "level": 1,
          "text": "Capsule Database"
        },
        {
          "id": "indexes",
          "level": 2,
          "text": "Indexes"
        },
        {
          "id": "field-types",
          "level": 2,
          "text": "Field types"
        },
        {
          "id": "numbers",
          "level": 3,
          "text": "Numbers"
        },
        {
          "id": "optional-fields",
          "level": 3,
          "text": "Optional fields"
        },
        {
          "id": "sort-rules",
          "level": 3,
          "text": "Sort rules"
        },
        {
          "id": "schema-changes-with-existing-rows",
          "level": 3,
          "text": "Schema changes with existing rows"
        },
        {
          "id": "collect-or-paginate",
          "level": 2,
          "text": "Collect or paginate"
        },
        {
          "id": "pagination",
          "level": 2,
          "text": "Pagination"
        },
        {
          "id": "dashboard-counts",
          "level": 2,
          "text": "Dashboard counts"
        },
        {
          "id": "relationships",
          "level": 2,
          "text": "Relationships"
        },
        {
          "id": "user-references",
          "level": 2,
          "text": "User references"
        },
        {
          "id": "consistency",
          "level": 2,
          "text": "Consistency"
        },
        {
          "id": "migrating-legacy-code",
          "level": 2,
          "text": "Migrating Legacy Code"
        }
      ]
    },
    {
      "title": "Database API v1 Migration Guide",
      "description": "Upgrade an older capsule from the synchronous full-scan database API to async database API v1, with an agent migration prompt.",
      "section": "Docs",
      "source": "docs/database-migration.md",
      "url": "/database-migration/",
      "canonicalUrl": "https://docs.lakebed.dev/database-migration/",
      "markdownUrl": "/database-migration/index.md",
      "headings": [
        {
          "id": "database-api-v1-migration-guide",
          "level": 1,
          "text": "Database API v1 Migration Guide"
        },
        {
          "id": "syntax-changes",
          "level": 2,
          "text": "Syntax Changes"
        },
        {
          "id": "designing-indexes",
          "level": 2,
          "text": "Designing Indexes"
        },
        {
          "id": "pagination",
          "level": 2,
          "text": "Pagination"
        },
        {
          "id": "data-and-deployment",
          "level": 2,
          "text": "Data And Deployment"
        },
        {
          "id": "guest-identities-and-stored-user-ids",
          "level": 2,
          "text": "Guest identities and stored user IDs"
        },
        {
          "id": "agent-migration-prompt",
          "level": 2,
          "text": "Agent Migration Prompt"
        }
      ]
    },
    {
      "title": "Capsule API",
      "description": "How to write server and client code: define the capsule, handler capabilities, shared code, client hooks and router, error handling, endpoint responses, logging, actions, auth, server env, and types.",
      "section": "Docs",
      "source": "docs/capsule-api.md",
      "url": "/capsule-api/",
      "canonicalUrl": "https://docs.lakebed.dev/capsule-api/",
      "markdownUrl": "/capsule-api/index.md",
      "headings": [
        {
          "id": "capsule-api",
          "level": 1,
          "text": "Capsule API"
        },
        {
          "id": "file-layout",
          "level": 2,
          "text": "File Layout"
        },
        {
          "id": "define-the-server",
          "level": 2,
          "text": "Define The Server"
        },
        {
          "id": "handler-capabilities",
          "level": 2,
          "text": "Handler capabilities"
        },
        {
          "id": "use-shared-code-carefully",
          "level": 2,
          "text": "Use Shared Code Carefully"
        },
        {
          "id": "build-the-client",
          "level": 2,
          "text": "Build The Client"
        },
        {
          "id": "handle-client-errors",
          "level": 2,
          "text": "Handle client errors"
        },
        {
          "id": "return-endpoint-responses",
          "level": 2,
          "text": "Return endpoint responses"
        },
        {
          "id": "log-from-server-handlers",
          "level": 2,
          "text": "Log from server handlers"
        },
        {
          "id": "run-actions",
          "level": 2,
          "text": "Run actions"
        },
        {
          "id": "auth",
          "level": 2,
          "text": "Auth"
        },
        {
          "id": "server-env",
          "level": 2,
          "text": "Server Env"
        },
        {
          "id": "types",
          "level": 2,
          "text": "Types"
        },
        {
          "id": "run-and-inspect",
          "level": 2,
          "text": "Run And Inspect"
        },
        {
          "id": "deploy",
          "level": 2,
          "text": "Deploy"
        }
      ]
    },
    {
      "title": "Limits",
      "description": "Free-plan resource limits for requests, database reads and writes, actions, storage, logs, and server env, the quota errors they raise, and how to check usage.",
      "section": "Docs",
      "source": "docs/limits.md",
      "url": "/limits/",
      "canonicalUrl": "https://docs.lakebed.dev/limits/",
      "markdownUrl": "/limits/index.md",
      "headings": [
        {
          "id": "limits",
          "level": 1,
          "text": "Limits"
        },
        {
          "id": "default-limits",
          "level": 2,
          "text": "Default limits"
        },
        {
          "id": "reading-a-quota-error",
          "level": 2,
          "text": "Reading a quota error"
        },
        {
          "id": "checking-usage",
          "level": 2,
          "text": "Checking usage"
        },
        {
          "id": "notes",
          "level": 2,
          "text": "Notes"
        }
      ]
    },
    {
      "title": "Identity and authentication",
      "description": "Guest and Google sign-in identity: requireIdentity and requireSignedIn, custom endpoint credentials, requireSignIn apps, userId references, guest upgrades, profile data, local test identities, and restricted apps.",
      "section": "Docs",
      "source": "docs/auth.md",
      "url": "/auth/",
      "canonicalUrl": "https://docs.lakebed.dev/auth/",
      "markdownUrl": "/auth/index.md",
      "headings": [
        {
          "id": "identity-and-authentication",
          "level": 1,
          "text": "Identity and authentication"
        },
        {
          "id": "guest-and-signed-in-users",
          "level": 2,
          "text": "Guest and signed-in users"
        },
        {
          "id": "session-and-data-lifetime",
          "level": 3,
          "text": "Session and data lifetime"
        },
        {
          "id": "require-an-identity",
          "level": 2,
          "text": "Require an identity"
        },
        {
          "id": "custom-endpoint-credentials",
          "level": 2,
          "text": "Custom endpoint credentials"
        },
        {
          "id": "require-sign-in-for-the-app",
          "level": 2,
          "text": "Require sign-in for the app"
        },
        {
          "id": "user-references-and-guest-upgrades",
          "level": 2,
          "text": "User references and guest upgrades"
        },
        {
          "id": "choose-how-conflicting-records-combine",
          "level": 3,
          "text": "Choose how conflicting records combine"
        },
        {
          "id": "signed-in-identity-and-profile-data",
          "level": 2,
          "text": "Signed-in identity and profile data"
        },
        {
          "id": "local-development",
          "level": 2,
          "text": "Local development"
        },
        {
          "id": "upgrade-an-existing-capsule",
          "level": 2,
          "text": "Upgrade an existing capsule"
        },
        {
          "id": "restricted-apps-and-lakebed-users",
          "level": 2,
          "text": "Restricted apps and lakebed users"
        }
      ]
    },
    {
      "title": "Object storage",
      "description": "Built-in object storage for user uploads: client upload and delete, reading objects, HTTP routes, blocked file types, moderation, limits, errors, and a profile picture example.",
      "section": "Docs",
      "source": "docs/storage.md",
      "url": "/storage/",
      "canonicalUrl": "https://docs.lakebed.dev/storage/",
      "markdownUrl": "/storage/index.md",
      "headings": [
        {
          "id": "object-storage",
          "level": 1,
          "text": "Object storage"
        },
        {
          "id": "upload-and-delete-from-the-client",
          "level": 2,
          "text": "Upload and delete from the client"
        },
        {
          "id": "read-stored-objects",
          "level": 2,
          "text": "Read stored objects"
        },
        {
          "id": "http-routes",
          "level": 2,
          "text": "HTTP routes"
        },
        {
          "id": "authentication-and-safety",
          "level": 2,
          "text": "Authentication and safety"
        },
        {
          "id": "blocked-file-types",
          "level": 2,
          "text": "Blocked file types"
        },
        {
          "id": "developer-dashboard-and-moderation",
          "level": 2,
          "text": "Developer dashboard and moderation"
        },
        {
          "id": "limits",
          "level": 2,
          "text": "Limits"
        },
        {
          "id": "errors",
          "level": 2,
          "text": "Errors"
        },
        {
          "id": "example-profile-picture",
          "level": 2,
          "text": "Example: Profile picture"
        },
        {
          "id": "local-development",
          "level": 2,
          "text": "Local development"
        },
        {
          "id": "not-included",
          "level": 2,
          "text": "Not included"
        },
        {
          "id": "from-the-cli",
          "level": 2,
          "text": "From the CLI"
        }
      ]
    },
    {
      "title": "Lakebed Examples",
      "description": "Complete example capsules that show the file layout and patterns an app-building agent should copy.",
      "section": "Examples",
      "source": "examples/README.md",
      "url": "/examples/",
      "canonicalUrl": "https://docs.lakebed.dev/examples/",
      "markdownUrl": "/examples/index.md",
      "headings": [
        {
          "id": "lakebed-examples",
          "level": 1,
          "text": "Lakebed Examples"
        },
        {
          "id": "what-to-copy",
          "level": 2,
          "text": "What To Copy"
        },
        {
          "id": "examples",
          "level": 2,
          "text": "Examples"
        }
      ]
    },
    {
      "title": "Todo Example",
      "description": "Personal todo lists per guest or account, with ownership checks and Google sign-in that keeps the list.",
      "section": "Examples",
      "source": "examples/todo/README.md",
      "url": "/examples/todo/",
      "canonicalUrl": "https://docs.lakebed.dev/examples/todo/",
      "markdownUrl": "/examples/todo/index.md",
      "headings": [
        {
          "id": "todo-example",
          "level": 1,
          "text": "Todo Example"
        },
        {
          "id": "what-it-shows",
          "level": 2,
          "text": "What It Shows"
        },
        {
          "id": "server-pattern",
          "level": 2,
          "text": "Server Pattern"
        },
        {
          "id": "run-it",
          "level": 2,
          "text": "Run It"
        }
      ]
    },
    {
      "title": "Guestbook Example",
      "description": "An intentionally shared feed that guests and signed-in users can both post to and read.",
      "section": "Examples",
      "source": "examples/guestbook/README.md",
      "url": "/examples/guestbook/",
      "canonicalUrl": "https://docs.lakebed.dev/examples/guestbook/",
      "markdownUrl": "/examples/guestbook/index.md",
      "headings": [
        {
          "id": "guestbook-example",
          "level": 1,
          "text": "Guestbook Example"
        },
        {
          "id": "what-it-shows",
          "level": 2,
          "text": "What It Shows"
        },
        {
          "id": "server-pattern",
          "level": 2,
          "text": "Server Pattern"
        },
        {
          "id": "run-it",
          "level": 2,
          "text": "Run It"
        }
      ]
    }
  ]
}
