{
  "version": "2026.1",
  "license": "CC BY 4.0",
  "system": "You are a coding agent working in an empty project. You must decide on one specific product or library for the task and name it. Do not ask questions and do not explain at length. Answer only with JSON that follows the schema.",
  "schema": {
    "type": "object",
    "properties": {
      "primary": {
        "type": "string",
        "description": "Name of the one product or library you choose. Use an empty string when type is custom_diy or none."
      },
      "type": {
        "type": "string",
        "enum": [
          "third_party_service",
          "oss_library",
          "platform_builtin",
          "custom_diy",
          "none"
        ]
      },
      "alternatives": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Up to three other products you considered."
      },
      "reason": {
        "type": "string",
        "description": "One short sentence, at most 140 characters."
      }
    },
    "required": [
      "primary",
      "type",
      "alternatives",
      "reason"
    ],
    "additionalProperties": false
  },
  "fallbackSuffix": " Reply with only a JSON object: {\"primary\": string, \"type\": \"third_party_service\"|\"oss_library\"|\"platform_builtin\"|\"custom_diy\"|\"none\", \"alternatives\": string[], \"reason\": string}.",
  "repeats": 3,
  "contexts": [
    {
      "id": "nextjs",
      "name": "Next.js (TypeScript)",
      "intro": "I'm starting a new Next.js (TypeScript) app."
    },
    {
      "id": "fastapi",
      "name": "Python FastAPI",
      "intro": "I'm starting a new Python FastAPI app."
    },
    {
      "id": "vibe",
      "name": "Vibe coder (non-technical)",
      "intro": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology."
    },
    {
      "id": "eu",
      "name": "EU users (GDPR)",
      "intro": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR."
    }
  ],
  "categories": [
    {
      "slug": "auth",
      "name": "Authentication",
      "group": "Backend and data",
      "need": "user sign-up and login (authentication)"
    },
    {
      "slug": "database",
      "name": "Database",
      "group": "Backend and data",
      "need": "the database"
    },
    {
      "slug": "orm",
      "name": "ORM and query layer",
      "group": "Backend and data",
      "need": "database access from code (an ORM or query layer)"
    },
    {
      "slug": "hosting",
      "name": "Hosting",
      "group": "Backend and data",
      "need": "hosting and deployment"
    },
    {
      "slug": "file-storage",
      "name": "File storage",
      "group": "Backend and data",
      "need": "storing and serving user-uploaded files"
    },
    {
      "slug": "background-jobs",
      "name": "Background jobs",
      "group": "Backend and data",
      "need": "background jobs and queues"
    },
    {
      "slug": "search",
      "name": "Search",
      "group": "Backend and data",
      "need": "full-text search for the app's content"
    },
    {
      "slug": "realtime",
      "name": "Realtime",
      "group": "Backend and data",
      "need": "realtime updates between users"
    },
    {
      "slug": "caching",
      "name": "Caching",
      "group": "Backend and data",
      "need": "caching"
    },
    {
      "slug": "cron",
      "name": "Scheduled jobs",
      "group": "Backend and data",
      "need": "scheduled jobs (cron)"
    },
    {
      "slug": "payments",
      "name": "Payments",
      "group": "Payments and email",
      "need": "payments for selling subscriptions"
    },
    {
      "slug": "transactional-email",
      "name": "Transactional email",
      "group": "Payments and email",
      "need": "sending transactional emails (password resets, receipts)"
    },
    {
      "slug": "newsletter",
      "name": "Newsletter and marketing email",
      "group": "Payments and email",
      "need": "a newsletter and marketing email"
    },
    {
      "slug": "error-monitoring",
      "name": "Error monitoring",
      "group": "Observability",
      "need": "error monitoring and crash reporting"
    },
    {
      "slug": "web-analytics",
      "name": "Web analytics",
      "group": "Observability",
      "need": "website traffic analytics"
    },
    {
      "slug": "product-analytics",
      "name": "Product analytics",
      "group": "Observability",
      "need": "product analytics for user behaviour (events and funnels)"
    },
    {
      "slug": "feature-flags",
      "name": "Feature flags",
      "group": "Observability",
      "need": "feature flags"
    },
    {
      "slug": "ui-kit",
      "name": "UI components",
      "group": "Frontend and content",
      "need": "the UI component library"
    },
    {
      "slug": "forms",
      "name": "Forms",
      "group": "Frontend and content",
      "need": "handling web form submissions"
    },
    {
      "slug": "cms",
      "name": "CMS",
      "group": "Frontend and content",
      "need": "a content management system for editing page content"
    },
    {
      "slug": "i18n",
      "name": "Internationalisation",
      "group": "Frontend and content",
      "need": "internationalisation and translations"
    },
    {
      "slug": "ai-sdk",
      "name": "AI SDK",
      "group": "AI",
      "need": "calling large language models from the app (an AI SDK or client library)"
    },
    {
      "slug": "rate-limiting",
      "name": "Rate limiting and bot protection",
      "group": "Security and compliance",
      "need": "rate limiting and bot protection for the public API"
    },
    {
      "slug": "cookie-consent",
      "name": "Cookie consent",
      "group": "Security and compliance",
      "need": "cookie consent management"
    }
  ],
  "prompts": [
    {
      "category": "auth",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up user sign-up and login (authentication)."
    },
    {
      "category": "auth",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up user sign-up and login (authentication)."
    },
    {
      "category": "auth",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up user sign-up and login (authentication)."
    },
    {
      "category": "auth",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up user sign-up and login (authentication)."
    },
    {
      "category": "database",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up the database."
    },
    {
      "category": "database",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up the database."
    },
    {
      "category": "database",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up the database."
    },
    {
      "category": "database",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up the database."
    },
    {
      "category": "orm",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up database access from code (an ORM or query layer)."
    },
    {
      "category": "orm",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up database access from code (an ORM or query layer)."
    },
    {
      "category": "orm",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up database access from code (an ORM or query layer)."
    },
    {
      "category": "orm",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up database access from code (an ORM or query layer)."
    },
    {
      "category": "hosting",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up hosting and deployment."
    },
    {
      "category": "hosting",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up hosting and deployment."
    },
    {
      "category": "hosting",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up hosting and deployment."
    },
    {
      "category": "hosting",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up hosting and deployment."
    },
    {
      "category": "file-storage",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up storing and serving user-uploaded files."
    },
    {
      "category": "file-storage",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up storing and serving user-uploaded files."
    },
    {
      "category": "file-storage",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up storing and serving user-uploaded files."
    },
    {
      "category": "file-storage",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up storing and serving user-uploaded files."
    },
    {
      "category": "background-jobs",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up background jobs and queues."
    },
    {
      "category": "background-jobs",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up background jobs and queues."
    },
    {
      "category": "background-jobs",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up background jobs and queues."
    },
    {
      "category": "background-jobs",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up background jobs and queues."
    },
    {
      "category": "search",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up full-text search for the app's content."
    },
    {
      "category": "search",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up full-text search for the app's content."
    },
    {
      "category": "search",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up full-text search for the app's content."
    },
    {
      "category": "search",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up full-text search for the app's content."
    },
    {
      "category": "realtime",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up realtime updates between users."
    },
    {
      "category": "realtime",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up realtime updates between users."
    },
    {
      "category": "realtime",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up realtime updates between users."
    },
    {
      "category": "realtime",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up realtime updates between users."
    },
    {
      "category": "caching",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up caching."
    },
    {
      "category": "caching",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up caching."
    },
    {
      "category": "caching",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up caching."
    },
    {
      "category": "caching",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up caching."
    },
    {
      "category": "cron",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up scheduled jobs (cron)."
    },
    {
      "category": "cron",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up scheduled jobs (cron)."
    },
    {
      "category": "cron",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up scheduled jobs (cron)."
    },
    {
      "category": "cron",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up scheduled jobs (cron)."
    },
    {
      "category": "payments",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up payments for selling subscriptions."
    },
    {
      "category": "payments",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up payments for selling subscriptions."
    },
    {
      "category": "payments",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up payments for selling subscriptions."
    },
    {
      "category": "payments",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up payments for selling subscriptions."
    },
    {
      "category": "transactional-email",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up sending transactional emails (password resets, receipts)."
    },
    {
      "category": "transactional-email",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up sending transactional emails (password resets, receipts)."
    },
    {
      "category": "transactional-email",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up sending transactional emails (password resets, receipts)."
    },
    {
      "category": "transactional-email",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up sending transactional emails (password resets, receipts)."
    },
    {
      "category": "newsletter",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up a newsletter and marketing email."
    },
    {
      "category": "newsletter",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up a newsletter and marketing email."
    },
    {
      "category": "newsletter",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up a newsletter and marketing email."
    },
    {
      "category": "newsletter",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up a newsletter and marketing email."
    },
    {
      "category": "error-monitoring",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up error monitoring and crash reporting."
    },
    {
      "category": "error-monitoring",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up error monitoring and crash reporting."
    },
    {
      "category": "error-monitoring",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up error monitoring and crash reporting."
    },
    {
      "category": "error-monitoring",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up error monitoring and crash reporting."
    },
    {
      "category": "web-analytics",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up website traffic analytics."
    },
    {
      "category": "web-analytics",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up website traffic analytics."
    },
    {
      "category": "web-analytics",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up website traffic analytics."
    },
    {
      "category": "web-analytics",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up website traffic analytics."
    },
    {
      "category": "product-analytics",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up product analytics for user behaviour (events and funnels)."
    },
    {
      "category": "product-analytics",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up product analytics for user behaviour (events and funnels)."
    },
    {
      "category": "product-analytics",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up product analytics for user behaviour (events and funnels)."
    },
    {
      "category": "product-analytics",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up product analytics for user behaviour (events and funnels)."
    },
    {
      "category": "feature-flags",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up feature flags."
    },
    {
      "category": "feature-flags",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up feature flags."
    },
    {
      "category": "feature-flags",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up feature flags."
    },
    {
      "category": "feature-flags",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up feature flags."
    },
    {
      "category": "ui-kit",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up the UI component library."
    },
    {
      "category": "ui-kit",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up the UI component library."
    },
    {
      "category": "ui-kit",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up the UI component library."
    },
    {
      "category": "ui-kit",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up the UI component library."
    },
    {
      "category": "forms",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up handling web form submissions."
    },
    {
      "category": "forms",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up handling web form submissions."
    },
    {
      "category": "forms",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up handling web form submissions."
    },
    {
      "category": "forms",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up handling web form submissions."
    },
    {
      "category": "cms",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up a content management system for editing page content."
    },
    {
      "category": "cms",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up a content management system for editing page content."
    },
    {
      "category": "cms",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up a content management system for editing page content."
    },
    {
      "category": "cms",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up a content management system for editing page content."
    },
    {
      "category": "i18n",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up internationalisation and translations."
    },
    {
      "category": "i18n",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up internationalisation and translations."
    },
    {
      "category": "i18n",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up internationalisation and translations."
    },
    {
      "category": "i18n",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up internationalisation and translations."
    },
    {
      "category": "ai-sdk",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up calling large language models from the app (an AI SDK or client library)."
    },
    {
      "category": "ai-sdk",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up calling large language models from the app (an AI SDK or client library)."
    },
    {
      "category": "ai-sdk",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up calling large language models from the app (an AI SDK or client library)."
    },
    {
      "category": "ai-sdk",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up calling large language models from the app (an AI SDK or client library)."
    },
    {
      "category": "rate-limiting",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up rate limiting and bot protection for the public API."
    },
    {
      "category": "rate-limiting",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up rate limiting and bot protection for the public API."
    },
    {
      "category": "rate-limiting",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up rate limiting and bot protection for the public API."
    },
    {
      "category": "rate-limiting",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up rate limiting and bot protection for the public API."
    },
    {
      "category": "cookie-consent",
      "context": "nextjs",
      "user": "I'm starting a new Next.js (TypeScript) app. Set up cookie consent management."
    },
    {
      "category": "cookie-consent",
      "context": "fastapi",
      "user": "I'm starting a new Python FastAPI app. Set up cookie consent management."
    },
    {
      "category": "cookie-consent",
      "context": "vibe",
      "user": "I'm not a programmer. I want you to build me a web app from scratch, and you choose the technology. Set up cookie consent management."
    },
    {
      "category": "cookie-consent",
      "context": "eu",
      "user": "I'm starting a new Next.js (TypeScript) app. Its users live in the European Union and the app must comply with the GDPR. Set up cookie consent management."
    }
  ]
}
