diff --git a/.agents/references/components.md b/.agents/references/components.md index aa675e44c0cd462..e07a3ac42f45ef4 100644 --- a/.agents/references/components.md +++ b/.agents/references/components.md @@ -741,20 +741,6 @@ To add or update stats, edit `src/components/PublicStats.astro`. --- -## ExternalResources - -Pulls demo apps from the central `src/content/apps/index.yaml` collection, filtered by tags and products. - -```mdx -import { ExternalResources } from "~/components"; - - -``` - -Props: `type` (required, `"apps"`), `tags` (string array, filter by tag), `products` (string array, filter by product), `cloudflareOnly` (boolean, default `true`). - ---- - ## ResourcesBySelector Displays a filterable list of docs pages pulled by `pcx_content_type`, `tags`, and/or `products` frontmatter. Used on example and tutorial index pages. diff --git a/.agents/references/style-guide.md b/.agents/references/style-guide.md index 1032befa929c3e7..c082ae156331822 100644 --- a/.agents/references/style-guide.md +++ b/.agents/references/style-guide.md @@ -325,9 +325,9 @@ All components are imported from `~/components`. Imports must appear after the f | `DirectoryListing` | Auto-generated child page listing for nav/overview pages | | `ListTutorials` | Auto-generated tutorial table for the current product | | `ResourcesBySelector` | Filterable list of pages by `pcx_content_type`, tags, or products | -| `ExternalResources` | Demo apps from central YAML collection, filtered by tags/products | | `PublicStats` | Inline live statistic (data centers, bandwidth, etc.) | | `YouTube` | Embed a YouTube video by ID | +| `YouTubeVideos` | Grid of YouTube videos for a product from `src/content/videos/` | | `Stream` | Embed a Cloudflare Stream video by ID or collection file | | `APIRequest` | Generate a `curl` command from the Cloudflare OpenAPI schema | | `CURL` | Generate a `curl` command for arbitrary URLs | diff --git a/public/__redirects b/public/__redirects index 921f7ad8b7577b3..2ff0404179bbe60 100644 --- a/public/__redirects +++ b/public/__redirects @@ -687,6 +687,7 @@ /email-routing/enable-email-routing/ /email-routing/get-started/enable-email-routing/ 301 /email-routing/get-started/email-addresses/ /email-routing/setup/email-routing-addresses/ 301 /email-routing/known-limitations/ /email-routing/postmaster/ 301 +/email-routing/email-workers/demos/ /email-routing/email-workers/ 301 # firewall /firewall/api/cf-lists/ /waf/tools/lists/lists-api/ 301 /firewall/api/cf-lists/endpoints/ /waf/tools/lists/lists-api/endpoints/ 301 diff --git a/src/components/ExternalResources.astro b/src/components/ExternalResources.astro deleted file mode 100644 index da8596a288a63c0..000000000000000 --- a/src/components/ExternalResources.astro +++ /dev/null @@ -1,51 +0,0 @@ ---- -import { getCollection } from "astro:content"; -import { z } from "astro/zod"; - -import { process } from "~/util/rehype"; -import rehypeExternalLinks from "~/plugins/rehype/external-links"; - -type Props = z.infer; - -const props = z.object({ - type: z.enum(["apps"]), - tags: z.string().array().optional(), - products: z.string().array().optional(), - cloudflareOnly: z.boolean().default(true), -}); - -const { type, tags, products, cloudflareOnly } = props.parse(Astro.props); - -const resources = await getCollection(type, (e) => { - return ( - (cloudflareOnly ? e.data.cloudflare : true) && - (tags ? e.data.tags?.some((v: string) => tags.includes(v)) : true) && - (products - ? e.data.products?.some((v: string) => products.includes(v)) - : true) - ); -}); - -if (!resources) { - throw new Error("Failed to load data"); -} - -resources.sort((a, b) => Number(b.data.updated) - Number(a.data.updated)); ---- - - diff --git a/src/components/index.ts b/src/components/index.ts index b7db90400f97795..507db0f5246f95e 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -19,7 +19,6 @@ export { default as Description } from "./Description.astro"; export { default as Details } from "./Details.astro"; export { default as DirectoryListing } from "./DirectoryListing.astro"; export { default as Example } from "./Example.astro"; -export { default as ExternalResources } from "./ExternalResources.astro"; export { default as ExtraFlagDetails } from "./ExtraFlagDetails.astro"; export { default as Feature } from "./Feature.astro"; export { default as FeatureTable } from "./FeatureTable.astro"; diff --git a/src/content.config.ts b/src/content.config.ts index f59db1ebfa43e9c..3d6e9129ecb06a5 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -12,7 +12,6 @@ import { granularControlApplicationsCollectionConfig } from "./content/collectio import { middlecacheLoader } from "./util/custom-loaders"; import { - appsSchema, catalogModelsSchema, changelogSchema, baseSchema, @@ -113,10 +112,6 @@ export const collections = { loader: file("src/content/videos/index.yaml"), schema: videosSchema, }), - apps: defineCollection({ - loader: file("src/content/apps/index.yaml"), - schema: appsSchema, - }), "warp-releases": defineCollection({ loader: dataLoader("warp-releases"), schema: warpReleasesSchema, diff --git a/src/content/apps/index.yaml b/src/content/apps/index.yaml deleted file mode 100644 index cda33173e3c7618..000000000000000 --- a/src/content/apps/index.yaml +++ /dev/null @@ -1,219 +0,0 @@ -- link: https://github.com/harshil1712/nextjs-r2-demo - id: Upload Image to R2 starter - description: Upload images to Cloudflare R2 from a Next.js application. - tags: [NextJS] - products: [R2, Pages] - languages: [TypeScript] - author: harshil - cloudflare: true - updated: 2024-06-21 -- link: https://github.com/harshil1712/remix-d1-auth-template - id: Remix Authentication Starter - description: Implement authenticating to a Remix app and store user data in Cloudflare D1. - tags: [Remix] - products: [D1] - languages: [TypeScript] - author: harshil - cloudflare: true - updated: 2024-07-09 -- link: https://github.com/cloudflare/turnstile-demo-workers - id: Turnstile Demo - description: A simple demo with a Turnstile-protected form, using Cloudflare Workers. With the code in this repository, we demonstrate implicit rendering and explicit rendering. - tags: [] - products: [Turnstile, Workers] - languages: [JavaScript] - cloudflare: true - updated: 2024-02-15 -- link: https://github.com/cloudflare/doom-workers - id: Multiplayer Doom Workers - description: A WebAssembly Doom port with multiplayer support running on top of Cloudflare's global network using Workers, WebSockets, Pages, and Durable Objects. - tags: [WebSockets] - products: [Pages, Durable Objects, Workers] - languages: [JavaScript] - cloudflare: true - updated: 2023-06-15 -- link: https://github.com/cloudflare/hyperdrive-demo - id: Hyperdrive demo - description: A Remix app that connects to a database behind Cloudflare's Hyperdrive, making regional databases feel like they're globally distributed. - tags: [Remix] - products: [Hyperdrive] - languages: [TypeScript] - cloudflare: true - updated: 2024-04-04 -- link: https://github.com/cloudflare/d1-northwind - id: D1 Northwind Demo - description: This is a demo of the Northwind dataset, running on Cloudflare Workers, and D1 - Cloudflare's SQL database, running on SQLite. - tags: [Tailwind, React, Remix] - products: [Workers, D1] - languages: [TypeScript, SQL] - cloudflare: true - updated: 2023-07-12 -- link: https://github.com/cloudflare/workers-chat-demo - id: Cloudflare Workers Chat Demo - description: This is a demo app written on Cloudflare Workers utilizing Durable Objects to implement real-time chat with stored history. - tags: [WebSockets] - products: [Workers, Durable Objects] - languages: [JavaScript] - cloudflare: true - updated: 2024-03-05 -- link: https://github.com/cloudflare/js-rpc-and-entrypoints-demo - id: JavaScript-native RPC on Cloudflare Workers <> Named Entrypoints - description: This is a collection of examples of communicating between multiple Cloudflare Workers using the remote-procedure call (RPC) system that is built into the Workers runtime. - tags: [RPC, Discord] - products: [Workers, D1, Access] - languages: [TypeScript] - cloudflare: true - updated: 2024-04-16 -- link: https://github.com/harshil1712/jobs-at-conf-demo - id: Jobs At Conf - description: A job lisiting website to add jobs you find at in-person conferences. Built with Cloudflare Pages, R2, D1, Queues, and Workers AI. - tags: [Next.js] - products: [D1, R2, Workers AI, Queues, Pages] - languages: [TypeScript] - author: harshil - cloudflare: true - updated: 2024-07-29 -- link: https://github.com/cloudflare/queues-web-crawler - id: Queues Web Crawler - description: An example use-case for Queues, a web crawler built on Browser Run and Puppeteer. The crawler finds the number of links to Cloudflare.com on the site, and archives a screenshot to Workers KV. - tags: [] - products: [KV, Browser Run, Workers, Pages, Queues] - languages: [TypeScript] - cloudflare: true - updated: 2023-06-15 -- link: https://github.com/cloudflare/workers-for-platforms-example - id: Workers for Platforms Example Project - description: Explore how you could manage thousands of Workers with a single Cloudflare Workers account. - tags: [Hono] - products: [D1, Workers, Workers for Platforms] - languages: [TypeScript] - cloudflare: true - updated: 2024-04-03 -- link: https://github.com/cloudflare/dmarc-email-worker - id: DMARC Email Worker - description: A Cloudflare worker script to process incoming DMARC reports, store them, and produce analytics. - tags: [] - products: [R2, Workers, Email Workers] - languages: [TypeScript] - cloudflare: true - updated: 2023-03-17 -- link: https://github.com/cloudflare/pages-fns-with-wasm-demo - id: Pages Functions with WebAssembly - description: This is a demo application that exemplifies the use of Wasm module imports inside Pages Functions code. - tags: [] - products: [Pages] - languages: [Rust] - cloudflare: true - updated: 2023-03-22 -- link: https://github.com/cloudflare/orange - id: Orange Meets - description: Orange Meets is a demo WebRTC application built using Cloudflare Realtime. - tags: [] - products: [Realtime] - languages: [TypeScript] - cloudflare: true - updated: 2024-07-05 -- link: https://github.com/cloudflare/calls-examples/tree/main/whip-whep-server - id: WHIP-WHEP Server - description: WHIP and WHEP server implemented on top of Realtime API. - tags: [] - products: [Realtime] - languages: [TypeScript] - cloudflare: true - updated: 2022-06-12 -- link: https://github.com/cloudflare/calls-examples/tree/main/echo - id: Realtime Echo Demo - description: Demonstrates a local stream alongside a remote echo stream. - tags: [] - products: [Realtime] - languages: [JavaScript] - cloudflare: true - updated: 2025-05-10 -- link: https://github.com/cloudflare/calls-examples/tree/main/echo-datachannels - id: Realtime DataChannel Test - description: This example establishes two datachannels, one publishes data and the other one subscribes, the test measures how fast a message travels to and from the server. - tags: [] - products: [Realtime] - languages: [JavaScript] - cloudflare: true - updated: 2022-06-04 -- link: https://github.com/cloudflare/wildebeest - id: Wildebeest - description: Wildebeest is an ActivityPub and Mastodon-compatible server whose goal is to allow anyone to operate their Fediverse server and identity on their domain without needing to keep infrastructure, with minimal setup and maintenance, and running in minutes. - tags: [] - products: [Workers, Pages, Durable Objects, Queues, D1, Access, Images] - languages: [TypeScript] - cloudflare: true - updated: 2023-07-31 -- link: https://github.com/cloudflare/workers-access-external-auth-example - id: Access External Auth Rule Example Worker - description: This is a worker that allows you to quickly setup an external evalutation rule in Cloudflare Access. - tags: [] - products: [Workers, Access] - languages: [JavaScript] - cloudflare: true - updated: 2022-08-01 -- link: https://github.com/lauragift21/staff-directory - id: Staff Directory demo - description: Built using the powerful combination of HonoX for backend logic, Cloudflare Pages for fast and secure hosting, and Cloudflare D1 for seamless database management. - tags: [Hono] - products: [Pages, D1] - languages: [TypeScript] - author: gift - cloudflare: true - updated: 2024-03-18 -- link: https://github.com/atinux/atidraw - id: Atidraw - description: A web application made with Nuxt that lets you to create, enhance, and share your drawings with the world. Harnessing the power of Cloudflare R2 and Cloudflare AI to store and enhance your drawings. - tags: [Nuxt] - products: [Pages, R2, Workers AI] - languages: [TypeScript] - cloudflare: false - updated: 2024-08-12 -- link: https://github.com/atinux/atidone - id: Atidone - description: A full-stack application made with Nuxt, Cloudflare D1 and Authentication to store your todos on the web. - tags: [Nuxt] - products: [Pages, D1] - languages: [TypeScript] - cloudflare: false - updated: 2024-08-12 -- link: https://github.com/atinux/atinotes - id: Atinotes - description: Store Markdown notes in Cloudflare KV with this full-stack application made with Nuxt & deployed on Cloudflare Pages. - tags: [Nuxt] - products: [Pages, KV] - languages: [TypeScript] - cloudflare: false - updated: 2024-08-12 -- link: https://github.com/Flosciante/nuxt-image-gallery - id: Nuxt Image Gallery - description: A web application to create an image gallery with Cloudflare R2 with a built-in image editor. - tags: [Nuxt] - products: [Pages, R2] - languages: [TypeScript] - cloudflare: false - updated: 2024-08-29 -- link: https://github.com/ra-jeev/hub-chat - id: AI Chat - description: A full-stack application made with Nuxt to chat with various Cloudflare Workers AI LLM. - tags: [Nuxt] - products: [Pages, Workers AI] - languages: [TypeScript] - cloudflare: false - updated: 2024-08-29 -- link: https://github.com/atinux/flux-ai-image-generator - id: Flux Schnell Image Generator - description: An application to generate images with AI using Flux-1 Schnell and store them in Cloudflare R2. - tags: [Nuxt] - products: [Pages, Workers AI, R2] - languages: [TypeScript] - cloudflare: false - updated: 2024-10-07 -- link: https://github.com/cloudflare/templates/tree/main/d1-starter-sessions-api-template - id: Starter code for D1 Sessions API - description: An introduction to D1 Sessions API. This demo simulates purchase orders administration. - products: [Workers, D1] - languages: [TypeScript] - cloudflare: true - updated: 2025-03-31 diff --git a/src/content/docs/d1/demos.mdx b/src/content/docs/d1/demos.mdx index 58fe07361ec43bc..a36a0eab930184b 100644 --- a/src/content/docs/d1/demos.mdx +++ b/src/content/docs/d1/demos.mdx @@ -8,7 +8,7 @@ products: - d1 --- -import { ExternalResources, GlossaryTooltip, ResourcesBySelector } from "~/components" +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use D1 within your existing application and architecture. @@ -24,14 +24,15 @@ To simulate how read replication can improve a worst case latency scenario, sele You can find this in the **Database location hint** dropdown. ::: -## Demos - -Explore the following demo applications for D1. - - - ## Reference architectures Explore the following reference architectures that use D1: - + diff --git a/src/content/docs/durable-objects/demos.mdx b/src/content/docs/durable-objects/demos.mdx index 84f0d1234d8cb3c..511c665620046b2 100644 --- a/src/content/docs/durable-objects/demos.mdx +++ b/src/content/docs/durable-objects/demos.mdx @@ -8,18 +8,19 @@ products: - durable-objects --- -import { ExternalResources, GlossaryTooltip, ResourcesBySelector } from "~/components" +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use a Durable Object within your existing application and architecture. -## Demos - -Explore the following demo applications for Durable Objects. - - - ## Reference architectures Explore the following reference architectures that use Durable Objects: - + diff --git a/src/content/docs/email-routing/email-workers/demos.mdx b/src/content/docs/email-routing/email-workers/demos.mdx deleted file mode 100644 index e0a6c0bbb15a729..000000000000000 --- a/src/content/docs/email-routing/email-workers/demos.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -pcx_content_type: navigation -title: Demos -description: Explore demo applications that show how to use Email Workers within your architecture. -sidebar: - order: 7 -products: - - email-routing ---- - -import { ExternalResources, GlossaryTooltip } from "~/components" - -Learn how you can use Email Workers within your existing architecture. - -## Demos - -Explore the following demo applications for Email Workers. - - \ No newline at end of file diff --git a/src/content/docs/hyperdrive/demos.mdx b/src/content/docs/hyperdrive/demos.mdx index 15da16f30e2b272..2b1244f782e634c 100644 --- a/src/content/docs/hyperdrive/demos.mdx +++ b/src/content/docs/hyperdrive/demos.mdx @@ -8,18 +8,19 @@ products: - hyperdrive --- -import { ExternalResources, GlossaryTooltip, ResourcesBySelector } from "~/components" +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use Hyperdrive within your existing application and architecture. -## Demos - -Explore the following demo applications for Hyperdrive. - - - ## Reference architectures Explore the following reference architectures that use Hyperdrive: - + diff --git a/src/content/docs/images/demos.mdx b/src/content/docs/images/demos.mdx index 7fc48a1c8717967..4d1cf7ccbb39a7b 100644 --- a/src/content/docs/images/demos.mdx +++ b/src/content/docs/images/demos.mdx @@ -8,20 +8,10 @@ products: - images --- -import { - ExternalResources, - GlossaryTooltip, - ResourcesBySelector, -} from "~/components"; +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use Images within your existing architecture. -## Demos - -Explore the following demo applications for Images. - - - ## Reference architectures Explore the following reference architectures that use Images: diff --git a/src/content/docs/kv/demos.mdx b/src/content/docs/kv/demos.mdx index a327a724f3efd5f..7b40d2002deaed4 100644 --- a/src/content/docs/kv/demos.mdx +++ b/src/content/docs/kv/demos.mdx @@ -8,18 +8,19 @@ products: - kv --- -import { ExternalResources, GlossaryTooltip, ResourcesBySelector } from "~/components" +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use KV within your existing application and architecture. -## Demo applications - -Explore the following demo applications for KV. - - - ## Reference architectures Explore the following reference architectures that use KV: - + diff --git a/src/content/docs/pages/demos.mdx b/src/content/docs/pages/demos.mdx index 15fe9ef5a3d8230..ec2661a02159629 100644 --- a/src/content/docs/pages/demos.mdx +++ b/src/content/docs/pages/demos.mdx @@ -8,20 +8,10 @@ products: - pages --- -import { - ExternalResources, - GlossaryTooltip, - ResourcesBySelector, -} from "~/components"; +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use Pages within your existing application and architecture. -## Demos - -Explore the following demo applications for Pages. - - - ## Reference architectures Explore the following reference architectures that use Pages: diff --git a/src/content/docs/pages/framework-guides/deploy-a-hono-site.mdx b/src/content/docs/pages/framework-guides/deploy-a-hono-site.mdx index e9b76decdc4697d..a41c8d13a6d9bf2 100644 --- a/src/content/docs/pages/framework-guides/deploy-a-hono-site.mdx +++ b/src/content/docs/pages/framework-guides/deploy-a-hono-site.mdx @@ -10,7 +10,6 @@ products: import { ResourcesBySelector, - ExternalResources, Render, TabItem, Tabs, @@ -89,12 +88,6 @@ For more tutorials involving Hono and Cloudflare Pages, refer to the following r products={["pages"]} /> -### Demo apps - -For demo applications using Hono and Cloudflare Pages, refer to the following resources: - - - ### Creator Interview diff --git a/src/content/docs/pages/framework-guides/deploy-a-nuxt-site.mdx b/src/content/docs/pages/framework-guides/deploy-a-nuxt-site.mdx index 8c91a367a090b1c..9fac0e63e6609e8 100644 --- a/src/content/docs/pages/framework-guides/deploy-a-nuxt-site.mdx +++ b/src/content/docs/pages/framework-guides/deploy-a-nuxt-site.mdx @@ -13,7 +13,6 @@ import { TabItem, Tabs, ResourcesBySelector, - ExternalResources, PackageManagers, YouTube, } from "~/components"; @@ -174,17 +173,3 @@ export default defineEventHandler(({ context }) => { product="pages" params={{ one: "Nuxt" }} /> - -## Related resources - -### Tutorials - -For more tutorials involving Nuxt, refer to the following resources: - - - -### Demo apps - -For demo applications using Nuxt, refer to the following resources: - - diff --git a/src/content/docs/r2/demos.mdx b/src/content/docs/r2/demos.mdx index 41fe5c21b2b69cc..d55493702160a2b 100644 --- a/src/content/docs/r2/demos.mdx +++ b/src/content/docs/r2/demos.mdx @@ -9,20 +9,10 @@ products: - r2 --- -import { - ExternalResources, - GlossaryTooltip, - ResourcesBySelector, -} from "~/components"; +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use R2 within your existing application and architecture. -## Demos - -Explore the following demo applications for R2. - - - ## Reference architectures Explore the following reference architectures that use R2: diff --git a/src/content/docs/realtime/sfu/demos.mdx b/src/content/docs/realtime/sfu/demos.mdx index 09c352023053e11..31498d3ee09e2ed 100644 --- a/src/content/docs/realtime/sfu/demos.mdx +++ b/src/content/docs/realtime/sfu/demos.mdx @@ -8,16 +8,10 @@ products: - realtime --- -import { ExternalResources, GlossaryTooltip } from "~/components" +import { GlossaryTooltip } from "~/components"; Learn how you can use Realtime within your existing architecture. -## Demos - -Explore the following demo applications for Realtime. - - - ## Interactive Demos ### Global SFU Network Visualization diff --git a/src/content/docs/style-guide/components/external-resources.mdx b/src/content/docs/style-guide/components/external-resources.mdx deleted file mode 100644 index 608504cd4303b7e..000000000000000 --- a/src/content/docs/style-guide/components/external-resources.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: External resources -styleGuide: - component: ExternalResources -description: Display links to external learning resources. -products: - - style-guide ---- - -The `ExternalResources` component pulls from a central list of [apps](https://github.com/cloudflare/cloudflare-docs/blob/production/src/content/apps/index.yaml). - -## Import - -```mdx -import { ExternalResources } from "~/components"; -``` - -## Preview - -```mdx live -import { ExternalResources } from "~/components"; - -## Demo apps - - -``` - -## Props - -### `type` - -**required** - -**type:** `"apps"` - -The type of resources to show. - -### `tags` - -**type:** `string[]` - -Filter resources down to those where the `tags` property contains any of these strings. - -To see a list of the available tags, and which pages are associated with them, refer to [this list](/style-guide/frontmatter/tags/). - -### `products` - -**type:** `string[]` - -Filter resources down to those where the `products` property contains any of these strings. - -### `cloudflareOnly` - -**type:** `boolean` - -**default:** `true` - -Filter resources down to those with `cloudflare: true`. diff --git a/src/content/docs/style-guide/frontmatter/tags.mdx b/src/content/docs/style-guide/frontmatter/tags.mdx index 95cf2d2120a08ed..9e9f672d8230f97 100644 --- a/src/content/docs/style-guide/frontmatter/tags.mdx +++ b/src/content/docs/style-guide/frontmatter/tags.mdx @@ -7,7 +7,7 @@ products: import { TagsUsage } from "~/components"; -Tags are currently used to filter content in the [`ExternalResources`](/style-guide/components/external-resources/) and the [`ResourcesBySelector`](/style-guide/components/resources-by-selector/) components. +Tags are currently used to filter content in the [`ResourcesBySelector`](/style-guide/components/resources-by-selector/) component. ## Example diff --git a/src/content/docs/turnstile/tutorials/index.mdx b/src/content/docs/turnstile/tutorials/index.mdx index b1eeb7797dedbbe..4b514058ff1d2d6 100644 --- a/src/content/docs/turnstile/tutorials/index.mdx +++ b/src/content/docs/turnstile/tutorials/index.mdx @@ -7,19 +7,10 @@ products: hideChildren: true sidebar: order: 7 - --- -import { GlossaryTooltip, ListTutorials, ExternalResources, Render } from "~/components" +import { GlossaryTooltip, ListTutorials, Render } from "~/components"; View tutorials to help you get started with Turnstile. - -## Demo - -Learn how you can use Turnstile within your existing application. - -Explore the following demo applications for Turnstile. - - diff --git a/src/content/docs/workers-ai/guides/demos-architectures.mdx b/src/content/docs/workers-ai/guides/demos-architectures.mdx index 50548ab5b927ede..d5494819708ca03 100644 --- a/src/content/docs/workers-ai/guides/demos-architectures.mdx +++ b/src/content/docs/workers-ai/guides/demos-architectures.mdx @@ -8,20 +8,10 @@ products: - workers-ai --- -import { - ExternalResources, - GlossaryTooltip, - ResourcesBySelector, -} from "~/components"; +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Workers AI can be used to build dynamic and performant services. The following demo applications and reference architectures showcase how to use Workers AI optimally within your architecture. -## Demos - -Explore the following demo applications for Workers AI. - - - ## Reference architectures Explore the following reference architectures that use Workers AI: diff --git a/src/content/docs/workers/demos.mdx b/src/content/docs/workers/demos.mdx index 489f32372689df7..a1ba5e1330ba164 100644 --- a/src/content/docs/workers/demos.mdx +++ b/src/content/docs/workers/demos.mdx @@ -8,18 +8,19 @@ products: - workers --- -import { ExternalResources, GlossaryTooltip, ResourcesBySelector } from "~/components" +import { GlossaryTooltip, ResourcesBySelector } from "~/components"; Learn how you can use Workers within your existing application and architecture. -## Demos - -Explore the following demo applications for Workers. - - - ## Reference architectures Explore the following reference architectures that use Workers: - + diff --git a/src/schemas/apps.ts b/src/schemas/apps.ts deleted file mode 100644 index 82135185c207e94..000000000000000 --- a/src/schemas/apps.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { z } from "astro/zod"; - -export const appsSchema = z - .object({ - id: z.string(), - link: z.url(), - description: z.string(), - tags: z.string().array().optional(), - products: z.string().array(), - languages: z.string().array(), - cloudflare: z.boolean(), - author: z.string().optional(), - updated: z.coerce.date(), - }) - .strict(); diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 51219d6f8ee398c..aed00ad59650699 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -1,4 +1,3 @@ -export * from "./apps"; export * from "./base"; export * from "./cloudflare-skills-manifest"; export * from "./cloudflare-mcp-server-card";