{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "stackfoundry",
  "homepage": "https://stackfoundry.dev",
  "items": [
    {
      "name": "aarrr-dashboard",
      "type": "registry:block",
      "title": "AARRR Dashboard",
      "description": "Acquisition, activation, retention, referral, revenue dashboard with cohort filters.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "account-deletion",
      "type": "registry:block",
      "title": "Account Deletion",
      "description": "Account deletion requests, grace windows, and cleanup checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/account-deletion.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/account-deletion.ts"
        },
        {
          "path": "apps/web/src/lib/account-deletion.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/account-deletion.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/account/deletion/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/account/deletion/page.tsx"
        }
      ]
    },
    {
      "name": "account-modes",
      "type": "registry:block",
      "title": "Account Modes",
      "description": "Personal, team, and hybrid account mode configuration for SaaS apps.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json",
        "https://stackfoundry.dev/r/orgs-rbac.json",
        "https://stackfoundry.dev/r/tenant-context.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/account-modes.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/account-modes.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/account-modes.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/account-modes.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/account/modes/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/account/modes/page.tsx"
        }
      ]
    },
    {
      "name": "account-settings",
      "type": "registry:block",
      "title": "Account Settings",
      "description": "Profile, security, sessions, and notification preference pages.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/app/(console)/settings/account/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/account/page.tsx"
        },
        {
          "path": "apps/web/src/lib/account-settings.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/account-settings.ts"
        }
      ]
    },
    {
      "name": "activation-onboarding",
      "type": "registry:block",
      "title": "Activation Onboarding",
      "description": "Onboarding checklist, first-value milestones, and time-to-value tracking.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "admin-console",
      "type": "registry:block",
      "title": "Admin Console",
      "description": "Super-admin shell for users, workspaces, metrics, and operational controls.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/audit-log.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/admin-console.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/admin-console.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/page.tsx"
        }
      ]
    },
    {
      "name": "admin-impersonation",
      "type": "registry:block",
      "title": "Admin Impersonation",
      "description": "Support/admin impersonation flows with audit logging and clear safety boundaries.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "ai-artifacts",
      "type": "registry:block",
      "title": "AI Artifacts",
      "description": "Document/code/sheet artifacts, side panel, and persistence.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "ai-chat",
      "type": "registry:block",
      "title": "AI Chat",
      "description": "AI SDK chat route, model selector, message persistence, and prompt input.",
      "dependencies": [
        "ai",
        "@ai-sdk/react",
        "@ai-sdk/gateway"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/app/api/ai/chat/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/ai/chat/route.ts"
        },
        {
          "path": "apps/web/src/components/ai/chat-box.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/ai/chat-box.tsx"
        },
        {
          "path": "apps/web/src/lib/ai/prompts.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/ai/prompts.ts"
        },
        {
          "path": "apps/web/src/lib/ai/models.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/ai/models.ts"
        }
      ]
    },
    {
      "name": "ai-seo",
      "type": "registry:block",
      "title": "AI SEO",
      "description": "llms.txt, llms-full.txt, and AI sitemap routes for AI-ready discovery.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/seo.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/ai-seo.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/ai-seo.ts"
        },
        {
          "path": "apps/web/src/app/llms.txt/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/llms.txt/route.ts"
        },
        {
          "path": "apps/web/src/app/llms-full.txt/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/llms-full.txt/route.ts"
        },
        {
          "path": "apps/web/src/app/ai-sitemap.json/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/ai-sitemap.json/route.ts"
        }
      ]
    },
    {
      "name": "ai-tools",
      "type": "registry:block",
      "title": "AI Tools",
      "description": "Tool definitions, typed tool rendering, and approval flows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "api-docs",
      "type": "registry:block",
      "title": "API Docs",
      "description": "API reference shell with auth, pagination, and error examples.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/api-docs.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/api-docs.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/docs/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/docs/page.tsx"
        }
      ]
    },
    {
      "name": "api-errors",
      "type": "registry:block",
      "title": "API Errors",
      "description": "Machine-readable API error shape, code catalog, and response helpers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/api-errors.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/api-errors.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/errors/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/errors/page.tsx"
        }
      ]
    },
    {
      "name": "api-keys",
      "type": "registry:block",
      "title": "API Keys",
      "description": "API key lifecycle, scopes, hashed storage, usage metadata, and management UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/api-keys.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/api-keys.ts"
        },
        {
          "path": "apps/web/src/lib/api-keys.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/api-keys.ts"
        },
        {
          "path": "apps/web/src/app/(console)/api-keys/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/api-keys/page.tsx"
        }
      ]
    },
    {
      "name": "api-usage-dashboard",
      "type": "registry:block",
      "title": "API Usage Dashboard",
      "description": "Per-key usage cards, request totals, errors, and limit visibility.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/api-keys.json",
        "https://stackfoundry.dev/r/usage-metering.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/api-usage-dashboard.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/api-usage-dashboard.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/usage/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/usage/page.tsx"
        }
      ]
    },
    {
      "name": "arcjet-security",
      "type": "registry:block",
      "title": "Arcjet Security",
      "description": "Arcjet request protection starter for bot detection, shielding, and rate limits.",
      "dependencies": [
        "@arcjet/next"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/security-headers.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/arcjet.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/arcjet.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/arcjet/protected/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/arcjet/protected/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/arcjet/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/arcjet/page.tsx"
        }
      ]
    },
    {
      "name": "audit-log",
      "type": "registry:block",
      "title": "Audit Log",
      "description": "Append-only activity table, event helpers, and admin timeline UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/audit-log.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/audit-log.ts"
        },
        {
          "path": "apps/web/src/lib/audit-log.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/audit-log.ts"
        },
        {
          "path": "apps/web/src/app/(console)/audit-log/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/audit-log/page.tsx"
        }
      ]
    },
    {
      "name": "auth-authjs",
      "type": "registry:block",
      "title": "Auth.js",
      "description": "Auth.js setup for teams that prefer classic Next auth flows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "auth-better-auth",
      "type": "registry:block",
      "title": "Better Auth",
      "description": "Better Auth server config, Next.js route handler, and typed client starter.",
      "dependencies": [
        "better-auth"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/auth.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/auth.ts"
        },
        {
          "path": "apps/web/src/lib/auth-client.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/auth-client.ts"
        },
        {
          "path": "apps/web/src/app/api/auth/[...all]/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/auth/[...all]/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/auth/better-auth/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/auth/better-auth/page.tsx"
        }
      ]
    },
    {
      "name": "auth-core",
      "type": "registry:block",
      "title": "Auth Core",
      "description": "Provider-neutral auth architecture, route layout, and provider selection guide for Clerk or Better Auth.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/account-modes.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/auth-options.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/auth-options.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/auth/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/auth/page.tsx"
        },
        {
          "path": "docs/auth-architecture.md",
          "type": "registry:file",
          "target": "docs/auth-architecture.md"
        }
      ]
    },
    {
      "name": "autumn-billing",
      "type": "registry:block",
      "title": "Autumn Billing",
      "description": "Autumn billing adapter for plan attach, checkout redirects, usage billing, and plan changes.",
      "dependencies": [
        "autumn-js"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json",
        "https://stackfoundry.dev/r/usage-metering.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/autumn/billing.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/autumn/billing.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/autumn-billing/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/autumn-billing/page.tsx"
        }
      ]
    },
    {
      "name": "autumn-entitlements",
      "type": "registry:block",
      "title": "Autumn Entitlements",
      "description": "Autumn entitlement adapter for feature checks, metered usage, check-and-consume, and upgrade context.",
      "dependencies": [
        "autumn-js"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/entitlements.json",
        "https://stackfoundry.dev/r/plan-gating.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/autumn/entitlements.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/autumn/entitlements.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/autumn-entitlements/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/autumn-entitlements/page.tsx"
        }
      ]
    },
    {
      "name": "axiom-logging",
      "type": "registry:block",
      "title": "Axiom Logging",
      "description": "Axiom structured event logger and server route for deployment smoke checks.",
      "dependencies": [
        "@axiomhq/js"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/axiom/logger.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/axiom/logger.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/axiom/log/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/axiom/log/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/axiom/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/axiom/page.tsx"
        }
      ]
    },
    {
      "name": "background-jobs",
      "type": "registry:block",
      "title": "Background Jobs",
      "description": "Job table, queue abstraction, retry/cancel UI, and worker handoff patterns.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/background-jobs.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/background-jobs.ts"
        },
        {
          "path": "apps/web/src/lib/background-jobs.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/background-jobs.ts"
        },
        {
          "path": "apps/web/src/app/(console)/jobs/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/jobs/page.tsx"
        }
      ]
    },
    {
      "name": "backup-restore",
      "type": "registry:block",
      "title": "Backup Restore",
      "description": "Backup run records, restore checklist, and continuity dashboard.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/backup-restore.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/backup-restore.ts"
        },
        {
          "path": "apps/web/src/lib/backup-restore.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/backup-restore.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/backups/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/backups/page.tsx"
        }
      ]
    },
    {
      "name": "billing-core",
      "type": "registry:block",
      "title": "Billing Core",
      "description": "Provider-neutral customer, plan, and subscription primitives.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/billing-core.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/billing-core.ts"
        },
        {
          "path": "apps/web/src/lib/billing-core.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/billing-core.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/core/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/core/page.tsx"
        }
      ]
    },
    {
      "name": "billing-portal",
      "type": "registry:block",
      "title": "Billing Portal",
      "description": "Self-service billing portal link helpers and access checks.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/billing-portal.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/billing-portal.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/portal/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/portal/page.tsx"
        }
      ]
    },
    {
      "name": "billing-reconciliation",
      "type": "registry:block",
      "title": "Billing Reconciliation",
      "description": "Provider/database drift checks and reconciliation job status.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json",
        "https://stackfoundry.dev/r/background-jobs.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/billing-reconciliation.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/billing-reconciliation.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/billing-reconciliation.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/billing-reconciliation.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/reconciliation/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/reconciliation/page.tsx"
        }
      ]
    },
    {
      "name": "blog-changelog",
      "type": "registry:block",
      "title": "Blog Changelog",
      "description": "Blog and product changelog list pages with release notes helpers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/blog-changelog.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/blog-changelog.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/changelog/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/changelog/page.tsx"
        }
      ]
    },
    {
      "name": "bug-reports",
      "type": "registry:block",
      "title": "Bug Reports",
      "description": "Bug report intake, severity, reproduction steps, and triage workflow.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/support-console.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/bug-reports.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/bug-reports.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/bug-reports.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/bug-reports.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/support/bug-reports/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/support/bug-reports/page.tsx"
        }
      ]
    },
    {
      "name": "clerk-auth",
      "type": "registry:block",
      "title": "Clerk Auth",
      "description": "Clerk sign-in/sign-up pages, middleware, server auth helper, and webhook starter.",
      "dependencies": [
        "@clerk/nextjs"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "middleware.ts",
          "type": "registry:file",
          "target": "middleware.ts"
        },
        {
          "path": "apps/web/src/lib/clerk/authorization.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/clerk/authorization.ts"
        },
        {
          "path": "apps/web/src/app/(auth)/sign-in/[[...sign-in]]/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(auth)/sign-in/[[...sign-in]]/page.tsx"
        },
        {
          "path": "apps/web/src/app/(auth)/sign-up/[[...sign-up]]/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(auth)/sign-up/[[...sign-up]]/page.tsx"
        },
        {
          "path": "apps/web/src/app/api/webhooks/clerk/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/webhooks/clerk/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/auth/clerk/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/auth/clerk/page.tsx"
        }
      ]
    },
    {
      "name": "cloudflare-agents-sdk",
      "type": "registry:block",
      "title": "Cloudflare Agents SDK",
      "description": "Stateful AI agents on Workers, React hooks, WebSocket/RPC surface.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-agents-sdk.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-agents-sdk.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-agents-sdk/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-agents-sdk/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-agents-sdk.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-agents-sdk.md"
        }
      ]
    },
    {
      "name": "cloudflare-d1",
      "type": "registry:block",
      "title": "Cloudflare D1",
      "description": "D1 binding usage, SQLite schema starter, and Wrangler database notes.",
      "dependencies": [],
      "devDependencies": [
        "wrangler"
      ],
      "registryDependencies": [
        "https://stackfoundry.dev/r/cloudflare-workers.json"
      ],
      "files": [
        {
          "path": "cloudflare/d1/schema.sql",
          "type": "registry:file",
          "target": "cloudflare/d1/schema.sql"
        },
        {
          "path": "cloudflare/d1/queries.ts",
          "type": "registry:file",
          "target": "cloudflare/d1/queries.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/cloudflare/d1/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/cloudflare/d1/page.tsx"
        }
      ]
    },
    {
      "name": "cloudflare-durable-objects",
      "type": "registry:block",
      "title": "Cloudflare Durable Objects",
      "description": "Stateful coordination, realtime rooms, per-tenant state, and DO storage.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-durable-objects.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-durable-objects.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-durable-objects/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-durable-objects/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-durable-objects.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-durable-objects.md"
        }
      ]
    },
    {
      "name": "cloudflare-hyperdrive",
      "type": "registry:block",
      "title": "Cloudflare Hyperdrive",
      "description": "Postgres/MySQL connection acceleration for Workers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-hyperdrive.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-hyperdrive.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-hyperdrive/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-hyperdrive/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-hyperdrive.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-hyperdrive.md"
        }
      ]
    },
    {
      "name": "cloudflare-kv",
      "type": "registry:block",
      "title": "Cloudflare KV",
      "description": "KV binding adapter for low-write configuration, flags, and cached metadata.",
      "dependencies": [],
      "devDependencies": [
        "wrangler"
      ],
      "registryDependencies": [
        "https://stackfoundry.dev/r/feature-flags.json"
      ],
      "files": [
        {
          "path": "cloudflare/kv/config.ts",
          "type": "registry:file",
          "target": "cloudflare/kv/config.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/cloudflare/kv/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/cloudflare/kv/page.tsx"
        }
      ]
    },
    {
      "name": "cloudflare-mcp-server",
      "type": "registry:block",
      "title": "Cloudflare MCP Server",
      "description": "Remote MCP server on Workers with OAuth/auth guidance.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-mcp-server.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-mcp-server.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-mcp-server/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-mcp-server/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-mcp-server.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-mcp-server.md"
        }
      ]
    },
    {
      "name": "cloudflare-observability",
      "type": "registry:block",
      "title": "Cloudflare Observability",
      "description": "Workers logs, traces, analytics, and tail workers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-observability.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-observability.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-observability/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-observability/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-observability.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-observability.md"
        }
      ]
    },
    {
      "name": "cloudflare-pages",
      "type": "registry:block",
      "title": "Cloudflare Pages",
      "description": "Alternate deploy path for static and edge-friendly apps.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-pages.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-pages.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-pages/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-pages/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-pages.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-pages.md"
        }
      ]
    },
    {
      "name": "cloudflare-queues",
      "type": "registry:block",
      "title": "Cloudflare Queues",
      "description": "Async jobs, producer/consumer Workers, retries, and DLQ guidance.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-queues.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-queues.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-queues/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-queues/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-queues.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-queues.md"
        }
      ]
    },
    {
      "name": "cloudflare-r2",
      "type": "registry:block",
      "title": "Cloudflare R2",
      "description": "R2 object storage adapter example for uploads and private object reads.",
      "dependencies": [],
      "devDependencies": [
        "wrangler"
      ],
      "registryDependencies": [
        "https://stackfoundry.dev/r/file-uploads.json"
      ],
      "files": [
        {
          "path": "cloudflare/r2/storage.ts",
          "type": "registry:file",
          "target": "cloudflare/r2/storage.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/cloudflare/r2/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/cloudflare/r2/page.tsx"
        }
      ]
    },
    {
      "name": "cloudflare-terraform",
      "type": "registry:block",
      "title": "Cloudflare Terraform",
      "description": "IaC module for zones, Workers, R2, D1, Queues, and secrets.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-terraform.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-terraform.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-terraform/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-terraform/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-terraform.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-terraform.md"
        }
      ]
    },
    {
      "name": "cloudflare-tunnel",
      "type": "registry:block",
      "title": "Cloudflare Tunnel",
      "description": "Secure tunnel module for exposing local/internal services.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-tunnel.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-tunnel.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-tunnel/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-tunnel/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-tunnel.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-tunnel.md"
        }
      ]
    },
    {
      "name": "cloudflare-turnstile",
      "type": "registry:block",
      "title": "Cloudflare Turnstile",
      "description": "Bot protection for signup, contact, waitlist, and abuse-sensitive forms.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-turnstile.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-turnstile.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-turnstile/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-turnstile/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-turnstile.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-turnstile.md"
        }
      ]
    },
    {
      "name": "cloudflare-vectorize",
      "type": "registry:block",
      "title": "Cloudflare Vectorize",
      "description": "Vector search and RAG provider module.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-vectorize.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-vectorize.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-vectorize/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-vectorize/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-vectorize.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-vectorize.md"
        }
      ]
    },
    {
      "name": "cloudflare-workers",
      "type": "registry:block",
      "title": "Cloudflare Workers",
      "description": "Cloudflare Worker entrypoint, Wrangler config example, and edge API route starter.",
      "dependencies": [],
      "devDependencies": [
        "wrangler"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "cloudflare/workers/api-worker.ts",
          "type": "registry:file",
          "target": "cloudflare/workers/api-worker.ts"
        },
        {
          "path": "cloudflare/workers/wrangler.example.jsonc",
          "type": "registry:file",
          "target": "cloudflare/workers/wrangler.example.jsonc"
        },
        {
          "path": "apps/web/src/app/(console)/admin/cloudflare/workers/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/cloudflare/workers/page.tsx"
        }
      ]
    },
    {
      "name": "cloudflare-workers-ai",
      "type": "registry:block",
      "title": "Cloudflare Workers AI",
      "description": "Workers AI inference, embeddings, and image generation examples.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/cloudflare-workers-ai.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/cloudflare-workers-ai.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/cloudflare-workers-ai/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/cloudflare-workers-ai/page.tsx"
        },
        {
          "path": "docs/providers/cloudflare-workers-ai.md",
          "type": "registry:file",
          "target": "docs/providers/cloudflare-workers-ai.md"
        }
      ]
    },
    {
      "name": "cloudflare-workflows",
      "type": "registry:block",
      "title": "Cloudflare Workflows",
      "description": "Cloudflare Workflows durable step starter for Workers-native orchestration.",
      "dependencies": [],
      "devDependencies": [
        "wrangler"
      ],
      "registryDependencies": [
        "https://stackfoundry.dev/r/cloudflare-workers.json"
      ],
      "files": [
        {
          "path": "cloudflare/workflows/onboarding.ts",
          "type": "registry:file",
          "target": "cloudflare/workflows/onboarding.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/cloudflare/workflows/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/cloudflare/workflows/page.tsx"
        }
      ]
    },
    {
      "name": "cms-contentful",
      "type": "registry:block",
      "title": "Contentful CMS",
      "description": "Contentful integration and content model docs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "cms-mdx",
      "type": "registry:block",
      "title": "MDX Content",
      "description": "File-based docs, blog, and changelog collections.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "cms-sanity",
      "type": "registry:block",
      "title": "Sanity CMS",
      "description": "Sanity integration and preview mode.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "cohort-retention",
      "type": "registry:block",
      "title": "Cohort Retention",
      "description": "Cohort tables, retention curves, saved segments, and plan/channel filters.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "command-menu",
      "type": "registry:block",
      "title": "Command Menu",
      "description": "Keyboard-first command menu component for SaaS navigation and actions.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/command-menu.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/command-menu.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/command-menu.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/command-menu.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/command-menu/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/command-menu/page.tsx"
        }
      ]
    },
    {
      "name": "connected-accounts",
      "type": "registry:block",
      "title": "Connected Accounts",
      "description": "OAuth account linking, provider metadata, and disconnect controls.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/connected-accounts.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/connected-accounts.ts"
        },
        {
          "path": "apps/web/src/lib/connected-accounts.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/connected-accounts.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/account/connected-accounts/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/account/connected-accounts/page.tsx"
        }
      ]
    },
    {
      "name": "contact-forms",
      "type": "registry:block",
      "title": "Contact Forms",
      "description": "Contact form submissions, spam review, and routing workflow.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/contact-forms.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/contact-forms.ts"
        },
        {
          "path": "apps/web/src/lib/contact-forms.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/contact-forms.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/contact-forms/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/contact-forms/page.tsx"
        }
      ]
    },
    {
      "name": "convex-backend",
      "type": "registry:block",
      "title": "Convex Backend",
      "description": "Convex project setup, generated functions, provider wrapper, and deployment docs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/convex-backend.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/convex-backend.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/convex-backend/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/convex-backend/page.tsx"
        },
        {
          "path": "docs/providers/convex-backend.md",
          "type": "registry:file",
          "target": "docs/providers/convex-backend.md"
        }
      ]
    },
    {
      "name": "convex-integration",
      "type": "registry:block",
      "title": "Convex Integration",
      "description": "Convex dashboard links, deployment status, and schema/function notes.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/convex-integration.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/convex-integration.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/convex-integration/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/convex-integration/page.tsx"
        },
        {
          "path": "docs/providers/convex-integration.md",
          "type": "registry:file",
          "target": "docs/providers/convex-integration.md"
        }
      ]
    },
    {
      "name": "convex-realtime",
      "type": "registry:block",
      "title": "Convex Realtime",
      "description": "Live queries, subscriptions, realtime dashboards, and optimistic update examples.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/convex-realtime.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/convex-realtime.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/convex-realtime/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/convex-realtime/page.tsx"
        },
        {
          "path": "docs/providers/convex-realtime.md",
          "type": "registry:file",
          "target": "docs/providers/convex-realtime.md"
        }
      ]
    },
    {
      "name": "cookie-consent",
      "type": "registry:block",
      "title": "Cookie Consent",
      "description": "Cookie category preferences and consent banner state.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/cookie-consent.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/cookie-consent.ts"
        },
        {
          "path": "apps/web/src/lib/cookie-consent.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/cookie-consent.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/privacy/cookies/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/privacy/cookies/page.tsx"
        }
      ]
    },
    {
      "name": "cors-policy",
      "type": "registry:block",
      "title": "CORS Policy",
      "description": "Allowed origin configuration, preflight helpers, and deployment checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/cors-policy.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/cors-policy.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/security/cors/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/security/cors/page.tsx"
        }
      ]
    },
    {
      "name": "coupons-promotions",
      "type": "registry:block",
      "title": "Coupons Promotions",
      "description": "Coupon, promotion code, and referral discount tracking.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/coupons-promotions.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/coupons-promotions.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/coupons-promotions.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/coupons-promotions.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/coupons/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/coupons/page.tsx"
        }
      ]
    },
    {
      "name": "credit-wallet",
      "type": "registry:block",
      "title": "Credit Wallet",
      "description": "Prepaid credits, grant/consume ledger, low-balance checks, and AI or usage-based wallet flows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json",
        "https://stackfoundry.dev/r/usage-metering.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/credit-wallet.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/credit-wallet.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/credit-wallet.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/credit-wallet.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/credits/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/credits/page.tsx"
        }
      ]
    },
    {
      "name": "csrf-protection",
      "type": "registry:block",
      "title": "CSRF Protection",
      "description": "CSRF token helpers and unsafe-method protection checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/csrf-protection.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/csrf-protection.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/security/csrf/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/security/csrf/page.tsx"
        }
      ]
    },
    {
      "name": "custom-domains",
      "type": "registry:block",
      "title": "Custom Domains",
      "description": "Custom domain records, status, and tenant-owned routing controls.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/custom-domains.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/custom-domains.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/custom-domains.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/custom-domains.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/tenancy/custom-domains/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/tenancy/custom-domains/page.tsx"
        }
      ]
    },
    {
      "name": "custom-roles",
      "type": "registry:block",
      "title": "Custom Roles",
      "description": "Custom role definitions, role cloning, and permission assignment boundaries.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/permission-matrix.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/custom-roles.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/custom-roles.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/custom-roles.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/custom-roles.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/workspace/roles/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/roles/page.tsx"
        }
      ]
    },
    {
      "name": "data-export",
      "type": "registry:block",
      "title": "Data Export",
      "description": "User and workspace export requests with status tracking.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/data-export.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/data-export.ts"
        },
        {
          "path": "apps/web/src/lib/data-export.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/data-export.ts"
        },
        {
          "path": "apps/web/src/app/(console)/data/export/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/data/export/page.tsx"
        }
      ]
    },
    {
      "name": "data-import-export",
      "type": "registry:block",
      "title": "Data Import Export",
      "description": "CSV import/export, background processing, and error report UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "data-retention",
      "type": "registry:block",
      "title": "Data Retention",
      "description": "Retention policies, deletion windows, and compliance review UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/data-retention.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/data-retention.ts"
        },
        {
          "path": "apps/web/src/lib/data-retention.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/data-retention.ts"
        },
        {
          "path": "apps/web/src/app/(console)/data/retention/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/data/retention/page.tsx"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:block",
      "title": "Data Table",
      "description": "Typed table shell with empty/loading/error slots and row actions.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/data-table.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/data-table.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/data-table.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/data-table.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/data-table/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/data-table/page.tsx"
        }
      ]
    },
    {
      "name": "datadog-monitoring",
      "type": "registry:block",
      "title": "Datadog Monitoring",
      "description": "Enterprise observability adapter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "dependency-audit",
      "type": "registry:block",
      "title": "Dependency Audit",
      "description": "Dependency scanning, high-severity gate, and release checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/dependency-audit.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/dependency-audit.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/security/dependencies/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/security/dependencies/page.tsx"
        }
      ]
    },
    {
      "name": "developer-portal",
      "type": "registry:block",
      "title": "Developer Portal",
      "description": "Developer dashboard shell for keys, docs, webhooks, and usage.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/api-keys.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/developer-portal.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/developer-portal.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/page.tsx"
        }
      ]
    },
    {
      "name": "docker-compose-local",
      "type": "registry:block",
      "title": "Docker Compose Local",
      "description": "Local Postgres, Redis, Mailpit, and provider-mock services.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "docs-fumadocs",
      "type": "registry:block",
      "title": "Fumadocs Docs",
      "description": "In-app Next.js documentation starter with Fumadocs setup and deployment guidance.",
      "dependencies": [
        "fumadocs-core",
        "fumadocs-ui"
      ],
      "devDependencies": [
        "fumadocs-mdx"
      ],
      "registryDependencies": [
        "https://stackfoundry.dev/r/seo.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/docs/fumadocs.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/docs/fumadocs.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/docs/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/docs/page.tsx"
        },
        {
          "path": "docs/fumadocs-deployment.md",
          "type": "registry:file",
          "target": "docs/fumadocs-deployment.md"
        }
      ]
    },
    {
      "name": "docs-mintlify",
      "type": "registry:block",
      "title": "Mintlify Docs",
      "description": "Hosted documentation workspace starter with Mintlify configuration, pages, and deployment guidance.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/seo.json"
      ],
      "files": [
        {
          "path": "docs/mintlify/docs.json",
          "type": "registry:file",
          "target": "docs/mintlify/docs.json"
        },
        {
          "path": "docs/mintlify/introduction.mdx",
          "type": "registry:file",
          "target": "docs/mintlify/introduction.mdx"
        },
        {
          "path": "docs/mintlify/quickstart.mdx",
          "type": "registry:file",
          "target": "docs/mintlify/quickstart.mdx"
        },
        {
          "path": "docs/mintlify/deployment.md",
          "type": "registry:file",
          "target": "docs/mintlify/deployment.md"
        }
      ]
    },
    {
      "name": "docs-help-center",
      "type": "registry:block",
      "title": "Docs Help Center",
      "description": "Help center index, article metadata, and support escalation paths.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/docs-help-center.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/docs-help-center.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/help/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/help/page.tsx"
        }
      ]
    },
    {
      "name": "docs-starlight",
      "type": "registry:block",
      "title": "Starlight Docs",
      "description": "Astro Starlight docs module for separate documentation sites.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "domain-verification",
      "type": "registry:block",
      "title": "Domain Verification",
      "description": "DNS TXT/CNAME verification state for tenant domains.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/custom-domains.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/domain-verification.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/domain-verification.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/tenancy/domain-verification/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/tenancy/domain-verification/page.tsx"
        }
      ]
    },
    {
      "name": "drizzle-audit-log",
      "type": "registry:block",
      "title": "Drizzle Audit Log",
      "description": "Common activity/event schema, actor/resource modeling, and admin timeline UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "drizzle-multitenancy",
      "type": "registry:block",
      "title": "Drizzle Multitenancy",
      "description": "Org/account ids on core tables, indexes, relations, and cache-tag rules.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "drizzle-postgres",
      "type": "registry:block",
      "title": "Drizzle Postgres",
      "description": "Postgres + Drizzle package, schema barrel, migrations, and server-only DB access.",
      "dependencies": [
        "drizzle-orm",
        "postgres"
      ],
      "devDependencies": [
        "drizzle-kit",
        "dotenv"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "packages/db/package.json",
          "type": "registry:file",
          "target": "packages/db/package.json"
        },
        {
          "path": "packages/db/src/client.ts",
          "type": "registry:file",
          "target": "packages/db/src/client.ts"
        },
        {
          "path": "packages/db/src/index.ts",
          "type": "registry:file",
          "target": "packages/db/src/index.ts"
        },
        {
          "path": "packages/db/src/schema/index.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/index.ts"
        },
        {
          "path": "apps/web/src/lib/db.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/db.ts"
        },
        {
          "path": "drizzle.config.ts",
          "type": "registry:file",
          "target": "drizzle.config.ts"
        }
      ]
    },
    {
      "name": "drizzle-relations",
      "type": "registry:block",
      "title": "Drizzle Relations",
      "description": "Relations helpers, type-safe joins, query examples, and seed patterns.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "drizzle-soft-delete",
      "type": "registry:block",
      "title": "Drizzle Soft Delete",
      "description": "deletedAt conventions, restore flows, and filtered query helpers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "dunning-recovery",
      "type": "registry:block",
      "title": "Dunning Recovery",
      "description": "Failed payment recovery sequence with email and in-app notices.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json",
        "https://stackfoundry.dev/r/notifications.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/dunning-recovery.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/dunning-recovery.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/dunning-recovery.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/dunning-recovery.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/dunning/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/dunning/page.tsx"
        }
      ]
    },
    {
      "name": "email-nodemailer",
      "type": "registry:block",
      "title": "Nodemailer Email",
      "description": "SMTP email adapter for teams avoiding provider lock-in.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "email-postmark",
      "type": "registry:block",
      "title": "Postmark Email",
      "description": "Transactional email adapter and template mapping.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "email-templates",
      "type": "registry:block",
      "title": "Email Templates",
      "description": "Transactional email template catalog with plain-text fallback guidance.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/notifications.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/email-templates.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/email-templates.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/email-templates/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/email-templates/page.tsx"
        }
      ]
    },
    {
      "name": "email-verification",
      "type": "registry:block",
      "title": "Email Verification",
      "description": "Email verification token helpers and verification state UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/email-verification.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/email-verification.ts"
        },
        {
          "path": "apps/web/src/lib/email-verification.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/email-verification.ts"
        },
        {
          "path": "apps/web/src/app/(auth)/email-verification/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(auth)/email-verification/page.tsx"
        }
      ]
    },
    {
      "name": "empty-states",
      "type": "registry:block",
      "title": "Empty States",
      "description": "Reusable empty state component with action and guidance slots.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/empty-states.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/empty-states.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/empty-states.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/empty-states.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/empty-states/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/empty-states/page.tsx"
        }
      ]
    },
    {
      "name": "enterprise-sso",
      "type": "registry:block",
      "title": "Enterprise SSO",
      "description": "SAML/OIDC connection metadata, enforcement policy, and setup checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/enterprise-sso.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/enterprise-sso.ts"
        },
        {
          "path": "apps/web/src/lib/enterprise-sso.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/enterprise-sso.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/workspace/sso/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/sso/page.tsx"
        }
      ]
    },
    {
      "name": "entitlements",
      "type": "registry:block",
      "title": "Entitlements",
      "description": "Feature entitlement definitions, checks, and admin review UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/entitlements.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/entitlements.ts"
        },
        {
          "path": "apps/web/src/lib/entitlements.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/entitlements.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/entitlements/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/entitlements/page.tsx"
        }
      ]
    },
    {
      "name": "error-boundaries",
      "type": "registry:block",
      "title": "Error Boundaries",
      "description": "React error boundary and fallback component for product pages.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/error-boundaries.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/error-boundaries.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/error-boundaries.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/error-boundaries.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/error-boundaries/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/error-boundaries/page.tsx"
        }
      ]
    },
    {
      "name": "evals",
      "type": "registry:block",
      "title": "Evals",
      "description": "Prompt eval cases, pass/fail scoring UI, and regression tracking.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "experiments",
      "type": "registry:block",
      "title": "Experiments",
      "description": "A/B test model, exposure tracking, conversion events, and results UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "feature-adoption",
      "type": "registry:block",
      "title": "Feature Adoption",
      "description": "Feature usage tracking, adoption cohorts, and release impact views.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "feature-flags",
      "type": "registry:block",
      "title": "Feature Flags",
      "description": "Flag table, evaluation helper, admin UI, and per-org targeting.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/feature-flags.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/feature-flags.ts"
        },
        {
          "path": "apps/web/src/lib/feature-flags.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/feature-flags.ts"
        },
        {
          "path": "apps/web/src/app/(console)/feature-flags/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/feature-flags/page.tsx"
        }
      ]
    },
    {
      "name": "feature-requests",
      "type": "registry:block",
      "title": "Feature Requests",
      "description": "Feature request intake, status, votes, and roadmap handoff.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/support-console.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/feature-requests.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/feature-requests.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/feature-requests.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/feature-requests.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/support/feature-requests/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/support/feature-requests/page.tsx"
        }
      ]
    },
    {
      "name": "file-uploads",
      "type": "registry:block",
      "title": "File Uploads",
      "description": "File metadata, upload policy helpers, and upload management UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/file-uploads.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/file-uploads.ts"
        },
        {
          "path": "apps/web/src/lib/file-uploads.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/file-uploads.ts"
        },
        {
          "path": "apps/web/src/app/(console)/files/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/files/page.tsx"
        }
      ]
    },
    {
      "name": "firebase-backend",
      "type": "registry:block",
      "title": "Firebase Backend",
      "description": "Optional mobile-first backend module for Firestore/auth/storage apps.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "flags-launchdarkly",
      "type": "registry:block",
      "title": "LaunchDarkly Flags",
      "description": "LaunchDarkly provider adapter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "flags-statsig",
      "type": "registry:block",
      "title": "Statsig Flags",
      "description": "Statsig provider adapter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "fly-deploy",
      "type": "registry:block",
      "title": "Fly Deploy",
      "description": "App and worker deployment with regionality notes and templates.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/fly-deploy.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/fly-deploy.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/fly-deploy/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/fly-deploy/page.tsx"
        },
        {
          "path": "docs/providers/fly-deploy.md",
          "type": "registry:file",
          "target": "docs/providers/fly-deploy.md"
        }
      ]
    },
    {
      "name": "geist-nova-theme",
      "type": "registry:block",
      "title": "Geist Nova Theme",
      "description": "Geist typography and Tailwind v4 theme tokens for a polished SaaS console.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "github-integration",
      "type": "registry:block",
      "title": "GitHub Integration",
      "description": "GitHub App Octokit client, webhook route starter, and repository action example.",
      "dependencies": [
        "octokit"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/webhook-inbox.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/github/app.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/github/app.ts"
        },
        {
          "path": "apps/web/src/app/api/webhooks/github/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/webhooks/github/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/github/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/github/page.tsx"
        }
      ]
    },
    {
      "name": "growth-alerts",
      "type": "registry:block",
      "title": "Growth Alerts",
      "description": "Activation drop, churn risk, usage spike, and expansion opportunity notifications.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "i18n",
      "type": "registry:block",
      "title": "Internationalization",
      "description": "Locale routing, translations, and language switcher.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "idempotency-keys",
      "type": "registry:block",
      "title": "Idempotency Keys",
      "description": "Idempotency-Key storage and replay helpers for mutating endpoints.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/idempotency-keys.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/idempotency-keys.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/idempotency-keys.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/idempotency-keys.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/idempotency/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/idempotency/page.tsx"
        }
      ]
    },
    {
      "name": "image-optimization",
      "type": "registry:block",
      "title": "Image Optimization",
      "description": "Image upload, transformation, metadata, and storage adapter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "incident-management",
      "type": "registry:block",
      "title": "Incident Management",
      "description": "Incident records, severity, status updates, and internal coordination UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/incident-management.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/incident-management.ts"
        },
        {
          "path": "apps/web/src/lib/incident-management.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/incident-management.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/incidents/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/incidents/page.tsx"
        }
      ]
    },
    {
      "name": "inngest-functions",
      "type": "registry:block",
      "title": "Inngest Functions",
      "description": "Inngest durable functions, event triggers, steps, and Next.js serve route.",
      "dependencies": [
        "inngest"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/background-jobs.json"
      ],
      "files": [
        {
          "path": "apps/web/src/inngest/client.ts",
          "type": "registry:file",
          "target": "apps/web/src/inngest/client.ts"
        },
        {
          "path": "apps/web/src/inngest/functions/user-onboarding.ts",
          "type": "registry:file",
          "target": "apps/web/src/inngest/functions/user-onboarding.ts"
        },
        {
          "path": "apps/web/src/app/api/inngest/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/inngest/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/workflows/inngest/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/workflows/inngest/page.tsx"
        }
      ]
    },
    {
      "name": "input-validation",
      "type": "registry:block",
      "title": "Input Validation",
      "description": "Shared Zod validation helpers for server routes and forms.",
      "dependencies": [
        "zod"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/input-validation.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/input-validation.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/security/input-validation/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/security/input-validation/page.tsx"
        }
      ]
    },
    {
      "name": "internal-api-trpc",
      "type": "registry:block",
      "title": "Internal API tRPC",
      "description": "Optional tRPC module for TypeScript-only internal APIs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "invites",
      "type": "registry:block",
      "title": "Invites",
      "description": "Email invitations, pending invitation state, role assignment, and resend/cancel flows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/invites.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/invites.ts"
        },
        {
          "path": "apps/web/src/lib/invites.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/invites.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/workspace/invites/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/invites/page.tsx"
        }
      ]
    },
    {
      "name": "invoices",
      "type": "registry:block",
      "title": "Invoices",
      "description": "Invoice records, payment status, and billing history UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/invoices.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/invoices.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/invoices/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/invoices/page.tsx"
        }
      ]
    },
    {
      "name": "keyset-pagination",
      "type": "registry:block",
      "title": "Keyset Pagination",
      "description": "Keyset pagination helpers for stable API lists.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/keyset-pagination.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/keyset-pagination.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/pagination/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/pagination/page.tsx"
        }
      ]
    },
    {
      "name": "knock-notifications",
      "type": "registry:block",
      "title": "Knock Notifications",
      "description": "Knock adapter for hosted in-app feeds, workflow triggers, and preference-aware notification delivery.",
      "dependencies": [
        "@knocklabs/node",
        "@knocklabs/react"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/notifications.json",
        "https://stackfoundry.dev/r/notification-center.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/knock/client.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/knock/client.ts"
        },
        {
          "path": "apps/web/src/components/knock/knock-inbox-provider.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/knock/knock-inbox-provider.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/knock/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/knock/page.tsx"
        }
      ]
    },
    {
      "name": "legal-pages",
      "type": "registry:block",
      "title": "Legal Pages",
      "description": "Terms, privacy, cookie, and acceptable-use page templates.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/legal-pages.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/legal-pages.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/legal/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/legal/page.tsx"
        }
      ]
    },
    {
      "name": "lemon-squeezy-billing",
      "type": "registry:block",
      "title": "Lemon Squeezy Billing",
      "description": "Creator/digital product checkout and license key workflows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "lifecycle-email",
      "type": "registry:block",
      "title": "Lifecycle Email",
      "description": "Lifecycle email campaign definitions, audience rules, and delivery checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/notifications.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/lifecycle-email.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/lifecycle-email.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/lifecycle-email/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/lifecycle-email/page.tsx"
        }
      ]
    },
    {
      "name": "linear-integration",
      "type": "registry:block",
      "title": "Linear Integration",
      "description": "Issue creation, Linear links, and incident/project workflows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "loading-states",
      "type": "registry:block",
      "title": "Loading States",
      "description": "Skeleton and loading state components for async SaaS surfaces.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/loading-states.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/loading-states.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/loading-states.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/loading-states.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/loading-states/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/loading-states/page.tsx"
        }
      ]
    },
    {
      "name": "login-activity",
      "type": "registry:block",
      "title": "Login Activity",
      "description": "Login history, device metadata, and suspicious sign-in review UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/login-activity.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/login-activity.ts"
        },
        {
          "path": "apps/web/src/lib/login-activity.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/login-activity.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/account/login-activity/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/account/login-activity/page.tsx"
        }
      ]
    },
    {
      "name": "maintenance-mode",
      "type": "registry:block",
      "title": "Maintenance Mode",
      "description": "Maintenance windows, banner state, and operator controls.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/maintenance-mode.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/maintenance-mode.ts"
        },
        {
          "path": "apps/web/src/lib/maintenance-mode.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/maintenance-mode.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/maintenance/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/maintenance/page.tsx"
        }
      ]
    },
    {
      "name": "marketing-pages",
      "type": "registry:block",
      "title": "Marketing Pages",
      "description": "Landing page sections, social proof slots, and CTA patterns.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/marketing-pages.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/marketing-pages.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/page.tsx"
        }
      ]
    },
    {
      "name": "mcp-client",
      "type": "registry:block",
      "title": "MCP Client",
      "description": "MCP server config UI, server registry, and auth metadata.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "mfa-security",
      "type": "registry:block",
      "title": "MFA Security",
      "description": "Multi-factor authentication recovery, enforcement, and settings surfaces.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/mfa-security.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/mfa-security.ts"
        },
        {
          "path": "apps/web/src/lib/mfa-security.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/mfa-security.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/account/mfa/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/account/mfa/page.tsx"
        }
      ]
    },
    {
      "name": "model-router",
      "type": "registry:block",
      "title": "Model Router",
      "description": "Model catalog, provider ordering, fallback rules, and AI Gateway config.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "neon-postgres",
      "type": "registry:block",
      "title": "Neon Postgres",
      "description": "Neon serverless Postgres client, Drizzle-compatible env wiring, and branching notes.",
      "dependencies": [
        "@neondatabase/serverless"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/neon/client.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/neon/client.ts"
        },
        {
          "path": "apps/web/src/lib/neon/branching.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/neon/branching.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/data/neon/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/data/neon/page.tsx"
        }
      ]
    },
    {
      "name": "newsletter-signups",
      "type": "registry:block",
      "title": "Newsletter Signups",
      "description": "Newsletter signup capture, double opt-in state, and export workflow.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/newsletter-signups.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/newsletter-signups.ts"
        },
        {
          "path": "apps/web/src/lib/newsletter-signups.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/newsletter-signups.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/newsletter/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/newsletter/page.tsx"
        }
      ]
    },
    {
      "name": "next-saas-shell",
      "type": "registry:block",
      "title": "Next SaaS Shell",
      "description": "Provider-neutral Next.js SaaS app shell with product config, navigation, launch page, and dashboard starter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/app-config.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/app-config.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/app-navigation.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/app-navigation.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/app-shell.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/app-shell.tsx"
        },
        {
          "path": "apps/web/src/app/(marketing)/launch/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/launch/page.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/dashboard/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/dashboard/page.tsx"
        }
      ]
    },
    {
      "name": "notification-center",
      "type": "registry:block",
      "title": "Notification Center",
      "description": "In-app notification inbox with read state and preference-aware display.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/notifications.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/notification-center.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/notification-center.ts"
        },
        {
          "path": "apps/web/src/app/(console)/notifications/center/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/notifications/center/page.tsx"
        }
      ]
    },
    {
      "name": "notifications",
      "type": "registry:block",
      "title": "Notifications",
      "description": "Notification events, delivery preferences, and provider-neutral send queue.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/notifications.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/notifications.ts"
        },
        {
          "path": "apps/web/src/lib/notifications.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/notifications.ts"
        },
        {
          "path": "apps/web/src/app/(console)/notifications/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/notifications/page.tsx"
        }
      ]
    },
    {
      "name": "oncall-alerting",
      "type": "registry:block",
      "title": "On-call Alerting",
      "description": "Alert routing, severity taxonomy, and escalation schedule starter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/incident-management.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/oncall-alerting.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/oncall-alerting.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/operations/on-call/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/operations/on-call/page.tsx"
        }
      ]
    },
    {
      "name": "openfeature-flags",
      "type": "registry:block",
      "title": "OpenFeature Flags",
      "description": "OpenFeature-compatible flag interface and provider adapter pattern.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "one-time-purchases",
      "type": "registry:block",
      "title": "One-Time Purchases",
      "description": "One-off payments, order records, add-ons, lifetime deals, and fulfillment tracking.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/one-time-purchases.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/one-time-purchases.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/one-time-purchases.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/one-time-purchases.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/purchases/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/purchases/page.tsx"
        }
      ]
    },
    {
      "name": "orgs-rbac",
      "type": "registry:block",
      "title": "Organizations and RBAC",
      "description": "Organization switcher, roles, permissions, invitations, and member management.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "paddle-billing",
      "type": "registry:block",
      "title": "Paddle Billing",
      "description": "Merchant of Record checkout, subscription sync, webhook mapping, and tax docs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "password-reset",
      "type": "registry:block",
      "title": "Password Reset",
      "description": "Expiring reset token helpers and password recovery page templates.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/password-reset.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/password-reset.ts"
        },
        {
          "path": "apps/web/src/lib/password-reset.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/password-reset.ts"
        },
        {
          "path": "apps/web/src/app/(auth)/password-reset/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(auth)/password-reset/page.tsx"
        }
      ]
    },
    {
      "name": "permission-matrix",
      "type": "registry:block",
      "title": "Permission Matrix",
      "description": "Tenant-scoped permission catalog and UI review matrix.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/orgs-rbac.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/permission-matrix.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/permission-matrix.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/permission-matrix.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/permission-matrix.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/workspace/permissions/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/permissions/page.tsx"
        }
      ]
    },
    {
      "name": "plan-gating",
      "type": "registry:block",
      "title": "Plan Gating",
      "description": "Server-side plan checks and upgrade prompt surfaces.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/entitlements.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/plan-gating.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/plan-gating.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/plan-gating/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/plan-gating/page.tsx"
        }
      ]
    },
    {
      "name": "playwright-e2e",
      "type": "registry:block",
      "title": "Playwright E2E",
      "description": "Browser smoke tests for auth, billing, dashboard, and installed module flows.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "plg-metrics",
      "type": "registry:block",
      "title": "PLG Metrics",
      "description": "Canonical event taxonomy, user/account traits, product events, and tracking helpers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "posthog-analytics",
      "type": "registry:block",
      "title": "PostHog Analytics",
      "description": "PostHog Next.js provider, pageview tracking, and event capture helper.",
      "dependencies": [
        "posthog-js",
        "@posthog/next"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/feature-flags.json"
      ],
      "files": [
        {
          "path": "apps/web/src/components/providers/posthog-provider.tsx",
          "type": "registry:file",
          "target": "apps/web/src/components/providers/posthog-provider.tsx"
        },
        {
          "path": "apps/web/src/components/analytics/track-button.tsx",
          "type": "registry:file",
          "target": "apps/web/src/components/analytics/track-button.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/posthog/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/posthog/page.tsx"
        }
      ]
    },
    {
      "name": "postmortem-runbook",
      "type": "registry:block",
      "title": "Postmortem Runbook",
      "description": "Blameless postmortem template and incident follow-up checklist.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/incident-management.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/postmortem-runbook.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/postmortem-runbook.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/operations/postmortems/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/operations/postmortems/page.tsx"
        }
      ]
    },
    {
      "name": "pricing-page",
      "type": "registry:block",
      "title": "Pricing Page",
      "description": "Plan comparison page with feature groups and call-to-action slots.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/pricing-page.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/pricing-page.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/pricing/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/pricing/page.tsx"
        }
      ]
    },
    {
      "name": "product-announcements",
      "type": "registry:block",
      "title": "Product Announcements",
      "description": "In-app and email-ready product announcements for launches, releases, and maintenance notices.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/notifications.json",
        "https://stackfoundry.dev/r/email-templates.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/product-announcements.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/product-announcements.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/announcements/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/announcements/page.tsx"
        }
      ]
    },
    {
      "name": "product-qualified-leads",
      "type": "registry:block",
      "title": "Product Qualified Leads",
      "description": "PQL scoring, activation thresholds, sales handoff flags, and CRM hooks.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "prompt-library",
      "type": "registry:block",
      "title": "Prompt Library",
      "description": "Reusable prompts, variable interpolation, and prompt versioning.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "public-api-orpc",
      "type": "registry:block",
      "title": "Public API",
      "description": "Versioned API response helpers, errors, and pagination primitives.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/public-api-orpc.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/public-api-orpc.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/api/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/api/page.tsx"
        }
      ]
    },
    {
      "name": "public-roadmap",
      "type": "registry:block",
      "title": "Public Roadmap",
      "description": "Public roadmap board with planned, in-progress, and shipped product work.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/feature-requests.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/public-roadmap.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/public-roadmap.ts"
        },
        {
          "path": "apps/web/src/app/(marketing)/roadmap/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(marketing)/roadmap/page.tsx"
        }
      ]
    },
    {
      "name": "quality-tooling",
      "type": "registry:block",
      "title": "Quality Tooling",
      "description": "Biome, Vitest, Testing Library, Knip, Lefthook, and CI defaults.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "quota-enforcement",
      "type": "registry:block",
      "title": "Quota Enforcement",
      "description": "Plan quota definitions, usage checks, and limit messaging.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/entitlements.json",
        "https://stackfoundry.dev/r/usage-metering.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/quota-enforcement.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/quota-enforcement.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/quotas/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/quotas/page.tsx"
        }
      ]
    },
    {
      "name": "rag-starter",
      "type": "registry:block",
      "title": "RAG Starter",
      "description": "Embeddings, document ingestion, and vector search adapter.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "railway-deploy",
      "type": "registry:block",
      "title": "Railway Deploy",
      "description": "Full-stack deploy option for Node apps, workers, and databases.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/railway-deploy.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/railway-deploy.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/railway-deploy/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/railway-deploy/page.tsx"
        },
        {
          "path": "docs/providers/railway-deploy.md",
          "type": "registry:file",
          "target": "docs/providers/railway-deploy.md"
        }
      ]
    },
    {
      "name": "rate-limits",
      "type": "registry:block",
      "title": "Rate Limits",
      "description": "Database-backed limit definitions, fixed-window helper, and UI cards.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/rate-limits.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/rate-limits.ts"
        },
        {
          "path": "apps/web/src/lib/rate-limits.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/rate-limits.ts"
        },
        {
          "path": "apps/web/src/app/(console)/rate-limits/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/rate-limits/page.tsx"
        }
      ]
    },
    {
      "name": "referral-loops",
      "type": "registry:block",
      "title": "Referral Loops",
      "description": "Invite/referral codes, viral coefficient tracking, and reward state.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "refunds-disputes",
      "type": "registry:block",
      "title": "Refunds and Disputes",
      "description": "Refund request, dispute status, and support handoff workflow.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json",
        "https://stackfoundry.dev/r/audit-log.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/refunds-disputes.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/refunds-disputes.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/refunds-disputes.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/refunds-disputes.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/refunds/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/refunds/page.tsx"
        }
      ]
    },
    {
      "name": "render-deploy",
      "type": "registry:block",
      "title": "Render Deploy",
      "description": "Simple web service deploy templates and environment docs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "resend-email",
      "type": "registry:block",
      "title": "Resend Email",
      "description": "Resend transactional email client, React Email welcome template, and send route.",
      "dependencies": [
        "resend",
        "@react-email/components"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/email-templates.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/resend/client.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/resend/client.ts"
        },
        {
          "path": "apps/web/src/emails/welcome-email.tsx",
          "type": "registry:file",
          "target": "apps/web/src/emails/welcome-email.tsx"
        },
        {
          "path": "apps/web/src/app/api/providers/resend/send-welcome/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/resend/send-welcome/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/resend/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/resend/page.tsx"
        }
      ]
    },
    {
      "name": "scim-provisioning",
      "type": "registry:block",
      "title": "SCIM Provisioning",
      "description": "SCIM token records, provisioning events, and directory sync status.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/scim-provisioning.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/scim-provisioning.ts"
        },
        {
          "path": "apps/web/src/lib/scim-provisioning.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/scim-provisioning.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/workspace/scim/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/scim/page.tsx"
        }
      ]
    },
    {
      "name": "sdk-snippets",
      "type": "registry:block",
      "title": "SDK Snippets",
      "description": "Generated examples for curl, TypeScript, Python, and HTTP clients.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "search-algolia",
      "type": "registry:block",
      "title": "Algolia",
      "description": "Algolia indexing, keys, and autocomplete UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "search-meilisearch",
      "type": "registry:block",
      "title": "Meilisearch",
      "description": "Meilisearch adapter and sync jobs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "search-postgres",
      "type": "registry:block",
      "title": "Postgres Search",
      "description": "Postgres full-text search, ranking, indexes, and query UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "search-typesense",
      "type": "registry:block",
      "title": "Typesense",
      "description": "Typesense adapter and collection schema.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "seat-management",
      "type": "registry:block",
      "title": "Seat Management",
      "description": "Seat limits, assigned seats, and over-limit handling for B2B billing.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json",
        "https://stackfoundry.dev/r/orgs-rbac.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/seat-management.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/seat-management.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/seat-management.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/seat-management.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/seats/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/seats/page.tsx"
        }
      ]
    },
    {
      "name": "secrets-management",
      "type": "registry:block",
      "title": "Secrets Management",
      "description": "Secrets inventory, rotation checklist, and provider-neutral access pattern.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/secrets-management.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/secrets-management.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/security/secrets/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/security/secrets/page.tsx"
        }
      ]
    },
    {
      "name": "security-headers",
      "type": "registry:block",
      "title": "Security Headers",
      "description": "Content security policy, frame, referrer, and transport header helpers.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/security-headers.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/security-headers.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/security/headers/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/security/headers/page.tsx"
        }
      ]
    },
    {
      "name": "seed-data",
      "type": "registry:block",
      "title": "Seed Data",
      "description": "Typed seed scripts and demo records for screenshots, tests, and local demos.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "sentry-monitoring",
      "type": "registry:block",
      "title": "Sentry Monitoring",
      "description": "Sentry Next.js config files, manual capture helper, and release deployment notes.",
      "dependencies": [
        "@sentry/nextjs"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/sentry/capture.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/sentry/capture.ts"
        },
        {
          "path": "apps/web/sentry.client.config.ts",
          "type": "registry:file",
          "target": "apps/web/sentry.client.config.ts"
        },
        {
          "path": "apps/web/sentry.server.config.ts",
          "type": "registry:file",
          "target": "apps/web/sentry.server.config.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/sentry/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/sentry/page.tsx"
        }
      ]
    },
    {
      "name": "seo",
      "type": "registry:block",
      "title": "SEO",
      "description": "Metadata defaults, structured data helpers, and crawlable sitemap guidance.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/seo.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/seo.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/seo/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/seo/page.tsx"
        }
      ]
    },
    {
      "name": "session-management",
      "type": "registry:block",
      "title": "Session Management",
      "description": "Active sessions/devices view, revoke sessions, and security event history.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "settings-layout",
      "type": "registry:block",
      "title": "Settings Layout",
      "description": "Reusable settings shell for account, workspace, billing, and security pages.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/settings-layout.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/settings-layout.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/settings-layout.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/settings-layout.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/settings-layout/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/settings-layout/page.tsx"
        }
      ]
    },
    {
      "name": "sidebar-shell",
      "type": "registry:block",
      "title": "Sidebar Shell",
      "description": "Sidebar shell with navigation, header, responsive layout, and product config.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "sla-management",
      "type": "registry:block",
      "title": "SLA Management",
      "description": "Customer SLA tiers, response targets, and escalation policies.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/support-console.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/sla-management.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/sla-management.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/operations/slas/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/operations/slas/page.tsx"
        }
      ]
    },
    {
      "name": "slack-notifications",
      "type": "registry:block",
      "title": "Slack Notifications",
      "description": "Slack webhook/app integration, alerts, and admin settings.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "status-page",
      "type": "registry:block",
      "title": "Status Page",
      "description": "Public component status and incident update page.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/incident-management.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/status-page.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/status-page.ts"
        },
        {
          "path": "apps/web/src/app/status/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/status/page.tsx"
        }
      ]
    },
    {
      "name": "stripe-billing",
      "type": "registry:block",
      "title": "Stripe Billing",
      "description": "Stripe checkout, billing portal, subscription sync, webhook dedupe, and entitlement mapping.",
      "dependencies": [
        "stripe"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/billing.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/billing.ts"
        },
        {
          "path": "apps/web/src/lib/stripe/client.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stripe/client.ts"
        },
        {
          "path": "apps/web/src/app/api/webhooks/stripe/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/webhooks/stripe/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/page.tsx"
        }
      ]
    },
    {
      "name": "supabase-postgres",
      "type": "registry:block",
      "title": "Supabase Postgres",
      "description": "Supabase SSR clients, Postgres env wiring, and RLS-first setup notes.",
      "dependencies": [
        "@supabase/ssr",
        "@supabase/supabase-js"
      ],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/supabase/server.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/supabase/server.ts"
        },
        {
          "path": "apps/web/src/lib/supabase/admin.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/supabase/admin.ts"
        },
        {
          "path": "supabase/rls-notes.sql",
          "type": "registry:file",
          "target": "supabase/rls-notes.sql"
        },
        {
          "path": "apps/web/src/app/(console)/admin/data/supabase/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/data/supabase/page.tsx"
        }
      ]
    },
    {
      "name": "support-console",
      "type": "registry:block",
      "title": "Support Console",
      "description": "Support workspace for customer lookup, notes, and escalation state.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/audit-log.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/support-console.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/support-console.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/support/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/support/page.tsx"
        }
      ]
    },
    {
      "name": "support-widget",
      "type": "registry:block",
      "title": "Support Widget",
      "description": "Embeddable support launcher and server-side submission route.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/support-console.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/support-widget.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/support-widget.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/support-widget.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/support-widget.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/support/widget/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/support/widget/page.tsx"
        }
      ]
    },
    {
      "name": "surveys-nps",
      "type": "registry:block",
      "title": "Surveys and NPS",
      "description": "NPS/CSAT surveys, in-app prompts, response tables, and segmentation.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "system-health",
      "type": "registry:block",
      "title": "System Health",
      "description": "Health checks, dependency status, and incident readiness UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/system-health.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/system-health.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/system-health/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/system-health/page.tsx"
        }
      ]
    },
    {
      "name": "t3-env",
      "type": "registry:block",
      "title": "T3 Env",
      "description": "Type-safe server/client environment validation and .env.example management.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "tax-vat",
      "type": "registry:block",
      "title": "Tax and VAT",
      "description": "Tax/VAT collection status, business identifiers, and tax provider adapter boundary.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/tax-vat.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/tax-vat.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/tax-vat.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/tax-vat.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/tax/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/tax/page.tsx"
        }
      ]
    },
    {
      "name": "tenant-context",
      "type": "registry:block",
      "title": "Tenant Context",
      "description": "Resolve tenant context once per request and pass it through server code.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/tenant-context.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/tenant-context.ts"
        },
        {
          "path": "apps/web/src/lib/stackfoundry/tenant-context.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/tenant-context.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/tenancy/context/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/tenancy/context/page.tsx"
        }
      ]
    },
    {
      "name": "tenant-isolation-tests",
      "type": "registry:block",
      "title": "Tenant Isolation Tests",
      "description": "Test helpers and checklist for cross-tenant isolation assertions.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/tenant-isolation-tests.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/tenant-isolation-tests.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/tenancy/isolation-tests/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/tenancy/isolation-tests/page.tsx"
        }
      ]
    },
    {
      "name": "theme-system",
      "type": "registry:block",
      "title": "Theme System",
      "description": "Product tokens, light/dark mode, density settings, and nav configuration.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "toast-notifications",
      "type": "registry:block",
      "title": "Toast Notifications",
      "description": "Accessible toast queue component for action feedback.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/toast-notifications.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/toast-notifications.ts"
        },
        {
          "path": "apps/web/src/components/stackfoundry/toast-notifications.tsx",
          "type": "registry:component",
          "target": "apps/web/src/components/stackfoundry/toast-notifications.tsx"
        },
        {
          "path": "apps/web/src/app/(console)/components/toasts/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/components/toasts/page.tsx"
        }
      ]
    },
    {
      "name": "trial-management",
      "type": "registry:block",
      "title": "Trial Management",
      "description": "Trial windows, conversion state, and expiry handling.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/billing-core.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/trial-management.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/trial-management.ts"
        },
        {
          "path": "apps/web/src/app/(console)/billing/trials/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/billing/trials/page.tsx"
        }
      ]
    },
    {
      "name": "tinybird-analytics",
      "type": "registry:block",
      "title": "Tinybird Analytics",
      "description": "Tinybird Events API adapter for high-volume product, usage, and AI analytics event streams.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/plg-metrics.json",
        "https://stackfoundry.dev/r/usage-metering.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/tinybird/analytics.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/tinybird/analytics.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/tinybird/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/tinybird/page.tsx"
        }
      ]
    },
    {
      "name": "trigger-dev-jobs",
      "type": "registry:block",
      "title": "Trigger.dev Jobs",
      "description": "Trigger.dev task definitions, run triggering route, and job dashboard starter.",
      "dependencies": [
        "@trigger.dev/sdk"
      ],
      "devDependencies": [
        "trigger.dev"
      ],
      "registryDependencies": [
        "https://stackfoundry.dev/r/background-jobs.json"
      ],
      "files": [
        {
          "path": "apps/web/src/trigger/example.ts",
          "type": "registry:file",
          "target": "apps/web/src/trigger/example.ts"
        },
        {
          "path": "apps/web/src/app/api/tasks/trigger-dev/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/tasks/trigger-dev/route.ts"
        },
        {
          "path": "trigger.config.ts",
          "type": "registry:file",
          "target": "trigger.config.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/workflows/trigger-dev/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/workflows/trigger-dev/page.tsx"
        }
      ]
    },
    {
      "name": "unkey-api-keys",
      "type": "registry:block",
      "title": "Unkey API Keys",
      "description": "Unkey key creation and verification helpers with protected route example.",
      "dependencies": [
        "@unkey/api"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/api-keys.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/unkey/client.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/unkey/client.ts"
        },
        {
          "path": "apps/web/src/lib/unkey/api-keys.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/unkey/api-keys.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/unkey/verify/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/unkey/verify/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/unkey/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/unkey/page.tsx"
        }
      ]
    },
    {
      "name": "unkey-rate-limits",
      "type": "registry:block",
      "title": "Unkey Rate Limits",
      "description": "Unkey rate limit namespace helper and protected route example.",
      "dependencies": [
        "@unkey/ratelimit"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/rate-limits.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/unkey/ratelimit.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/unkey/ratelimit.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/unkey/ratelimit/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/unkey/ratelimit/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/unkey-rate-limits/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/unkey-rate-limits/page.tsx"
        }
      ]
    },
    {
      "name": "upstash-redis",
      "type": "registry:block",
      "title": "Upstash Redis",
      "description": "Upstash Redis client, serverless rate limiter, and deployment smoke route.",
      "dependencies": [
        "@upstash/redis",
        "@upstash/ratelimit"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/rate-limits.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/upstash/redis.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/upstash/redis.ts"
        },
        {
          "path": "apps/web/src/lib/upstash/ratelimit.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/upstash/ratelimit.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/upstash/health/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/upstash/health/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/upstash/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/upstash/page.tsx"
        }
      ]
    },
    {
      "name": "uptime-monitoring",
      "type": "registry:block",
      "title": "Uptime Monitoring",
      "description": "Public endpoint checks, SLA targets, and status escalation notes.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/system-health.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/uptime-monitoring.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/uptime-monitoring.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/operations/uptime/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/operations/uptime/page.tsx"
        }
      ]
    },
    {
      "name": "usage-based-billing",
      "type": "registry:block",
      "title": "Usage Based Billing",
      "description": "Metered usage, Stripe meter events, threshold alerts, and billing hooks.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "usage-metering",
      "type": "registry:block",
      "title": "Usage Metering",
      "description": "Usage event capture, aggregation helpers, and billing-ready usage UI.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/usage-metering.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/usage-metering.ts"
        },
        {
          "path": "apps/web/src/lib/usage-metering.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/usage-metering.ts"
        },
        {
          "path": "apps/web/src/app/(console)/usage/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/usage/page.tsx"
        }
      ]
    },
    {
      "name": "vercel-blob",
      "type": "registry:block",
      "title": "Vercel Blob",
      "description": "Vercel Blob upload route, list helper, and file storage dashboard starter.",
      "dependencies": [
        "@vercel/blob"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/file-uploads.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/vercel/blob.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/vercel/blob.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/vercel/blob/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/vercel/blob/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/vercel-blob/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/vercel-blob/page.tsx"
        }
      ]
    },
    {
      "name": "vercel-deploy",
      "type": "registry:block",
      "title": "Vercel Deploy",
      "description": "Vercel project linking, env pull, preview/prod scripts, and deployment docs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/vercel-deploy.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/vercel-deploy.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/vercel-deploy/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/vercel-deploy/page.tsx"
        },
        {
          "path": "docs/providers/vercel-deploy.md",
          "type": "registry:file",
          "target": "docs/providers/vercel-deploy.md"
        }
      ]
    },
    {
      "name": "vercel-edge-config",
      "type": "registry:block",
      "title": "Vercel Edge Config",
      "description": "Edge Config read helper for low-latency flags, redirects, and rollout config.",
      "dependencies": [
        "@vercel/edge-config"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/feature-flags.json"
      ],
      "files": [
        {
          "path": "apps/web/src/lib/vercel/edge-config.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/vercel/edge-config.ts"
        },
        {
          "path": "apps/web/src/app/api/providers/vercel/edge-config/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/providers/vercel/edge-config/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/vercel-edge-config/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/vercel-edge-config/page.tsx"
        }
      ]
    },
    {
      "name": "vercel-integration",
      "type": "registry:block",
      "title": "Vercel Integration",
      "description": "Deployments list, env sync docs, and preview links.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/vercel-integration.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/vercel-integration.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/vercel-integration/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/vercel-integration/page.tsx"
        },
        {
          "path": "docs/providers/vercel-integration.md",
          "type": "registry:file",
          "target": "docs/providers/vercel-integration.md"
        }
      ]
    },
    {
      "name": "vercel-marketplace-storage",
      "type": "registry:block",
      "title": "Vercel Marketplace Storage",
      "description": "Guided setup for Neon, Supabase, Upstash, AWS, and marketplace integrations.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/lib/stackfoundry/providers/vercel-marketplace-storage.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/stackfoundry/providers/vercel-marketplace-storage.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/providers/vercel-marketplace-storage/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/providers/vercel-marketplace-storage/page.tsx"
        },
        {
          "path": "docs/providers/vercel-marketplace-storage.md",
          "type": "registry:file",
          "target": "docs/providers/vercel-marketplace-storage.md"
        }
      ]
    },
    {
      "name": "vercel-workflows",
      "type": "registry:block",
      "title": "Vercel Workflows",
      "description": "Vercel Workflow DevKit durable workflow and Next.js route starter.",
      "dependencies": [
        "workflow"
      ],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/background-jobs.json"
      ],
      "files": [
        {
          "path": "apps/web/src/workflows/welcome.ts",
          "type": "registry:file",
          "target": "apps/web/src/workflows/welcome.ts"
        },
        {
          "path": "apps/web/src/app/api/workflows/welcome/route.ts",
          "type": "registry:file",
          "target": "apps/web/src/app/api/workflows/welcome/route.ts"
        },
        {
          "path": "apps/web/src/app/(console)/admin/workflows/vercel/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/admin/workflows/vercel/page.tsx"
        }
      ]
    },
    {
      "name": "waitlist",
      "type": "registry:block",
      "title": "Waitlist",
      "description": "Waitlist form, referral code, and invite state.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": []
    },
    {
      "name": "webhook-delivery",
      "type": "registry:block",
      "title": "Webhook Delivery",
      "description": "Outbound webhook endpoints, signing helpers, retries, and delivery logs.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/webhook-delivery.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/webhook-delivery.ts"
        },
        {
          "path": "apps/web/src/lib/webhook-delivery.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/webhook-delivery.ts"
        },
        {
          "path": "apps/web/src/app/(console)/developers/webhooks/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/developers/webhooks/page.tsx"
        }
      ]
    },
    {
      "name": "webhook-inbox",
      "type": "registry:block",
      "title": "Webhook Inbox",
      "description": "Inbound webhook capture, signature metadata, and replay workflow.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/webhook-inbox.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/webhook-inbox.ts"
        },
        {
          "path": "apps/web/src/lib/webhook-inbox.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/webhook-inbox.ts"
        },
        {
          "path": "apps/web/src/app/(console)/webhooks/inbox/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/webhooks/inbox/page.tsx"
        }
      ]
    },
    {
      "name": "workspace-branding",
      "type": "registry:block",
      "title": "Workspace Branding",
      "description": "Workspace logo, color, domain, and branded experience settings.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [
        "https://stackfoundry.dev/r/drizzle-postgres.json"
      ],
      "files": [
        {
          "path": "packages/db/src/schema/workspace-branding.ts",
          "type": "registry:file",
          "target": "packages/db/src/schema/workspace-branding.ts"
        },
        {
          "path": "apps/web/src/lib/workspace-branding.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/workspace-branding.ts"
        },
        {
          "path": "apps/web/src/app/(console)/settings/workspace/branding/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/branding/page.tsx"
        }
      ]
    },
    {
      "name": "workspace-settings",
      "type": "registry:block",
      "title": "Workspace Settings",
      "description": "Organization members, roles, API keys, billing, and security settings.",
      "dependencies": [],
      "devDependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "apps/web/src/app/(console)/settings/workspace/page.tsx",
          "type": "registry:page",
          "target": "apps/web/src/app/(console)/settings/workspace/page.tsx"
        },
        {
          "path": "apps/web/src/lib/workspace-settings.ts",
          "type": "registry:file",
          "target": "apps/web/src/lib/workspace-settings.ts"
        }
      ]
    }
  ]
}
