{
  "version": 1,
  "packages": [
    {
      "id": "thebuilder.blurplaceholder",
      "name": "Blur Placeholder",
      "summary": "Generates a WebP, BlurHash or ThumbHash placeholder when an image is saved, ready for your frontend to show while the image loads.",
      "links": {
        "docs": "https://blur.thebuilder.dk/",
        "nuget": "https://www.nuget.org/packages/TheBuilder.BlurPlaceholder",
        "marketplace": "https://marketplace.umbraco.com/package/thebuilder.blurplaceholder",
        "github": "https://github.com/thebuilder/blur-placeholder"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/blur-placeholder.svg",
      "compatibility": {
        "umbraco": ">=17.1 <19",
        "dotnet": ">=10"
      },
      "status": "stable",
      "categories": [
        "Developer Tools",
        "Media"
      ]
    },
    {
      "id": "thebuilder.webanalytics",
      "name": "Web Analytics",
      "summary": "Shows the traffic from Vercel Web Analytics or Plausible in the Umbraco backoffice, for the whole site and for each page.",
      "links": {
        "docs": "https://web-analytics.thebuilder.dk/",
        "nuget": "https://www.nuget.org/packages/TheBuilder.WebAnalytics",
        "marketplace": "https://marketplace.umbraco.com/package/thebuilder.webanalytics",
        "github": "https://github.com/thebuilder/web-analytics"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/web-analytics.svg",
      "compatibility": {
        "umbraco": ">=17.1 <19",
        "dotnet": ">=10"
      },
      "status": "stable",
      "categories": [
        "Analytics",
        "Editor Tools"
      ]
    },
    {
      "id": "thebuilder.aiimagedisclosure",
      "name": "AI Image Disclosure",
      "summary": "Reads the C2PA Content Credentials on uploaded images and flags the ones that say they were made or edited with AI.",
      "links": {
        "docs": "https://ai-image-disclosure.thebuilder.dk/",
        "github": "https://github.com/thebuilder/umbraco-ai-image-disclosure"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/ai-image-disclosure.svg",
      "compatibility": {
        "umbraco": ">=17.1 <19",
        "dotnet": ">=10"
      },
      "status": "preview",
      "categories": [
        "Artificial Intelligence",
        "Editor Tools"
      ]
    },
    {
      "id": "thebuilder.apptranslations",
      "name": "App Translations",
      "summary": "Lets editors change the next-intl or i18next messages in your app from Umbraco. Your app fetches the changes when it runs.",
      "links": {
        "docs": "https://app-translations.thebuilder.dk/",
        "nuget": "https://www.nuget.org/packages/TheBuilder.AppTranslations",
        "marketplace": "https://marketplace.umbraco.com/package/thebuilder.apptranslations",
        "github": "https://github.com/thebuilder/umbraco-app-translations"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/app-translations.svg",
      "compatibility": {
        "umbraco": ">=17.1 <19",
        "dotnet": ">=10"
      },
      "status": "preview",
      "categories": [
        "Editor Tools",
        "Headless"
      ]
    },
    {
      "id": "thebuilder.apioidc",
      "name": "API OIDC",
      "summary": "Lets frontends call the Delivery API and your own endpoints with an OIDC token from their hosting platform, instead of a shared API key.",
      "links": {
        "docs": "https://api-oidc.thebuilder.dk/",
        "nuget": "https://www.nuget.org/packages/TheBuilder.ApiOidc",
        "marketplace": "https://marketplace.umbraco.com/package/thebuilder.apioidc",
        "github": "https://github.com/thebuilder/umbraco-api-oidc"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/api-oidc.svg",
      "compatibility": {
        "umbraco": ">=17.1 <19"
      },
      "status": "preview",
      "categories": [
        "Headless",
        "Developer Tools"
      ]
    },
    {
      "id": "thebuilder.schemacity",
      "name": "Schema City",
      "summary": "Shows your Document Types as a city in the backoffice, with the links between them, and flags schema problems before they ship.",
      "links": {
        "docs": "https://schema-city.thebuilder.dk/",
        "nuget": "https://www.nuget.org/packages/TheBuilder.SchemaCity",
        "marketplace": "https://marketplace.umbraco.com/package/thebuilder.schemacity",
        "github": "https://github.com/thebuilder/umbraco-schema-city"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/schema-city.svg",
      "compatibility": {
        "umbraco": ">=17 <19",
        "dotnet": ">=10"
      },
      "status": "preview",
      "categories": [
        "Developer Tools",
        "Editor Tools"
      ]
    },
    {
      "id": "charlietango.umbracorichtext",
      "name": "Umbraco Rich Text",
      "summary": "Renders the rich text JSON from the Umbraco Content Delivery API with React. You decide how each block and node is rendered.",
      "links": {
        "docs": "https://github.com/charlie-tango/umbraco-rich-text#readme",
        "npm": "https://www.npmjs.com/package/@charlietango/umbraco-rich-text",
        "github": "https://github.com/charlie-tango/umbraco-rich-text"
      },
      "logo": "https://umbraco.thebuilder.dk/logos/umbraco-rich-text.svg",
      "compatibility": {
        "umbraco": ">=12"
      },
      "status": "stable",
      "categories": [
        "Headless"
      ]
    }
  ]
}
