diff --git a/src/content/docs/ai-gateway/tutorials/deploy-aig-worker.mdx b/src/content/docs/ai-gateway/tutorials/deploy-aig-worker.mdx
index cca64ece4fc3d30..16aaa12f60021e3 100644
--- a/src/content/docs/ai-gateway/tutorials/deploy-aig-worker.mdx
+++ b/src/content/docs/ai-gateway/tutorials/deploy-aig-worker.mdx
@@ -4,11 +4,10 @@ difficulty: Beginner
pcx_content_type: tutorial
tags:
- AI
+ - JavaScript
title: Deploy a Worker that connects to OpenAI via AI Gateway
products:
- Workers
-languages:
- - JavaScript
description: Learn how to deploy a Worker that makes calls to OpenAI through AI Gateway
---
diff --git a/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx b/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx
index ed5b945f3614863..140bd3f03e0875d 100644
--- a/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx
+++ b/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx
@@ -7,7 +7,7 @@ products:
- R2
difficulty: Beginner
updated: 2023-09-28
-languages:
+tags:
- JavaScript
sidebar:
order: 2
diff --git a/src/content/docs/cloudflare-one/tutorials/access-workers.mdx b/src/content/docs/cloudflare-one/tutorials/access-workers.mdx
index 2d9ec213e9ff27b..bab892b76d197b5 100644
--- a/src/content/docs/cloudflare-one/tutorials/access-workers.mdx
+++ b/src/content/docs/cloudflare-one/tutorials/access-workers.mdx
@@ -7,7 +7,7 @@ title: Create custom headers for Cloudflare Access-protected origins with Worker
products:
- Workers
- Access
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/cloudflare-one/tutorials/fastapi.mdx b/src/content/docs/cloudflare-one/tutorials/fastapi.mdx
index d78f234b0a944c4..449664656bce8b8 100644
--- a/src/content/docs/cloudflare-one/tutorials/fastapi.mdx
+++ b/src/content/docs/cloudflare-one/tutorials/fastapi.mdx
@@ -3,7 +3,7 @@ updated: 2023-06-09
category: 🔐 Access
pcx_content_type: tutorial
title: Validate the Access token with FastAPI
-languages:
+tags:
- Python
---
diff --git a/src/content/docs/d1/examples/query-d1-from-python-workers.mdx b/src/content/docs/d1/examples/query-d1-from-python-workers.mdx
index b77c2a6fda0ef4b..59165521c4141e2 100644
--- a/src/content/docs/d1/examples/query-d1-from-python-workers.mdx
+++ b/src/content/docs/d1/examples/query-d1-from-python-workers.mdx
@@ -1,7 +1,7 @@
---
type: example
summary: Learn how to query D1 from a Python Worker
-languages:
+tags:
- Python
pcx_content_type: example
title: Query D1 from Python Workers
diff --git a/src/content/docs/d1/tutorials/build-a-comments-api/index.mdx b/src/content/docs/d1/tutorials/build-a-comments-api/index.mdx
index c983c19bd89e929..3a37f87c24dd2ec 100644
--- a/src/content/docs/d1/tutorials/build-a-comments-api/index.mdx
+++ b/src/content/docs/d1/tutorials/build-a-comments-api/index.mdx
@@ -7,7 +7,6 @@ products:
- Workers
tags:
- Hono
-languages:
- JavaScript
- SQL
---
diff --git a/src/content/docs/d1/tutorials/build-a-staff-directory-app/index.mdx b/src/content/docs/d1/tutorials/build-a-staff-directory-app/index.mdx
index 572ad7682e2bec2..d8d7efdab4b8d3f 100644
--- a/src/content/docs/d1/tutorials/build-a-staff-directory-app/index.mdx
+++ b/src/content/docs/d1/tutorials/build-a-staff-directory-app/index.mdx
@@ -7,7 +7,6 @@ products:
- Pages
tags:
- Hono
-languages:
- TypeScript
- SQL
description: Build a staff directory using D1. Users access employee info; admins add new employees within the app.
diff --git a/src/content/docs/d1/tutorials/build-an-api-to-access-d1/index.mdx b/src/content/docs/d1/tutorials/build-an-api-to-access-d1/index.mdx
index 16ceedc186015b3..65b96450209090f 100644
--- a/src/content/docs/d1/tutorials/build-an-api-to-access-d1/index.mdx
+++ b/src/content/docs/d1/tutorials/build-an-api-to-access-d1/index.mdx
@@ -7,7 +7,6 @@ products:
- Workers
tags:
- Hono
-languages:
- TypeScript
- SQL
---
diff --git a/src/content/docs/d1/tutorials/d1-and-prisma-orm/index.mdx b/src/content/docs/d1/tutorials/d1-and-prisma-orm/index.mdx
index 2b94a1a973234dd..9eaec1d4f017f58 100644
--- a/src/content/docs/d1/tutorials/d1-and-prisma-orm/index.mdx
+++ b/src/content/docs/d1/tutorials/d1-and-prisma-orm/index.mdx
@@ -6,7 +6,7 @@ pcx_content_type: tutorial
title: Query D1 using Prisma ORM
products:
- Workers
-languages:
+tags:
- TypeScript
- SQL
---
diff --git a/src/content/docs/d1/tutorials/import-to-d1-with-rest-api/index.mdx b/src/content/docs/d1/tutorials/import-to-d1-with-rest-api/index.mdx
index c5d1bddd9e61203..c29951715c17f20 100644
--- a/src/content/docs/d1/tutorials/import-to-d1-with-rest-api/index.mdx
+++ b/src/content/docs/d1/tutorials/import-to-d1-with-rest-api/index.mdx
@@ -4,7 +4,7 @@ difficulty: Beginner
content_type: Tutorial
pcx_content_type: tutorial
title: Bulk import to D1 using REST API
-languages:
+tags:
- JavaScript
- TypeScript
- SQL
diff --git a/src/content/docs/d1/tutorials/using-read-replication-for-e-com/index.mdx b/src/content/docs/d1/tutorials/using-read-replication-for-e-com/index.mdx
index 1e091895b9062a0..8dea83ac5be2c68 100644
--- a/src/content/docs/d1/tutorials/using-read-replication-for-e-com/index.mdx
+++ b/src/content/docs/d1/tutorials/using-read-replication-for-e-com/index.mdx
@@ -4,7 +4,7 @@ difficulty: Beginner
content_type: Tutorial
pcx_content_type: tutorial
title: Using D1 Read Replication for your e-commerce website
-languages:
+tags:
- JavaScript
- TypeScript
- SQL
diff --git a/src/content/docs/developer-spotlight/tutorials/create-sitemap-from-sanity-cms.mdx b/src/content/docs/developer-spotlight/tutorials/create-sitemap-from-sanity-cms.mdx
index b761f635d213cc3..b1bfff0f465230d 100644
--- a/src/content/docs/developer-spotlight/tutorials/create-sitemap-from-sanity-cms.mdx
+++ b/src/content/docs/developer-spotlight/tutorials/create-sitemap-from-sanity-cms.mdx
@@ -7,7 +7,6 @@ products:
- Workers
tags:
- CMS
-languages:
- JavaScript
- TypeScript
spotlight:
diff --git a/src/content/docs/developer-spotlight/tutorials/creating-a-recommendation-api.mdx b/src/content/docs/developer-spotlight/tutorials/creating-a-recommendation-api.mdx
index c0b13435e517313..df378bc2951cb06 100644
--- a/src/content/docs/developer-spotlight/tutorials/creating-a-recommendation-api.mdx
+++ b/src/content/docs/developer-spotlight/tutorials/creating-a-recommendation-api.mdx
@@ -7,8 +7,6 @@ products:
- Workers
- Vectorize
- Workers AI
-languages:
- - TypeScript
spotlight:
author: Hidetaka Okamoto
author_bio_link: https://www.linkedin.com/in/hideokamoto/
@@ -17,6 +15,7 @@ tags:
- AI
- Hono
- Stripe
+ - TypeScript
sidebar:
order: 2
description: Create APIs for related product searches and recommendations using Workers AI and Stripe.
diff --git a/src/content/docs/developer-spotlight/tutorials/custom-access-control-for-files.mdx b/src/content/docs/developer-spotlight/tutorials/custom-access-control-for-files.mdx
index 354c92b7e77cdc0..1de526ea1d8d27d 100644
--- a/src/content/docs/developer-spotlight/tutorials/custom-access-control-for-files.mdx
+++ b/src/content/docs/developer-spotlight/tutorials/custom-access-control-for-files.mdx
@@ -7,7 +7,7 @@ products:
- R2
- D1
- Workers
-languages:
+tags:
- TypeScript
- SQL
spotlight:
diff --git a/src/content/docs/developer-spotlight/tutorials/fullstack-authentication-with-next-js-and-cloudflare-d1.mdx b/src/content/docs/developer-spotlight/tutorials/fullstack-authentication-with-next-js-and-cloudflare-d1.mdx
index 41ec6d6c86dc453..1a6ee08c50ea302 100644
--- a/src/content/docs/developer-spotlight/tutorials/fullstack-authentication-with-next-js-and-cloudflare-d1.mdx
+++ b/src/content/docs/developer-spotlight/tutorials/fullstack-authentication-with-next-js-and-cloudflare-d1.mdx
@@ -6,7 +6,7 @@ title: Setup Fullstack Authentication with Next.js, Auth.js, and Cloudflare D1
products:
- Workers
- D1
-languages:
+tags:
- TypeScript
spotlight:
author: Mackenly Jones
diff --git a/src/content/docs/developer-spotlight/tutorials/handle-form-submission-with-astro-resend.mdx b/src/content/docs/developer-spotlight/tutorials/handle-form-submission-with-astro-resend.mdx
index cbc82b20a4dde82..09edb95a0302e40 100644
--- a/src/content/docs/developer-spotlight/tutorials/handle-form-submission-with-astro-resend.mdx
+++ b/src/content/docs/developer-spotlight/tutorials/handle-form-submission-with-astro-resend.mdx
@@ -8,7 +8,6 @@ products:
tags:
- Forms
- Astro
-languages:
- TypeScript
spotlight:
author: Cody Walsh
diff --git a/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app/index.mdx b/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app/index.mdx
index e33ebe391ef0f0b..ae8e1ae5382fb7b 100644
--- a/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app/index.mdx
+++ b/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app/index.mdx
@@ -3,9 +3,7 @@ updated: 2024-09-24
difficulty: Intermediate
pcx_content_type: tutorial
title: Build a seat booking app with SQLite in Durable Objects
-products:
- - Durable Objects
-languages:
+tags:
- TypeScript
- SQL
---
diff --git a/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale/index.mdx b/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale/index.mdx
index 4ed59a28b729a09..1c551b8bf2812cd 100644
--- a/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale/index.mdx
+++ b/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale/index.mdx
@@ -7,7 +7,6 @@ products:
- Workers
tags:
- PostgreSQL
-languages:
- TypeScript
- SQL
---
diff --git a/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx b/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx
index bafb4cfbc16eba6..d9e9e995baf3a41 100644
--- a/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx
+++ b/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx
@@ -1,7 +1,7 @@
---
title: GraphQL Analytics
pcx_content_type: tutorial
-languages:
+tags:
- GraphQL
sidebar:
order: 1
diff --git a/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx b/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx
index 922fa517bdc71b0..401a47ad5afa6d9 100644
--- a/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx
+++ b/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx
@@ -2,7 +2,7 @@
title: GraphQL Analytics
pcx_content_type: tutorial
updated: 2023-01-04
-languages:
+tags:
- GraphQL
sidebar:
order: 2
diff --git a/src/content/docs/pages/migrations/migrating-from-netlify/index.mdx b/src/content/docs/pages/migrations/migrating-from-netlify/index.mdx
index d0c1d63f392441c..0843e8383f3cb2a 100644
--- a/src/content/docs/pages/migrations/migrating-from-netlify/index.mdx
+++ b/src/content/docs/pages/migrations/migrating-from-netlify/index.mdx
@@ -3,7 +3,7 @@ updated: 2022-07-26
difficulty: Beginner
pcx_content_type: tutorial
title: Migrating from Netlify to Pages
-languages:
+tags:
- JavaScript
sidebar:
hidden: true
diff --git a/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx b/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx
index 2fd4e773402c52f..0922308aa328d08 100644
--- a/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx
+++ b/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx
@@ -3,7 +3,7 @@ updated: 2021-07-27
difficulty: Beginner
pcx_content_type: tutorial
title: Migrating a Jekyll-based site from GitHub Pages
-languages:
+tags:
- Ruby
sidebar:
hidden: true
diff --git a/src/content/docs/pages/tutorials/add-a-react-form-with-formspree/index.mdx b/src/content/docs/pages/tutorials/add-a-react-form-with-formspree/index.mdx
index f6cc47097865dd1..3d7c62233b273df 100644
--- a/src/content/docs/pages/tutorials/add-a-react-form-with-formspree/index.mdx
+++ b/src/content/docs/pages/tutorials/add-a-react-form-with-formspree/index.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Add a React form with Formspree
tags:
- Forms
-languages:
- JavaScript
---
diff --git a/src/content/docs/pages/tutorials/build-a-blog-using-nuxt-and-sanity/index.mdx b/src/content/docs/pages/tutorials/build-a-blog-using-nuxt-and-sanity/index.mdx
index 7b86de57b17e82b..e298482914b7caf 100644
--- a/src/content/docs/pages/tutorials/build-a-blog-using-nuxt-and-sanity/index.mdx
+++ b/src/content/docs/pages/tutorials/build-a-blog-using-nuxt-and-sanity/index.mdx
@@ -6,7 +6,6 @@ title: Build a blog using Nuxt.js and Sanity.io on Cloudflare Pages
tags:
- Nuxt
- Vue
-languages:
- JavaScript
description: Build a blog application using Nuxt.js and Sanity.io and deploy it on Cloudflare Pages.
---
diff --git a/src/content/docs/pages/tutorials/build-an-api-with-pages-functions/index.mdx b/src/content/docs/pages/tutorials/build-an-api-with-pages-functions/index.mdx
index 80b8f386ce0339f..6b7c965cbca82e8 100644
--- a/src/content/docs/pages/tutorials/build-an-api-with-pages-functions/index.mdx
+++ b/src/content/docs/pages/tutorials/build-an-api-with-pages-functions/index.mdx
@@ -3,7 +3,7 @@ updated: 2024-10-01
pcx_content_type: tutorial
difficulty: Intermediate
title: Build an API for your front end using Pages Functions
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/pages/tutorials/forms/index.mdx b/src/content/docs/pages/tutorials/forms/index.mdx
index 354e40e2fb85414..7d912d9fb30d095 100644
--- a/src/content/docs/pages/tutorials/forms/index.mdx
+++ b/src/content/docs/pages/tutorials/forms/index.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Create a HTML form
tags:
- Forms
-languages:
- JavaScript
---
diff --git a/src/content/docs/pages/tutorials/localize-a-website/index.mdx b/src/content/docs/pages/tutorials/localize-a-website/index.mdx
index d1bca547576dac8..8cb63a26da5079a 100644
--- a/src/content/docs/pages/tutorials/localize-a-website/index.mdx
+++ b/src/content/docs/pages/tutorials/localize-a-website/index.mdx
@@ -3,7 +3,7 @@ updated: 2024-05-06
difficulty: Intermediate
pcx_content_type: tutorial
title: Localize a website with HTMLRewriter
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages/index.mdx b/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages/index.mdx
index 9365a2f7377b79b..45ded7747cc26b0 100644
--- a/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages/index.mdx
+++ b/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages/index.mdx
@@ -7,7 +7,6 @@ products:
- R2
tags:
- Hono
-languages:
- JavaScript
---
diff --git a/src/content/docs/pipelines/tutorials/query-data-with-motherduck/index.mdx b/src/content/docs/pipelines/tutorials/query-data-with-motherduck/index.mdx
index e1e48580633fdad..dfc63aa9f9b7a8f 100644
--- a/src/content/docs/pipelines/tutorials/query-data-with-motherduck/index.mdx
+++ b/src/content/docs/pipelines/tutorials/query-data-with-motherduck/index.mdx
@@ -9,7 +9,6 @@ products:
- Workers
tags:
- MotherDuck
-languages:
- SQL
---
diff --git a/src/content/docs/pipelines/tutorials/send-data-from-client/index.mdx b/src/content/docs/pipelines/tutorials/send-data-from-client/index.mdx
index 4acb3db94ba19ed..f91d42f1a0ddeb0 100644
--- a/src/content/docs/pipelines/tutorials/send-data-from-client/index.mdx
+++ b/src/content/docs/pipelines/tutorials/send-data-from-client/index.mdx
@@ -9,7 +9,6 @@ products:
- Workers
tags:
- MotherDuck
-languages:
- SQL
---
diff --git a/src/content/docs/pulumi/tutorial/add-site.mdx b/src/content/docs/pulumi/tutorial/add-site.mdx
index 88fed900d0f4081..f9a18f5126d000e 100644
--- a/src/content/docs/pulumi/tutorial/add-site.mdx
+++ b/src/content/docs/pulumi/tutorial/add-site.mdx
@@ -1,7 +1,7 @@
---
title: Add a site
pcx_content_type: tutorial
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/pulumi/tutorial/hello-world.mdx b/src/content/docs/pulumi/tutorial/hello-world.mdx
index 8cac382bc0c20e8..2c6e70551cda4ad 100644
--- a/src/content/docs/pulumi/tutorial/hello-world.mdx
+++ b/src/content/docs/pulumi/tutorial/hello-world.mdx
@@ -5,7 +5,7 @@ products:
- Workers
updated: 2024-09-13
difficulty: Beginner
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/queues/tutorials/handle-rate-limits/index.mdx b/src/content/docs/queues/tutorials/handle-rate-limits/index.mdx
index 48ad806108c9e3d..19a3750a39def44 100644
--- a/src/content/docs/queues/tutorials/handle-rate-limits/index.mdx
+++ b/src/content/docs/queues/tutorials/handle-rate-limits/index.mdx
@@ -7,7 +7,7 @@ pcx_content_type: tutorial
products:
- Workers
- Queues
-languages:
+tags:
- TypeScript
sidebar:
order: 1002
diff --git a/src/content/docs/queues/tutorials/web-crawler-with-browser-rendering/index.mdx b/src/content/docs/queues/tutorials/web-crawler-with-browser-rendering/index.mdx
index 450464b6e47d858..4ee14427edceb4d 100644
--- a/src/content/docs/queues/tutorials/web-crawler-with-browser-rendering/index.mdx
+++ b/src/content/docs/queues/tutorials/web-crawler-with-browser-rendering/index.mdx
@@ -8,7 +8,7 @@ products:
- Workers
- Browser Rendering
- KV
-languages:
+tags:
- TypeScript
sidebar:
order: 1002
diff --git a/src/content/docs/r2/tutorials/summarize-pdf.mdx b/src/content/docs/r2/tutorials/summarize-pdf.mdx
index db29a1fe540efca..349177f75d1f3d4 100644
--- a/src/content/docs/r2/tutorials/summarize-pdf.mdx
+++ b/src/content/docs/r2/tutorials/summarize-pdf.mdx
@@ -7,7 +7,7 @@ products:
- Workers AI
difficulty: Intermediate
updated: 2024-10-11
-languages:
+tags:
- TypeScript
---
diff --git a/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx b/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx
index 7a1f5065740f0c5..06e76a329ea3d51 100644
--- a/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx
+++ b/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx
@@ -6,7 +6,7 @@ products:
- Workers
difficulty: Beginner
updated: 2024-04-02
-languages:
+tags:
- TypeScript
---
diff --git a/src/content/docs/style-guide/components/resources-by-selector.mdx b/src/content/docs/style-guide/components/resources-by-selector.mdx
index b3f2a6738dc8578..6172e370d91f554 100644
--- a/src/content/docs/style-guide/components/resources-by-selector.mdx
+++ b/src/content/docs/style-guide/components/resources-by-selector.mdx
@@ -16,7 +16,7 @@ import { ResourcesBySelector } from "~/components";
```
@@ -28,7 +28,7 @@ import { ResourcesBySelector } from "~/components";
- `filterables`
- An array of frontmatter properties to show in the frontend filter dropdown. For example, `filterables={["languages", "tags"]}` will allow users to filter based on each pages `languages` and `tags` frontmatter.
+ An array of frontmatter properties to show in the frontend filter dropdown. For example, `filterables={["tags"]}` will allow users to filter based on each pages' `tags` frontmatter.
- `types`
diff --git a/src/content/docs/turnstile/reference/workers-templates/price-scraping.mdx b/src/content/docs/turnstile/reference/workers-templates/price-scraping.mdx
index 210aa4a7a603aa7..cd22123149ca2b4 100644
--- a/src/content/docs/turnstile/reference/workers-templates/price-scraping.mdx
+++ b/src/content/docs/turnstile/reference/workers-templates/price-scraping.mdx
@@ -3,7 +3,7 @@ type: example
summary: You can use the templates below for a demo application in Workers where
product details are shown, but pricing information is not revealed until the
Turnstile widget is solved.
-languages:
+tags:
- JavaScript
preview:
- true
diff --git a/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx b/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx
index f368306e2446205..44e3399231b1cf7 100644
--- a/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx
+++ b/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx
@@ -3,10 +3,9 @@ title: Conditionally enforce Turnstile
pcx_content_type: tutorial
updated: 2025-04-01
difficulty: Intermediate
-languages:
- - TypeScript
tags:
- Node.js
+ - TypeScript
sidebar:
order: 6
---
diff --git a/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx b/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx
index f820cd123b1b378..9390d777918b9f8 100644
--- a/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx
+++ b/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx
@@ -3,10 +3,9 @@ title: Exclude Turnstile from E2E tests
pcx_content_type: tutorial
updated: 2025-01-24
difficulty: Intermediate
-languages:
- - TypeScript
tags:
- Node.js
+ - TypeScript
sidebar:
order: 6
---
diff --git a/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx b/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx
index 81468371ba198b0..665da7edf490ab2 100644
--- a/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx
+++ b/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx
@@ -3,9 +3,8 @@ title: Implement Turnstile using implicit and explicit rendering
pcx_content_type: tutorial
updated: 2024-09-16
difficulty: Beginner
-languages:
- - JavaScript
tags:
+ - JavaScript
- Node.js
sidebar:
order: 4
diff --git a/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx b/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx
index d38b698f0f43a3c..d7c629935619a2f 100644
--- a/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx
+++ b/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx
@@ -6,7 +6,7 @@ difficulty: Beginner
products:
- Web Application Firewall
- Bot Management
-languages:
+tags:
- JavaScript
sidebar:
order: 3
diff --git a/src/content/docs/turnstile/tutorials/login-pages.mdx b/src/content/docs/turnstile/tutorials/login-pages.mdx
index 48a0c6c69774b50..cfcac5b9ad5ef1b 100644
--- a/src/content/docs/turnstile/tutorials/login-pages.mdx
+++ b/src/content/docs/turnstile/tutorials/login-pages.mdx
@@ -3,9 +3,8 @@ title: Protect your forms
pcx_content_type: tutorial
updated: 2025-05-30
difficulty: Beginner
-languages:
- - JavaScript
tags:
+ - JavaScript
- Node.js
sidebar:
order: 2
diff --git a/src/content/docs/turnstile/tutorials/protecting-your-payment-form-from-attackers-bots-using-turnstile.mdx b/src/content/docs/turnstile/tutorials/protecting-your-payment-form-from-attackers-bots-using-turnstile.mdx
index 0061c0567c3cd38..ebe61d3efea9eea 100644
--- a/src/content/docs/turnstile/tutorials/protecting-your-payment-form-from-attackers-bots-using-turnstile.mdx
+++ b/src/content/docs/turnstile/tutorials/protecting-your-payment-form-from-attackers-bots-using-turnstile.mdx
@@ -3,9 +3,8 @@ title: Protect payment forms from malicious bots using Turnstile
pcx_content_type: tutorial
updated: 2024-12-17
difficulty: Beginner
-languages:
- - JavaScript
tags:
+ - JavaScript
- Node.js
- Hono
- Stripe
diff --git a/src/content/docs/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai.mdx b/src/content/docs/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai.mdx
index bf3592857fad199..543a1f7c84dcd61 100644
--- a/src/content/docs/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai.mdx
@@ -10,7 +10,6 @@ products:
tags:
- AI
- Hono
-languages:
- JavaScript
sidebar:
order: 2
diff --git a/src/content/docs/workers-ai/guides/tutorials/build-a-voice-notes-app-with-auto-transcription.mdx b/src/content/docs/workers-ai/guides/tutorials/build-a-voice-notes-app-with-auto-transcription.mdx
index d4c5ab857a991cb..93f315ad17d65d6 100644
--- a/src/content/docs/workers-ai/guides/tutorials/build-a-voice-notes-app-with-auto-transcription.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/build-a-voice-notes-app-with-auto-transcription.mdx
@@ -12,7 +12,6 @@ products:
tags:
- AI
- Nuxt
-languages:
- TypeScript
description: Explore how you can use AI models to transcribe audio recordings and post process the transcriptions.
spotlight:
diff --git a/src/content/docs/workers-ai/guides/tutorials/build-ai-interview-practice-tool.mdx b/src/content/docs/workers-ai/guides/tutorials/build-ai-interview-practice-tool.mdx
index 7da7c2eb7a73d99..243fcad525836fe 100644
--- a/src/content/docs/workers-ai/guides/tutorials/build-ai-interview-practice-tool.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/build-ai-interview-practice-tool.mdx
@@ -12,9 +12,8 @@ spotlight:
author: Vasyl
author_bio_link: https://github.com/berezovyy
author_bio_source: GitHub
-languages:
- - TypeScript
tags:
+ - TypeScript
- AI
description: Learn how to build an AI-powered interview practice tool that provides real-time feedback to help improve interview skills.
---
diff --git a/src/content/docs/workers-ai/guides/tutorials/explore-code-generation-using-deepseek-coder-models.mdx b/src/content/docs/workers-ai/guides/tutorials/explore-code-generation-using-deepseek-coder-models.mdx
index afaa5c32c7558f2..21fa1e10aed523f 100644
--- a/src/content/docs/workers-ai/guides/tutorials/explore-code-generation-using-deepseek-coder-models.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/explore-code-generation-using-deepseek-coder-models.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Explore Code Generation Using DeepSeek Coder Models
tags:
- AI
-languages:
- Python
sidebar:
order: 4
diff --git a/src/content/docs/workers-ai/guides/tutorials/explore-workers-ai-models-using-a-jupyter-notebook.mdx b/src/content/docs/workers-ai/guides/tutorials/explore-workers-ai-models-using-a-jupyter-notebook.mdx
index 5a4cc8c37cf67c6..5862275d9161c9b 100644
--- a/src/content/docs/workers-ai/guides/tutorials/explore-workers-ai-models-using-a-jupyter-notebook.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/explore-workers-ai-models-using-a-jupyter-notebook.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Explore Workers AI Models Using a Jupyter Notebook
tags:
- AI
-languages:
- Python
head: []
description: This Jupyter notebook explores various models (including Whisper, Distilled BERT, LLaVA, and Meta Llama 3) using Python and the
diff --git a/src/content/docs/workers-ai/guides/tutorials/how-to-choose-the-right-text-generation-model.mdx b/src/content/docs/workers-ai/guides/tutorials/how-to-choose-the-right-text-generation-model.mdx
index 8a561d8a3857c06..e020555447d250c 100644
--- a/src/content/docs/workers-ai/guides/tutorials/how-to-choose-the-right-text-generation-model.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/how-to-choose-the-right-text-generation-model.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Choose the Right Text Generation Model
tags:
- AI
-languages:
- Python
sidebar:
order: 1
diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx
index c288d9b5a6bac28..bb4df669643501f 100644
--- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx
@@ -9,8 +9,8 @@ products:
- Workers
tags:
- AI
-languages:
- - Typescript
+ - TypeScript
+
prev: true
next: true
---
diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx
index 8b9bd67d368a81b..b61b577c32ef866 100644
--- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx
@@ -10,8 +10,8 @@ products:
- Workers
tags:
- AI
-languages:
- - Typescript
+ - TypeScript
+
next: true
---
diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx
index 7ae6f38fc234e10..7221f74e38e3d4f 100644
--- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx
@@ -9,8 +9,7 @@ products:
- Workers
tags:
- AI
-languages:
- - Typescript
+ - TypeScript
prev: true
---
diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/index.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/index.mdx
index ddec8b04295c160..fbf12c8bf01eefd 100644
--- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/index.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/index.mdx
@@ -7,8 +7,8 @@ products:
- Workers
tags:
- AI
-languages:
- - Typescript
+ - TypeScript
+
description: Learn how to build an image generator using Workers AI.
---
diff --git a/src/content/docs/workers-ai/guides/tutorials/using-bigquery-with-workers-ai.mdx b/src/content/docs/workers-ai/guides/tutorials/using-bigquery-with-workers-ai.mdx
index a5495ff40af8d05..d67c150af53b1ba 100644
--- a/src/content/docs/workers-ai/guides/tutorials/using-bigquery-with-workers-ai.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/using-bigquery-with-workers-ai.mdx
@@ -8,7 +8,6 @@ products:
- Workers AI
tags:
- AI
-languages:
- JavaScript
sidebar:
order: 2
diff --git a/src/content/docs/workers/examples/103-early-hints.mdx b/src/content/docs/workers/examples/103-early-hints.mdx
index 7f9a0a9441721aa..471ed7302b38c9c 100644
--- a/src/content/docs/workers/examples/103-early-hints.mdx
+++ b/src/content/docs/workers/examples/103-early-hints.mdx
@@ -4,7 +4,6 @@ summary: Allow a client to request static assets while waiting for the HTML resp
tags:
- Middleware
- Headers
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/ab-testing.mdx b/src/content/docs/workers/examples/ab-testing.mdx
index 1a4807ba6b7f7dc..154011e16604e63 100644
--- a/src/content/docs/workers/examples/ab-testing.mdx
+++ b/src/content/docs/workers/examples/ab-testing.mdx
@@ -3,7 +3,7 @@ type: example
summary: Set up an A/B test by controlling what response is served based on
cookies. This version supports passing the request through to test and control
on the origin, bypassing random assignment.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/accessing-the-cloudflare-object.mdx b/src/content/docs/workers/examples/accessing-the-cloudflare-object.mdx
index 2ba610192667841..6008379b872ebb2 100644
--- a/src/content/docs/workers/examples/accessing-the-cloudflare-object.mdx
+++ b/src/content/docs/workers/examples/accessing-the-cloudflare-object.mdx
@@ -2,7 +2,7 @@
type: example
summary: Access custom Cloudflare properties and control how Cloudflare features
are applied to every request.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/aggregate-requests.mdx b/src/content/docs/workers/examples/aggregate-requests.mdx
index 6a71d850b4894bf..428955965db5dea 100644
--- a/src/content/docs/workers/examples/aggregate-requests.mdx
+++ b/src/content/docs/workers/examples/aggregate-requests.mdx
@@ -2,7 +2,7 @@
type: example
summary: Send two GET request to two urls and aggregates the responses into one
response.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/alter-headers.mdx b/src/content/docs/workers/examples/alter-headers.mdx
index 6612a4584165308..0fd99a28d27c1d9 100644
--- a/src/content/docs/workers/examples/alter-headers.mdx
+++ b/src/content/docs/workers/examples/alter-headers.mdx
@@ -5,7 +5,6 @@ summary: Example of how to add, change, or delete headers sent in a request or
tags:
- Headers
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/auth-with-headers.mdx b/src/content/docs/workers/examples/auth-with-headers.mdx
index f028f87a0822cd3..ae47f78a398f165 100644
--- a/src/content/docs/workers/examples/auth-with-headers.mdx
+++ b/src/content/docs/workers/examples/auth-with-headers.mdx
@@ -5,7 +5,6 @@ summary: Allow or deny a request based on a known pre-shared key in a header.
tags:
- Authentication
- WebCrypto
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/basic-auth.mdx b/src/content/docs/workers/examples/basic-auth.mdx
index 74ec57b26f8a871..1593f440bb4820f 100644
--- a/src/content/docs/workers/examples/basic-auth.mdx
+++ b/src/content/docs/workers/examples/basic-auth.mdx
@@ -4,7 +4,6 @@ summary: Shows how to restrict access using the HTTP Basic schema.
tags:
- Security
- Authentication
-languages:
- JavaScript
- TypeScript
- Rust
diff --git a/src/content/docs/workers/examples/block-on-tls.mdx b/src/content/docs/workers/examples/block-on-tls.mdx
index b564e92c3c8e406..b340f8fe6cae7b2 100644
--- a/src/content/docs/workers/examples/block-on-tls.mdx
+++ b/src/content/docs/workers/examples/block-on-tls.mdx
@@ -4,7 +4,6 @@ summary: Inspects the incoming request's TLS version and blocks if under TLSv1.2
tags:
- Security
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/bulk-origin-proxy.mdx b/src/content/docs/workers/examples/bulk-origin-proxy.mdx
index d8b03e760233245..0d3f83681a14713 100644
--- a/src/content/docs/workers/examples/bulk-origin-proxy.mdx
+++ b/src/content/docs/workers/examples/bulk-origin-proxy.mdx
@@ -3,7 +3,6 @@ type: example
summary: Resolve requests to your domain to a set of proxy third-party origin URLs.
tags:
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/bulk-redirects.mdx b/src/content/docs/workers/examples/bulk-redirects.mdx
index 8f5e60ed41ce114..23932b9a139f7e9 100644
--- a/src/content/docs/workers/examples/bulk-redirects.mdx
+++ b/src/content/docs/workers/examples/bulk-redirects.mdx
@@ -5,7 +5,6 @@ summary: Redirect requests to certain URLs based on a mapped object to the
tags:
- Middleware
- Redirects
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/cache-api.mdx b/src/content/docs/workers/examples/cache-api.mdx
index 7629a02e36483dc..d86dc9cd892eb19 100644
--- a/src/content/docs/workers/examples/cache-api.mdx
+++ b/src/content/docs/workers/examples/cache-api.mdx
@@ -4,7 +4,6 @@ summary: Use the Cache API to store responses in Cloudflare's cache.
tags:
- Middleware
- Caching
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/cache-post-request.mdx b/src/content/docs/workers/examples/cache-post-request.mdx
index b10950487ed5d37..4167ef43c88dd98 100644
--- a/src/content/docs/workers/examples/cache-post-request.mdx
+++ b/src/content/docs/workers/examples/cache-post-request.mdx
@@ -4,7 +4,6 @@ summary: Cache POST requests using the Cache API.
tags:
- Middleware
- Caching
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/cache-tags.mdx b/src/content/docs/workers/examples/cache-tags.mdx
index 833766df11b7297..a582da8f22c1ad7 100644
--- a/src/content/docs/workers/examples/cache-tags.mdx
+++ b/src/content/docs/workers/examples/cache-tags.mdx
@@ -3,7 +3,6 @@ type: example
summary: Send Additional Cache Tags using Workers
tags:
- Caching
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/cache-using-fetch.mdx b/src/content/docs/workers/examples/cache-using-fetch.mdx
index b287e0670b6f442..b7540312ea7b761 100644
--- a/src/content/docs/workers/examples/cache-using-fetch.mdx
+++ b/src/content/docs/workers/examples/cache-using-fetch.mdx
@@ -5,7 +5,6 @@ summary: Determine how to cache a resource by setting TTLs, custom cache keys,
tags:
- Caching
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/conditional-response.mdx b/src/content/docs/workers/examples/conditional-response.mdx
index bc53cd2bc5f837e..e24516cd0f8724e 100644
--- a/src/content/docs/workers/examples/conditional-response.mdx
+++ b/src/content/docs/workers/examples/conditional-response.mdx
@@ -4,7 +4,6 @@ summary: Return a response based on the incoming request's URL, HTTP method,
User Agent, IP address, ASN or device type.
tags:
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/cors-header-proxy.mdx b/src/content/docs/workers/examples/cors-header-proxy.mdx
index ab87ea853e1151e..823b4d533b6623e 100644
--- a/src/content/docs/workers/examples/cors-header-proxy.mdx
+++ b/src/content/docs/workers/examples/cors-header-proxy.mdx
@@ -4,7 +4,6 @@ summary: Add the necessary CORS headers to a third party API response.
tags:
- Security
- Headers
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/country-code-redirect.mdx b/src/content/docs/workers/examples/country-code-redirect.mdx
index a132257f03b4ab6..15cc1d24129b970 100644
--- a/src/content/docs/workers/examples/country-code-redirect.mdx
+++ b/src/content/docs/workers/examples/country-code-redirect.mdx
@@ -4,7 +4,6 @@ summary: Redirect a response based on the country code in the header of a visito
tags:
- Redirects
- Geolocation
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/cron-trigger.mdx b/src/content/docs/workers/examples/cron-trigger.mdx
index d0134b83d7e267e..41cd0e232df0d8b 100644
--- a/src/content/docs/workers/examples/cron-trigger.mdx
+++ b/src/content/docs/workers/examples/cron-trigger.mdx
@@ -3,7 +3,6 @@ type: example
summary: Set a Cron Trigger for your Worker.
tags:
- Middleware
-languages:
- JavaScript
- TypeScript
pcx_content_type: example
diff --git a/src/content/docs/workers/examples/data-loss-prevention.mdx b/src/content/docs/workers/examples/data-loss-prevention.mdx
index d3b36cd8797e520..457ad2af4d7929f 100644
--- a/src/content/docs/workers/examples/data-loss-prevention.mdx
+++ b/src/content/docs/workers/examples/data-loss-prevention.mdx
@@ -4,7 +4,6 @@ summary: Protect sensitive data to prevent data loss, and send alerts to a
webhooks server in the event of a data breach.
tags:
- Security
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/debugging-logs.mdx b/src/content/docs/workers/examples/debugging-logs.mdx
index d227c1ee817af07..2e10a1c28101bc0 100644
--- a/src/content/docs/workers/examples/debugging-logs.mdx
+++ b/src/content/docs/workers/examples/debugging-logs.mdx
@@ -3,7 +3,6 @@ type: example
summary: Send debugging information in an errored response to a logging service.
tags:
- Debugging
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/extract-cookie-value.mdx b/src/content/docs/workers/examples/extract-cookie-value.mdx
index 1d04e607abdb583..139ee49613b887c 100644
--- a/src/content/docs/workers/examples/extract-cookie-value.mdx
+++ b/src/content/docs/workers/examples/extract-cookie-value.mdx
@@ -4,7 +4,6 @@ summary: Given the cookie name, get the value of a cookie. You can also use
cookies for A/B testing.
tags:
- Headers
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/fetch-html.mdx b/src/content/docs/workers/examples/fetch-html.mdx
index daac9f38d31e826..fa5d2197ef84462 100644
--- a/src/content/docs/workers/examples/fetch-html.mdx
+++ b/src/content/docs/workers/examples/fetch-html.mdx
@@ -2,7 +2,7 @@
type: example
summary: Send a request to a remote server, read HTML from the response, and
serve that HTML.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/fetch-json.mdx b/src/content/docs/workers/examples/fetch-json.mdx
index fa1ad6ad633c2c6..612791bc97af4a7 100644
--- a/src/content/docs/workers/examples/fetch-json.mdx
+++ b/src/content/docs/workers/examples/fetch-json.mdx
@@ -6,7 +6,6 @@ pcx_content_type: example
title: Fetch JSON
tags:
- JSON
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/geolocation-app-weather.mdx b/src/content/docs/workers/examples/geolocation-app-weather.mdx
index 1ac16b8d2ffd018..c1d4664861f8a2a 100644
--- a/src/content/docs/workers/examples/geolocation-app-weather.mdx
+++ b/src/content/docs/workers/examples/geolocation-app-weather.mdx
@@ -3,7 +3,6 @@ type: example
summary: Fetch weather data from an API using the user's geolocation data.
tags:
- Geolocation
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/geolocation-custom-styling.mdx b/src/content/docs/workers/examples/geolocation-custom-styling.mdx
index 0f4a23df2b9117a..563f69fe7086f88 100644
--- a/src/content/docs/workers/examples/geolocation-custom-styling.mdx
+++ b/src/content/docs/workers/examples/geolocation-custom-styling.mdx
@@ -3,7 +3,6 @@ type: example
summary: Personalize website styling based on localized user time.
tags:
- Geolocation
-languages:
- JavaScript
- TypeScript
pcx_content_type: example
diff --git a/src/content/docs/workers/examples/geolocation-hello-world.mdx b/src/content/docs/workers/examples/geolocation-hello-world.mdx
index 7b74983668c5c6e..4f6f79640e45faf 100644
--- a/src/content/docs/workers/examples/geolocation-hello-world.mdx
+++ b/src/content/docs/workers/examples/geolocation-hello-world.mdx
@@ -3,7 +3,6 @@ type: example
summary: Get all geolocation data fields and display them in HTML.
tags:
- Geolocation
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/hot-link-protection.mdx b/src/content/docs/workers/examples/hot-link-protection.mdx
index 82f42918f8a020d..9f9a78d01528070 100644
--- a/src/content/docs/workers/examples/hot-link-protection.mdx
+++ b/src/content/docs/workers/examples/hot-link-protection.mdx
@@ -5,7 +5,6 @@ summary: Block other websites from linking to your content. This is useful for
tags:
- Security
- Headers
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/images-workers.mdx b/src/content/docs/workers/examples/images-workers.mdx
index b07942e21d65704..b37bde7082ccb01 100644
--- a/src/content/docs/workers/examples/images-workers.mdx
+++ b/src/content/docs/workers/examples/images-workers.mdx
@@ -2,7 +2,7 @@
type: example
summary: Set up custom domain for Images using a Worker or serve images using a
prefix path and Cloudflare registered domain.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/index.mdx b/src/content/docs/workers/examples/index.mdx
index e4a49891fe0b762..1bb9c9933bba0ac 100644
--- a/src/content/docs/workers/examples/index.mdx
+++ b/src/content/docs/workers/examples/index.mdx
@@ -11,4 +11,4 @@ import { GlossaryTooltip, ListExamples } from "~/components";
Explore the following examples for Workers.
-
+
diff --git a/src/content/docs/workers/examples/logging-headers.mdx b/src/content/docs/workers/examples/logging-headers.mdx
index 73cdb899d15aa8e..2c7cb0c03579c10 100644
--- a/src/content/docs/workers/examples/logging-headers.mdx
+++ b/src/content/docs/workers/examples/logging-headers.mdx
@@ -4,7 +4,6 @@ summary: Examine the contents of a Headers object by logging to console with a M
tags:
- Debugging
- Headers
-languages:
- JavaScript
- Rust
- TypeScript
diff --git a/src/content/docs/workers/examples/modify-request-property.mdx b/src/content/docs/workers/examples/modify-request-property.mdx
index 6a22a56106c34a5..a1abfdeb89aa312 100644
--- a/src/content/docs/workers/examples/modify-request-property.mdx
+++ b/src/content/docs/workers/examples/modify-request-property.mdx
@@ -5,7 +5,6 @@ summary: Create a modified request with edited properties based off of an
tags:
- Middleware
- Headers
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/modify-response.mdx b/src/content/docs/workers/examples/modify-response.mdx
index db51130eaeea488..774fefe68e09ac9 100644
--- a/src/content/docs/workers/examples/modify-response.mdx
+++ b/src/content/docs/workers/examples/modify-response.mdx
@@ -5,7 +5,6 @@ summary: Fetch and modify response properties which are immutable by creating a
tags:
- Middleware
- Headers
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/multiple-cron-triggers.mdx b/src/content/docs/workers/examples/multiple-cron-triggers.mdx
index bcef5d38a0aeb42..970694d13146a61 100644
--- a/src/content/docs/workers/examples/multiple-cron-triggers.mdx
+++ b/src/content/docs/workers/examples/multiple-cron-triggers.mdx
@@ -3,7 +3,6 @@ type: example
summary: Set multiple Cron Triggers on three different schedules.
tags:
- Middleware
-languages:
- JavaScript
- TypeScript
pcx_content_type: example
diff --git a/src/content/docs/workers/examples/openai-sdk-streaming.mdx b/src/content/docs/workers/examples/openai-sdk-streaming.mdx
index a84650debf1fe1e..da124c8808ab1d2 100644
--- a/src/content/docs/workers/examples/openai-sdk-streaming.mdx
+++ b/src/content/docs/workers/examples/openai-sdk-streaming.mdx
@@ -3,7 +3,6 @@ type: example
summary: Use the OpenAI v4 SDK to stream responses from OpenAI.
tags:
- AI
-languages:
- JavaScript
- TypeScript
pcx_content_type: example
diff --git a/src/content/docs/workers/examples/post-json.mdx b/src/content/docs/workers/examples/post-json.mdx
index 021b7cdeee02666..9d6042018f1bf90 100644
--- a/src/content/docs/workers/examples/post-json.mdx
+++ b/src/content/docs/workers/examples/post-json.mdx
@@ -3,7 +3,6 @@ type: example
summary: Send a POST request with JSON data. Use to share data with external servers.
tags:
- JSON
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/protect-against-timing-attacks.mdx b/src/content/docs/workers/examples/protect-against-timing-attacks.mdx
index 86e454ee78c0add..6f2733606472161 100644
--- a/src/content/docs/workers/examples/protect-against-timing-attacks.mdx
+++ b/src/content/docs/workers/examples/protect-against-timing-attacks.mdx
@@ -5,7 +5,6 @@ summary: Protect against timing attacks by safely comparing values using
tags:
- Security
- WebCrypto
-languages:
- TypeScript
- Python
pcx_content_type: example
diff --git a/src/content/docs/workers/examples/read-post.mdx b/src/content/docs/workers/examples/read-post.mdx
index 7bc34b46c96962c..f29db417055bedd 100644
--- a/src/content/docs/workers/examples/read-post.mdx
+++ b/src/content/docs/workers/examples/read-post.mdx
@@ -4,7 +4,6 @@ summary: Serve an HTML form, then read POST requests. Use also to read JSON or
POST data from an incoming request.
tags:
- JSON
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/redirect.mdx b/src/content/docs/workers/examples/redirect.mdx
index d4fa9d349a803e3..459edde3ef0833d 100644
--- a/src/content/docs/workers/examples/redirect.mdx
+++ b/src/content/docs/workers/examples/redirect.mdx
@@ -5,7 +5,6 @@ summary: Redirect requests from one URL to another or from one set of URLs to
tags:
- Middleware
- Redirects
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/respond-with-another-site.mdx b/src/content/docs/workers/examples/respond-with-another-site.mdx
index de8df3965a4f2fb..7ae2faa863d7d23 100644
--- a/src/content/docs/workers/examples/respond-with-another-site.mdx
+++ b/src/content/docs/workers/examples/respond-with-another-site.mdx
@@ -5,7 +5,6 @@ summary: Respond to the Worker request with the response from another website
demo: https://respond-with-another-site.workers-sites-examples.workers.dev
tags:
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/return-html.mdx b/src/content/docs/workers/examples/return-html.mdx
index c0f3a832cd673fa..3fe0640632f2775 100644
--- a/src/content/docs/workers/examples/return-html.mdx
+++ b/src/content/docs/workers/examples/return-html.mdx
@@ -2,7 +2,7 @@
type: example
summary: Deliver an HTML page from an HTML string directly inside the Worker script.
demo: https://returning-html.workers-sites-examples.workers.dev
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/return-json.mdx b/src/content/docs/workers/examples/return-json.mdx
index 4d2a744d8024920..906024f982b0acf 100644
--- a/src/content/docs/workers/examples/return-json.mdx
+++ b/src/content/docs/workers/examples/return-json.mdx
@@ -5,7 +5,6 @@ summary: Return JSON directly from a Worker script, useful for building APIs and
demo: https://returning-json.workers-sites-examples.workers.dev
tags:
- JSON
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/rewrite-links.mdx b/src/content/docs/workers/examples/rewrite-links.mdx
index f07b749c5310f4d..cdcf89ab7089cfb 100644
--- a/src/content/docs/workers/examples/rewrite-links.mdx
+++ b/src/content/docs/workers/examples/rewrite-links.mdx
@@ -2,7 +2,7 @@
type: example
summary: Rewrite URL links in HTML using the HTMLRewriter. This is useful for
JAMstack websites.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/security-headers.mdx b/src/content/docs/workers/examples/security-headers.mdx
index b00f0c323785938..77e52a499959a00 100644
--- a/src/content/docs/workers/examples/security-headers.mdx
+++ b/src/content/docs/workers/examples/security-headers.mdx
@@ -6,7 +6,6 @@ summary: Set common security headers (X-XSS-Protection, X-Frame-Options,
tags:
- Security
- Middleware
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/signing-requests.mdx b/src/content/docs/workers/examples/signing-requests.mdx
index 0436bae5960aaf9..abcd2bbc5212f97 100644
--- a/src/content/docs/workers/examples/signing-requests.mdx
+++ b/src/content/docs/workers/examples/signing-requests.mdx
@@ -4,7 +4,6 @@ summary: Verify a signed request using the HMAC and SHA-256 algorithms or return
tags:
- Security
- WebCrypto
-languages:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/turnstile-html-rewriter.mdx b/src/content/docs/workers/examples/turnstile-html-rewriter.mdx
index 1874f23c35eaddb..846d443c2d79b47 100644
--- a/src/content/docs/workers/examples/turnstile-html-rewriter.mdx
+++ b/src/content/docs/workers/examples/turnstile-html-rewriter.mdx
@@ -2,7 +2,7 @@
type: example
summary: Inject [Turnstile](/turnstile/) implicitly into HTML elements using the
HTMLRewriter runtime API.
-languages:
+tags:
- JavaScript
- TypeScript
- Python
diff --git a/src/content/docs/workers/examples/websockets.mdx b/src/content/docs/workers/examples/websockets.mdx
index 0ae0cc6a1380d59..7b9f02568f4dd05 100644
--- a/src/content/docs/workers/examples/websockets.mdx
+++ b/src/content/docs/workers/examples/websockets.mdx
@@ -3,7 +3,6 @@ type: example
summary: Use the WebSockets API to communicate in real time with your Cloudflare Workers.
tags:
- WebSockets
-languages:
- JavaScript
- Rust
pcx_content_type: example
diff --git a/src/content/docs/workers/tutorials/automated-analytics-reporting/index.mdx b/src/content/docs/workers/tutorials/automated-analytics-reporting/index.mdx
index 0a61f44f859de69..14921c54ec1d97a 100644
--- a/src/content/docs/workers/tutorials/automated-analytics-reporting/index.mdx
+++ b/src/content/docs/workers/tutorials/automated-analytics-reporting/index.mdx
@@ -11,7 +11,7 @@ spotlight:
author: Aleksej Komnenovic
author_bio_link: https://www.linkedin.com/in/komnenovic/
author_bio_source: LinkedIn
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/build-a-jamstack-app/index.mdx b/src/content/docs/workers/tutorials/build-a-jamstack-app/index.mdx
index ee4e95c340a8555..22b3fc48ac4c2ed 100644
--- a/src/content/docs/workers/tutorials/build-a-jamstack-app/index.mdx
+++ b/src/content/docs/workers/tutorials/build-a-jamstack-app/index.mdx
@@ -5,7 +5,7 @@ pcx_content_type: tutorial
title: Build a todo list Jamstack application
products:
- KV
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/build-a-qr-code-generator/index.mdx b/src/content/docs/workers/tutorials/build-a-qr-code-generator/index.mdx
index d26f53084feafdb..ecf50524831de84 100644
--- a/src/content/docs/workers/tutorials/build-a-qr-code-generator/index.mdx
+++ b/src/content/docs/workers/tutorials/build-a-qr-code-generator/index.mdx
@@ -3,7 +3,7 @@ updated: 2023-06-29
difficulty: Beginner
pcx_content_type: tutorial
title: Build a QR code generator
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/build-a-slackbot/index.mdx b/src/content/docs/workers/tutorials/build-a-slackbot/index.mdx
index 5d11b31df2f89bc..9d92506650338e7 100644
--- a/src/content/docs/workers/tutorials/build-a-slackbot/index.mdx
+++ b/src/content/docs/workers/tutorials/build-a-slackbot/index.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Build a Slackbot
tags:
- Hono
-languages:
- TypeScript
---
diff --git a/src/content/docs/workers/tutorials/connect-to-turso-using-workers/index.mdx b/src/content/docs/workers/tutorials/connect-to-turso-using-workers/index.mdx
index a063a7c52c66d67..eb8bbddda5ca349 100644
--- a/src/content/docs/workers/tutorials/connect-to-turso-using-workers/index.mdx
+++ b/src/content/docs/workers/tutorials/connect-to-turso-using-workers/index.mdx
@@ -3,7 +3,7 @@ updated: 2023-04-01
difficulty: Beginner
pcx_content_type: tutorial
title: Connect to and query your Turso database using Workers
-languages:
+tags:
- TypeScript
- SQL
---
diff --git a/src/content/docs/workers/tutorials/create-finetuned-chatgpt-ai-models-with-r2/index.mdx b/src/content/docs/workers/tutorials/create-finetuned-chatgpt-ai-models-with-r2/index.mdx
index cf515174292d747..9214a432dc8245c 100644
--- a/src/content/docs/workers/tutorials/create-finetuned-chatgpt-ai-models-with-r2/index.mdx
+++ b/src/content/docs/workers/tutorials/create-finetuned-chatgpt-ai-models-with-r2/index.mdx
@@ -8,7 +8,6 @@ products:
tags:
- AI
- Hono
-languages:
- TypeScript
sidebar:
order: 1
diff --git a/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app/index.mdx b/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app/index.mdx
index 2a2255692d90c97..385a95295d7cd66 100644
--- a/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app/index.mdx
+++ b/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app/index.mdx
@@ -5,7 +5,7 @@ pcx_content_type: tutorial
title: Deploy a real-time chat application
products:
- Durable Objects
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images/index.mdx b/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images/index.mdx
index c08d53b69af9dcc..200df14895b7402 100644
--- a/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images/index.mdx
+++ b/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images/index.mdx
@@ -5,7 +5,7 @@ pcx_content_type: tutorial
title: Generate YouTube thumbnails with Workers and Cloudflare Image Resizing
products:
- Images
-languages:
+tags:
- JavaScript
- Rust
---
diff --git a/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio/index.mdx b/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio/index.mdx
index 4b4f2c84e42b3a1..34c237725f8c458 100644
--- a/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio/index.mdx
+++ b/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio/index.mdx
@@ -3,7 +3,7 @@ updated: 2023-09-28
difficulty: Beginner
pcx_content_type: tutorial
title: GitHub SMS notifications using Twilio
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable/index.mdx b/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable/index.mdx
index 3d58be15b396a79..ba83ccf1d8b1d3d 100644
--- a/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable/index.mdx
+++ b/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable/index.mdx
@@ -5,7 +5,6 @@ pcx_content_type: tutorial
title: Handle form submissions with Airtable
tags:
- Forms
-languages:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/live-cursors-with-nextjs-rpc-do/index.mdx b/src/content/docs/workers/tutorials/live-cursors-with-nextjs-rpc-do/index.mdx
index 6ff2e89285d9e57..1300e1fc9b706a5 100644
--- a/src/content/docs/workers/tutorials/live-cursors-with-nextjs-rpc-do/index.mdx
+++ b/src/content/docs/workers/tutorials/live-cursors-with-nextjs-rpc-do/index.mdx
@@ -15,7 +15,6 @@ tags:
- Next.js
- WebSockets
- RPC
-languages:
- TypeScript
---
import { Render, PackageManagers, Steps, TabItem, Tabs, Details } from "~/components";
diff --git a/src/content/docs/workers/tutorials/mysql/index.mdx b/src/content/docs/workers/tutorials/mysql/index.mdx
index 2a84235e7d1a11f..58c5db616d59d4a 100644
--- a/src/content/docs/workers/tutorials/mysql/index.mdx
+++ b/src/content/docs/workers/tutorials/mysql/index.mdx
@@ -7,7 +7,6 @@ products:
- Hyperdrive
tags:
- MySQL
-languages:
- TypeScript
- SQL
---
diff --git a/src/content/docs/workers/tutorials/openai-function-calls-workers/index.mdx b/src/content/docs/workers/tutorials/openai-function-calls-workers/index.mdx
index 66c64681e5a9392..41cc1906e82002a 100644
--- a/src/content/docs/workers/tutorials/openai-function-calls-workers/index.mdx
+++ b/src/content/docs/workers/tutorials/openai-function-calls-workers/index.mdx
@@ -3,10 +3,9 @@ updated: 2023-06-14
difficulty: Beginner
pcx_content_type: tutorial
title: OpenAI GPT function calling with JavaScript and Cloudflare Workers
-languages:
- - JavaScript
tags:
- AI
+ - JavaScript
description: Build a project that leverages OpenAI's function calling feature, available in OpenAI's latest Chat Completions API models.
---
diff --git a/src/content/docs/workers/tutorials/postgres/index.mdx b/src/content/docs/workers/tutorials/postgres/index.mdx
index 4e913a87dbe70d8..8ab154889be020c 100644
--- a/src/content/docs/workers/tutorials/postgres/index.mdx
+++ b/src/content/docs/workers/tutorials/postgres/index.mdx
@@ -7,7 +7,6 @@ products:
- Hyperdrive
tags:
- PostgreSQL
-languages:
- TypeScript
- SQL
---
diff --git a/src/content/docs/workers/tutorials/send-emails-with-postmark/index.mdx b/src/content/docs/workers/tutorials/send-emails-with-postmark/index.mdx
index 97f1c3161d6e6f0..809cef75c66cba9 100644
--- a/src/content/docs/workers/tutorials/send-emails-with-postmark/index.mdx
+++ b/src/content/docs/workers/tutorials/send-emails-with-postmark/index.mdx
@@ -3,7 +3,7 @@ updated: 2024-05-02
difficulty: Beginner
pcx_content_type: tutorial
title: Send Emails With Postmark
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/send-emails-with-resend/index.mdx b/src/content/docs/workers/tutorials/send-emails-with-resend/index.mdx
index a73f3aef5372ef5..399859b8feca4b5 100644
--- a/src/content/docs/workers/tutorials/send-emails-with-resend/index.mdx
+++ b/src/content/docs/workers/tutorials/send-emails-with-resend/index.mdx
@@ -3,7 +3,7 @@ updated: 2024-04-26
difficulty: Beginner
pcx_content_type: tutorial
title: Send Emails With Resend
-languages:
+tags:
- JavaScript
---
diff --git a/src/content/docs/workers/tutorials/upload-assets-with-r2/index.mdx b/src/content/docs/workers/tutorials/upload-assets-with-r2/index.mdx
index fb38056b8c7e858..e56cd032bd970a2 100644
--- a/src/content/docs/workers/tutorials/upload-assets-with-r2/index.mdx
+++ b/src/content/docs/workers/tutorials/upload-assets-with-r2/index.mdx
@@ -5,7 +5,7 @@ pcx_content_type: tutorial
title: Securely access and upload assets with Cloudflare R2
products:
- R2
-languages:
+tags:
- TypeScript
---
diff --git a/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers/index.mdx b/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers/index.mdx
index 7aaa7430ccc3626..f69e6fe127c75f3 100644
--- a/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers/index.mdx
+++ b/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers/index.mdx
@@ -3,7 +3,7 @@ updated: 2025-02-12
difficulty: Beginner
pcx_content_type: tutorial
title: Set up and use a Prisma Postgres database
-languages:
+tags:
- TypeScript
- SQL
- Prisma ORM
diff --git a/src/content/docs/workers/tutorials/workers-kv-from-rust/index.mdx b/src/content/docs/workers/tutorials/workers-kv-from-rust/index.mdx
index 8f1463b53a075b1..5e6c3bad24a7fec 100644
--- a/src/content/docs/workers/tutorials/workers-kv-from-rust/index.mdx
+++ b/src/content/docs/workers/tutorials/workers-kv-from-rust/index.mdx
@@ -5,7 +5,7 @@ pcx_content_type: tutorial
title: Use Workers KV directly from Rust
products:
- KV
-languages:
+tags:
- Rust
---
diff --git a/src/content/docs/workflows/examples/backup-d1.mdx b/src/content/docs/workflows/examples/backup-d1.mdx
index ea49de9fb567dae..342cda35011b4ad 100644
--- a/src/content/docs/workflows/examples/backup-d1.mdx
+++ b/src/content/docs/workflows/examples/backup-d1.mdx
@@ -5,7 +5,7 @@ products:
- Workflows
- D1
- R2
-languages:
+tags:
- Typescript
pcx_content_type: example
title: Export and save D1 database
diff --git a/src/content/docs/workflows/examples/wait-for-event.mdx b/src/content/docs/workflows/examples/wait-for-event.mdx
index 1dc78452294b22f..8c8e508c87a710a 100644
--- a/src/content/docs/workflows/examples/wait-for-event.mdx
+++ b/src/content/docs/workflows/examples/wait-for-event.mdx
@@ -3,7 +3,7 @@ type: example
summary: Implement a Cloudflare Workflow that processes user-uploaded images, awaits human approval, and performs AI-based image tagging upon approval.
products:
- Workflows
-languages:
+tags:
- Typescript
pcx_content_type: example
title: Human-in-the-Loop Image Tagging with waitForEvent
diff --git a/src/schemas/base.ts b/src/schemas/base.ts
index d432095725bf817..a208d167d9bff11 100644
--- a/src/schemas/base.ts
+++ b/src/schemas/base.ts
@@ -89,7 +89,6 @@ export const baseSchema = ({ image }: SchemaContext) =>
.describe(
"The names of related products, which show on some grids for Examples, [Tutorials](/style-guide/documentation-content-strategy/content-types/tutorial/), and [Reference Architectures](/style-guide/documentation-content-strategy/content-types/reference-architecture/)",
),
- languages: z.string().array().optional(),
summary: z.string().optional(),
goal: z.string().array().optional(),
operation: z.string().array().optional(),
diff --git a/src/schemas/tags.ts b/src/schemas/tags.ts
index 700c2f2beb86276..eb7437a4b906dbb 100644
--- a/src/schemas/tags.ts
+++ b/src/schemas/tags.ts
@@ -24,6 +24,7 @@ const frameworks: Array = [
{ label: "Svelte" },
{ label: "SvelteKit" },
{ label: "Vue.js", variants: ["vue", "vuejs"] },
+ { label: ".NET" },
];
const integrations: Array = [
@@ -51,6 +52,7 @@ const integrations: Array = [
const languages: Array = [
{ label: "Go" },
{ label: "GraphQL" },
+ { label: "Java" },
{ label: "JavaScript", variants: ["js"] },
{ label: "MySQL" },
{ label: "NoSQL" },
@@ -120,6 +122,7 @@ const use_cases: Array = [
{ label: "Logging" },
{ label: "Middleware" },
{ label: "Playback" },
+ { label: "Prisma ORM" },
{ label: "Privacy" },
{ label: "Redirects", variants: ["redirect"] },
{ label: "Request modification", variants: ["request"] },
diff --git a/templates/tutorial-template.mdx b/templates/tutorial-template.mdx
index 44059e9b2b4dcd9..a9b06c3f2777216 100644
--- a/templates/tutorial-template.mdx
+++ b/templates/tutorial-template.mdx
@@ -3,9 +3,7 @@ updated: YYYY-MM-DD
difficulty: Beginner | Intermediate | Expert
pcx_content_type: tutorial
title: Tutorial title. Second-person imperative verb phrase that reflects user goal or job-to-be-done. For example, 'Create a Worker' or 'Build a Pages application'.
-products:
- - Workers
-languages:
+tags:
- TypeScript
---