diff --git a/.agents/references/components.md b/.agents/references/components.md
index 2e42390e5b344e9..aa675e44c0cd462 100644
--- a/.agents/references/components.md
+++ b/.agents/references/components.md
@@ -14,6 +14,7 @@ import { Render } from "~/components";
+
```
@@ -34,7 +35,7 @@ Inside the partial, params are referenced as JS expressions: `{props.product}`.
Renders a TypeScript code block and auto-generates a JavaScript tab using `ts-blank-space`. **Required for all Workers JS/TS examples** — do not use bare `ts`/`js` fences.
-```mdx
+````mdx
import { TypeScriptExample } from "~/components";
@@ -44,11 +45,13 @@ export default {
return new Response("Hello World");
}
} satisfies ExportedHandler;
-```
+````
+
```
Props:
+
- `filename` — optional, must end in `.ts`. The JS tab shows the `.js` equivalent.
- `playground` — boolean. Adds "Run Worker in Playground" button to the JS tab.
- `code` — object. Expressive Code options (e.g. `collapse: "1-2"`). Apply to both tabs.
@@ -61,7 +64,7 @@ Note: Expressive Code fence options (`collapse={1-2}`, etc.) cannot be set on th
Renders Wrangler config with synced TOML and JSON tabs, auto-converting between formats. **Required for all Wrangler configuration examples** — do not use bare `toml`/`jsonc` fences.
-```mdx
+````mdx
import { WranglerConfig } from "~/components";
@@ -74,7 +77,8 @@ compatibility_date = "$today"
binding = "DB"
database_name = "prod-d1-tutorial"
database_id = ""
-```
+````
+
```
@@ -93,9 +97,11 @@ Shows a command across npm, yarn, and pnpm in synced tabs. **Required for packag
import { PackageManagers } from "~/components";
+
+
```
@@ -109,13 +115,14 @@ For showing different ways to accomplish the same thing. Use when there are mutu
import { Tabs, TabItem } from "~/components";
- Dashboard instructions
- API instructions
- Terraform instructions
+ Dashboard instructions
+ API instructions
+ Terraform instructions
```
Standard `syncKey` values (sync tab selection across the page):
+
- `dashPlusAPI` — Dashboard / API / Terraform
- `workersExamples` — JavaScript / TypeScript / Python / Rust
@@ -146,13 +153,12 @@ Collapsible section. Use for supplementary content that would clutter the main f
```mdx
import { Details } from "~/components";
-
- Content shown when expanded.
-
+Content shown when expanded.
+
- Content visible without interaction.
+ Content visible without interaction.
```
@@ -177,6 +183,7 @@ import { Plan } from "~/components";
+
```
@@ -192,10 +199,16 @@ import { GlossaryTooltip } from "~/components";
active zone
-active zone
+
+
+ active zone
+
-active zone
+
+
+ active zone
+
```
Props: `term` (required, matches a YAML entry key), `prepend` (optional text prepended to the definition), `link` (optional, wraps the inner text in a link).
@@ -278,6 +291,7 @@ import { DashButton } from "~/components";
+
```
@@ -293,25 +307,28 @@ Fetches and displays a file from a Cloudflare GitHub repository. Use a full 40-c
import { GitHubCode } from "~/components";
+
+
+
```
@@ -364,19 +381,21 @@ Starlight built-ins for styled card containers. Used on overview and navigation
import { Card, LinkTitleCard, ListCard } from "~/components";
+
- Interesting content you want to highlight.
+ Interesting content you want to highlight.
+
- Deploy your first Worker in minutes.
+ Deploy your first Worker in minutes.
+
-- [Docs](/workers/)
-- [API reference](/api/)
+ - [Docs](/workers/) - [API reference](/api/)
```
@@ -402,13 +421,15 @@ Embeds a Cloudflare Stream video. Use `id` + `title` for a specific video, or `f
import { Stream } from "~/components";
+
+
```
@@ -424,24 +445,27 @@ Generates a formatted `curl` command from the Cloudflare OpenAPI schema. Use for
import { APIRequest } from "~/components";
+
+
+
```
@@ -457,10 +481,10 @@ Generates a `curl` command for arbitrary (non-Cloudflare-API) URLs. Use when `AP
import { CURL } from "~/components";
```
@@ -479,7 +503,11 @@ import { WranglerCommand } from "~/components";
-
+
+
```
Use `ExtraFlagDetails` as a child to add or replace help text for specific flags:
@@ -488,12 +516,12 @@ Use `ExtraFlagDetails` as a child to add or replace help text for specific flags
import { WranglerCommand, ExtraFlagDetails } from "~/components";
-
- Additional detail appended to the flag's help text.
-
-
- Custom text that replaces the flag's help text entirely.
-
+
+ Additional detail appended to the flag's help text.
+
+
+ Custom text that replaces the flag's help text entirely.
+
```
@@ -511,6 +539,7 @@ import { Markdown } from "~/components";
+
```
@@ -523,7 +552,7 @@ Limitations: no MDX features, no Astro image optimization, no syntax highlightin
Creates a heading with a custom anchor ID — useful when writing headings inside components or non-Markdown files. In regular MDX, headings get anchors automatically via rehype plugins, so this is rarely needed. To override a heading ID in MDX, use an inline comment instead:
```mdx
-## My heading {/*custom-anchor*/}
+## My heading {/* custom-anchor */}
```
When you do need the component:
@@ -531,7 +560,11 @@ When you do need the component:
```mdx
import { AnchorHeading } from "~/components";
-
+
```
Props: `title` (required, heading text), `slug` (required, custom anchor ID), `depth` (heading level, e.g. `2` for H2).
@@ -546,8 +579,12 @@ Renders a styled link button. Useful for primary CTAs on overview and get-starte
import { LinkButton } from "~/components";
Get started
-More information
-Other stuff
+
+ More information
+
+
+ Other stuff
+
```
Variants: `primary` (default), `secondary`, `minimal`.
@@ -562,14 +599,14 @@ Starlight built-in. Renders a card with a title, description, and link. Use `Car
import { LinkCard, CardGrid } from "~/components";
-
-
+
+
```
@@ -582,12 +619,7 @@ Starlight built-in. Displays a file and directory tree. Use bold to highlight th
```mdx
import { FileTree } from "~/components";
-
-- src/
- - index.ts
- - **worker.ts**
-- wrangler.toml
-
+- src/ - index.ts - **worker.ts** - wrangler.toml
```
---
@@ -599,9 +631,7 @@ Renders a short description block directly below the page title. Prefer the `sum
```mdx
import { Description } from "~/components";
-
- A short description rendered below the page title.
-
+A short description rendered below the page title.
```
---
@@ -614,7 +644,7 @@ Renders a feature card with a name and link. Used on product overview pages to l
import { Feature } from "~/components";
- Coordinate state and logic across Workers with strongly consistent storage.
+ Coordinate state and logic across Workers with strongly consistent storage.
```
@@ -630,7 +660,7 @@ Renders a related product card with an icon, name, and link. Used on overview pa
import { RelatedProduct } from "~/components";
- Store large amounts of unstructured data without egress fees.
+ Store large amounts of unstructured data without egress fees.
```
@@ -713,16 +743,15 @@ To add or update stats, edit `src/components/PublicStats.astro`.
## ExternalResources
-Pulls demo apps or videos from the central `src/content/apps/index.yaml` and `src/content/videos/index.yaml` collections, filtered by tags and products.
+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"` or `"videos"`), `tags` (string array, filter by tag), `products` (string array, filter by product), `cloudflareOnly` (boolean, default `true`).
+Props: `type` (required, `"apps"`), `tags` (string array, filter by tag), `products` (string array, filter by product), `cloudflareOnly` (boolean, default `true`).
---
@@ -734,9 +763,9 @@ Displays a filterable list of docs pages pulled by `pcx_content_type`, `tags`, a
import { ResourcesBySelector } from "~/components";
```
@@ -807,7 +836,11 @@ import SubtractIPCalculator from "~/components/SubtractIPCalculator.tsx";
-
+
+
```
Note: imports directly from the `.tsx` file path, not from `~/components`.
@@ -823,27 +856,15 @@ import { Width } from "~/components";
75% of container width50% of container width
-25%, centered
+
+ 25%, centered
+
```
Props: `size` (required, `"large"` | `"medium"` | `"small"`), `center` (boolean).
---
-## YouTubeVideos
-
-Renders a grid of YouTube videos associated with one or more products, sourced from `src/content/videos/index.yaml`.
-
-```mdx
-import { YouTubeVideos } from "~/components";
-
-
-```
-
-Props: `products` (string array — if omitted, uses the current page's product).
-
----
-
## AvailableNotifications
Lists available notification types for a product, sourced from `src/content/notifications/index.yaml`.
@@ -852,7 +873,10 @@ Lists available notification types for a product, sourced from `src/content/noti
import { AvailableNotifications } from "~/components";
-
+
```
Props: `product` (required, product name or slug), `notificationFilter` (optional, filter to a specific notification type by name).
diff --git a/.agents/references/style-guide.md b/.agents/references/style-guide.md
index ab12eb351deb394..1032befa929c3e7 100644
--- a/.agents/references/style-guide.md
+++ b/.agents/references/style-guide.md
@@ -8,10 +8,10 @@ Prescriptive rules for writing and reviewing content in this repository. Distill
These characters have special meaning in MDX and **will break the build** if used unescaped in prose, tables, or headings:
-| Character | Problem | Fix |
-| --------- | ------- | --- |
-| `{` `}` | Interpreted as JS expressions | Wrap in backticks or use `\{` `\}` |
-| `<` `>` | Interpreted as JSX elements | Use `<` `>` or wrap in backticks |
+| Character | Problem | Fix |
+| --------- | ----------------------------- | -------------------------------------- |
+| `{` `}` | Interpreted as JS expressions | Wrap in backticks or use `\{` `\}` |
+| `<` `>` | Interpreted as JSX elements | Use `<` `>` or wrap in backticks |
Component imports must appear after the frontmatter block. A used-but-not-imported component is a silent build failure.
@@ -21,31 +21,31 @@ Component imports must appear after the frontmatter block. A used-but-not-import
### Required fields
-| Field | Rule |
-| ----- | ---- |
-| `title` | Required. Plain text. |
-| `pcx_content_type` | Required. Must be one of the valid values below. |
-| `description` | Required for all pages with `pcx_content_type`. 1–2 self-contained sentences, 50–160 characters. |
+| Field | Rule |
+| ------------------ | ------------------------------------------------------------------------------------------------ |
+| `title` | Required. Plain text. |
+| `pcx_content_type` | Required. Must be one of the valid values below. |
+| `description` | Required for all pages with `pcx_content_type`. 1–2 self-contained sentences, 50–160 characters. |
Valid `pcx_content_type` values: `changelog`, `concept`, `configuration`, `design-guide`, `example`, `faq`, `get-started`, `how-to`, `integration-guide`, `implementation-guide`, `learning-unit`, `navigation`, `overview`, `reference`, `reference-architecture`, `reference-architecture-diagram`, `release-notes`, `solution-guide`, `troubleshooting`, `tutorial`, `video`.
### Optional fields
-| Field | Type | Description |
-| ----- | ---- | ----------- |
-| `sidebar.order` | number | Sort order in the left nav. Lower = higher. |
-| `sidebar.label` | string | Override the nav label (defaults to `title`). |
-| `sidebar.hidden` | boolean | Hide from nav but keep the page accessible. |
-| `products` | array | Related directory entries by filename from `src/content/directory/`. |
-| `tags` | array | Related keywords. Validated against allowlist in `src/schemas/tags.ts` — invalid tags fail the build. |
-| `difficulty` | string | For tutorials: `Beginner`, `Intermediate`, or `Advanced`. Shown in tutorial listings. |
-| `reviewed` | string | `YYYY-MM-DD` of last explicit end-to-end review. |
-| `summary` | string | Short description rendered below the page title on the page itself. |
-| `noindex` | boolean | Adds `noindex` to the page — use for deprecated/legacy content. |
-| `chatbot_deprioritize` | boolean | De-prioritizes the page in Support AI responses. Companion to `noindex`. |
-| `canonical` | string | Override the `` URL. |
-| `hideChildren` | boolean | Collapses this nav group to a single link to the index page. |
-| `feedback` | boolean | Show/hide the feedback prompt. Defaults to `true`. |
+| Field | Type | Description |
+| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
+| `sidebar.order` | number | Sort order in the left nav. Lower = higher. |
+| `sidebar.label` | string | Override the nav label (defaults to `title`). |
+| `sidebar.hidden` | boolean | Hide from nav but keep the page accessible. |
+| `products` | array | Related directory entries by filename from `src/content/directory/`. |
+| `tags` | array | Related keywords. Validated against allowlist in `src/schemas/tags.ts` — invalid tags fail the build. |
+| `difficulty` | string | For tutorials: `Beginner`, `Intermediate`, or `Advanced`. Shown in tutorial listings. |
+| `reviewed` | string | `YYYY-MM-DD` of last explicit end-to-end review. |
+| `summary` | string | Short description rendered below the page title on the page itself. |
+| `noindex` | boolean | Adds `noindex` to the page — use for deprecated/legacy content. |
+| `chatbot_deprioritize` | boolean | De-prioritizes the page in Support AI responses. Companion to `noindex`. |
+| `canonical` | string | Override the `` URL. |
+| `hideChildren` | boolean | Collapses this nav group to a single link to the index page. |
+| `feedback` | boolean | Show/hide the feedback prompt. Defaults to `true`. |
Example:
@@ -93,15 +93,15 @@ Do not use Internet slang: no `tl;dr`, `IMO`, `FYI`.
### Jargon to avoid
-| Instead of | Use |
-| ---------- | --- |
-| whitelist / blacklist | allowlist / blocklist |
-| master / slave | primary / replica (or context-specific terms) |
-| man-in-the-middle attack | on-path attack |
-| sanity check | validate / smoke test |
-| enable / disable (toggle) | turn on / turn off |
-| out-of-the-box | default |
-| on-prem | on-premises |
+| Instead of | Use |
+| ------------------------- | --------------------------------------------- |
+| whitelist / blacklist | allowlist / blocklist |
+| master / slave | primary / replica (or context-specific terms) |
+| man-in-the-middle attack | on-path attack |
+| sanity check | validate / smoke test |
+| enable / disable (toggle) | turn on / turn off |
+| out-of-the-box | default |
+| on-prem | on-premises |
### Inclusive language
@@ -111,23 +111,23 @@ Do not use racist, gendered, or ableist terminology. Use gender-neutral pronouns
## Terminology and UI interactions
-| Use | Not |
-| --- | --- |
-| select | click |
-| go to | navigate to |
+| Use | Not |
+| ------------------ | ---------------- |
+| select | click |
+| go to | navigate to |
| turn on / turn off | enable / disable |
-| refer to | see |
+| refer to | see |
---
## Text formatting
-| Element | Convention |
-| ------- | ---------- |
-| Clickable UI elements, menu items, button labels | **Bold**: select **Save**, go to **DNS** > **Records** |
-| Code, paths, IPs, ports, HTTP verbs, status codes, filenames, config keys | `monospace` |
-| Dropdown options the user selects *from* | *Italics* |
-| Nested menu separators | **Bold** the words, plain `>` symbol: **Options** > **Settings** |
+| Element | Convention |
+| ------------------------------------------------------------------------- | ---------------------------------------------------------------- |
+| Clickable UI elements, menu items, button labels | **Bold**: select **Save**, go to **DNS** > **Records** |
+| Code, paths, IPs, ports, HTTP verbs, status codes, filenames, config keys | `monospace` |
+| Dropdown options the user selects _from_ | _Italics_ |
+| Nested menu separators | **Bold** the words, plain `>` symbol: **Options** > **Settings** |
Things that get monospace: IP addresses and ranges, port numbers, API commands (`GET`, `POST`), terminal commands (`wrangler login`), file paths, filenames and extensions (`wrangler.toml`), config keys, data types (`string`, `int64`), environment variable names, HTTP headers (`Content-Length`), HTTP status codes (`400`, `200`), URLs used as input/output, DNS record types (`AAAA`).
@@ -146,15 +146,15 @@ Do not use italics for toggle states — "enabled" and "disabled" should not be
Common terms:
-| Correct | Incorrect |
-| ------- | --------- |
-| DDoS | DDOS, ddos |
-| SSL | ssl |
-| TLS | tls |
-| WAF | waf |
-| CAPTCHA | Captcha, captcha |
-| Zero Trust | zero trust |
-| Internet | internet |
+| Correct | Incorrect |
+| ---------- | ---------------- |
+| DDoS | DDOS, ddos |
+| SSL | ssl |
+| TLS | tls |
+| WAF | waf |
+| CAPTCHA | Captcha, captcha |
+| Zero Trust | zero trust |
+| Internet | internet |
---
@@ -167,6 +167,7 @@ Common terms:
- Descriptive link text — never "here", "this page", "read more", "click here"
Standard phrasing:
+
- `For more information, refer to [Page Title](/path/).`
- `To , refer to [Section Title](/path/).`
@@ -191,11 +192,13 @@ Do not use: "Learn more about...", "To read more...", "refer the [Page] page/doc
Use numbered lists for **procedures** (sequential steps). Use bullet points for **facts, data, or options** (unordered).
Do not use bullet points for:
+
- Processes or steps (use a numbered list)
- Fewer than three items (write a sentence instead)
- Items longer than three lines each (break into subsections)
Bullet point rules:
+
- All items in a list must be parallel (same grammatical form).
- Do not punctuate bullets unless each item is a full sentence.
- Aim for 3–6 items; the "six-pack rule" — no more than six bullets, each six words or fewer, is a good default.
@@ -282,59 +285,59 @@ Package install commands must use `PackageManagers`.
All components are imported from `~/components`. Imports must appear after the frontmatter block.
**Mandatory component usage** — do not use bare fences for these:
+
- Workers JS/TS examples → `TypeScriptExample`
- Wrangler config → `WranglerConfig` (TOML input, use `$today` for `compatibility_date`)
- Package install/exec commands → `PackageManagers`
- Multi-step procedures → `Steps`
- Dashboard navigation steps → `DashButton` (not bare links)
-| Component | Purpose |
-| --------- | ------- |
-| `Render` | Embed a reusable partial from `src/content/partials/{product}/{file}.mdx` |
-| `TypeScriptExample` | Workers TS example with auto-generated JS tab |
-| `WranglerConfig` | Wrangler config in synced TOML + JSON tabs |
-| `PackageManagers` | Package install/exec command across npm, yarn, pnpm |
-| `WranglerCommand` | Auto-generated full Wrangler command reference |
-| `WranglerNamespace` | Auto-generated Wrangler namespace command listing |
-| `Tabs` / `TabItem` | Switchable tabs (`syncKey="dashPlusAPI"` or `"workersExamples"`) |
-| `Steps` | Visual numbered procedure wrapper |
-| `Details` | Collapsible section for supplementary content |
-| `FileTree` | File and directory tree display |
-| `Width` | Constrain content to `"large"` (75%), `"medium"` (50%), or `"small"` (25%) width |
-| `Plan` | Plan availability badge (`type="all"`, `"paid"`, `"pro"`, `"business"`, `"add-on"`) |
-| `FeatureTable` | Feature availability by plan from `src/content/plans/` (dot-notation `id`) |
-| `ProductFeatures` | Full feature list for a product from `src/content/plans/` |
-| `ProductChangelog` | Inline changelog entries for a product or area |
-| `ProductAvailabilityText` | Inline lifecycle status (Beta, Alpha) — renders nothing for GA |
-| `Feature` | Feature card for product overview pages |
-| `RelatedProduct` | Related product card with icon for overview pages |
-| `GlossaryTooltip` | Hover tooltip from `src/content/glossary/` |
-| `GlossaryDefinition` | Inline glossary definition |
-| `Glossary` | Full product glossary table |
-| `InlineBadge` | Inline status badge — **avoid**, prefer `Badge` in headings or sidebar frontmatter |
-| `Badge` | Coloured status badge (`Beta`, `New`, `Deprecated`) for headings and sidebar |
-| `LinkButton` | Styled link button (`variant="primary"`, `"secondary"`, `"minimal"`) |
-| `Card` / `LinkTitleCard` / `ListCard` | Styled card containers for overview and navigation pages |
-| `LinkCard` / `CardGrid` | Starlight link cards, optionally in a grid |
-| `DashButton` | Button linking to a validated dashboard deeplink |
-| `GitHubCode` | Fetch and display a file from a Cloudflare GitHub repo (use full commit hash) |
-| `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 or videos from central YAML collections, 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 |
-| `PagesBuildPreset` | Pages framework build preset details |
-| `RuleID` | Copyable rule ID (WAF / security rules) |
-| `SubtractIPCalculator` | Interactive IP range subtraction calculator |
-| `AvailableNotifications` | List available notification types for a product |
-| `AnchorHeading` | Heading with custom anchor ID — for use inside components/non-MDX files |
-| `Description` | Description block rendered below the page title |
-| `Markdown` | Render a Markdown string inside JSX — primarily for formatted partial variables |
+| Component | Purpose |
+| ------------------------------------- | ----------------------------------------------------------------------------------- |
+| `Render` | Embed a reusable partial from `src/content/partials/{product}/{file}.mdx` |
+| `TypeScriptExample` | Workers TS example with auto-generated JS tab |
+| `WranglerConfig` | Wrangler config in synced TOML + JSON tabs |
+| `PackageManagers` | Package install/exec command across npm, yarn, pnpm |
+| `WranglerCommand` | Auto-generated full Wrangler command reference |
+| `WranglerNamespace` | Auto-generated Wrangler namespace command listing |
+| `Tabs` / `TabItem` | Switchable tabs (`syncKey="dashPlusAPI"` or `"workersExamples"`) |
+| `Steps` | Visual numbered procedure wrapper |
+| `Details` | Collapsible section for supplementary content |
+| `FileTree` | File and directory tree display |
+| `Width` | Constrain content to `"large"` (75%), `"medium"` (50%), or `"small"` (25%) width |
+| `Plan` | Plan availability badge (`type="all"`, `"paid"`, `"pro"`, `"business"`, `"add-on"`) |
+| `FeatureTable` | Feature availability by plan from `src/content/plans/` (dot-notation `id`) |
+| `ProductFeatures` | Full feature list for a product from `src/content/plans/` |
+| `ProductChangelog` | Inline changelog entries for a product or area |
+| `ProductAvailabilityText` | Inline lifecycle status (Beta, Alpha) — renders nothing for GA |
+| `Feature` | Feature card for product overview pages |
+| `RelatedProduct` | Related product card with icon for overview pages |
+| `GlossaryTooltip` | Hover tooltip from `src/content/glossary/` |
+| `GlossaryDefinition` | Inline glossary definition |
+| `Glossary` | Full product glossary table |
+| `InlineBadge` | Inline status badge — **avoid**, prefer `Badge` in headings or sidebar frontmatter |
+| `Badge` | Coloured status badge (`Beta`, `New`, `Deprecated`) for headings and sidebar |
+| `LinkButton` | Styled link button (`variant="primary"`, `"secondary"`, `"minimal"`) |
+| `Card` / `LinkTitleCard` / `ListCard` | Styled card containers for overview and navigation pages |
+| `LinkCard` / `CardGrid` | Starlight link cards, optionally in a grid |
+| `DashButton` | Button linking to a validated dashboard deeplink |
+| `GitHubCode` | Fetch and display a file from a Cloudflare GitHub repo (use full commit hash) |
+| `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 |
+| `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 |
+| `PagesBuildPreset` | Pages framework build preset details |
+| `RuleID` | Copyable rule ID (WAF / security rules) |
+| `SubtractIPCalculator` | Interactive IP range subtraction calculator |
+| `AvailableNotifications` | List available notification types for a product |
+| `AnchorHeading` | Heading with custom anchor ID — for use inside components/non-MDX files |
+| `Description` | Description block rendered below the page title |
+| `Markdown` | Render a Markdown string inside JSX — primarily for formatted partial variables |
For full props, examples, and edge cases, see `.agents/references/components.md`.
@@ -357,6 +360,7 @@ For best practices or opinionated recommendations outside the main content. Defa
```
Usage rules:
+
- Use `note` for supplementary info that cannot be integrated into prose.
- Use `caution` for actions that could break functionality or impact security.
- Use `tip` for best practices and opinionated recommendations.
@@ -395,6 +399,7 @@ Use screenshots sparingly — they have a high maintenance cost because UI chang
Exception: use screenshots freely in changelog entries (accepted as point-in-time references).
Guidelines:
+
- Maintain original aspect ratio.
- Width 500–600 px, resolution 72 dpi.
- Do not include sensitive information (redact if needed).
@@ -406,6 +411,7 @@ Guidelines:
```
Alt text rules:
+
- Describe what the image shows and why it matters (under ~150 characters).
- Do not start with "Image of" or "Screenshot of".
- For purely decorative images, use empty alt text: `![]()`.
@@ -430,11 +436,11 @@ In diagrams: do not use color as the only way to distinguish elements — also u
Use these reserved values in examples — they are safe and will not resolve to live origins:
-| Type | Values |
-| ---- | ------ |
-| Domains | `example.com`, `example.org`, `myappexample.com` |
-| IPv4 ranges | `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24` |
-| URL placeholders | ``, ``, `` |
+| Type | Values |
+| ------------------- | ---------------------------------------------------- |
+| Domains | `example.com`, `example.org`, `myappexample.com` |
+| IPv4 ranges | `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24` |
+| URL placeholders | ``, ``, `` |
| API shell variables | `$ZONE_ID`, `$CLOUDFLARE_API_TOKEN` (in curl blocks) |
Use angle brackets with `ALL_CAPS_UNDERSCORES` for variable placeholders in non-API contexts. In API examples (curl blocks, `APIRequest` component), use `$VARIABLE_NAME` shell variable format.
diff --git a/astro.config.ts b/astro.config.ts
index 424375c6a4a8b80..09f1404220abf2f 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -197,8 +197,8 @@ export default defineConfig({
"/workers-ai/models/**",
"/markdown.zip",
"/style-guide/index.md",
- "/videos/**",
"/agent-setup/",
+ "/videos/**",
],
}),
]
diff --git a/src/components/ExternalResources.astro b/src/components/ExternalResources.astro
index f8a7e0ef0af5bf0..da8596a288a63c0 100644
--- a/src/components/ExternalResources.astro
+++ b/src/components/ExternalResources.astro
@@ -8,7 +8,7 @@ import rehypeExternalLinks from "~/plugins/rehype/external-links";
type Props = z.infer;
const props = z.object({
- type: z.enum(["apps", "videos"]),
+ type: z.enum(["apps"]),
tags: z.string().array().optional(),
products: z.string().array().optional(),
cloudflareOnly: z.boolean().default(true),
diff --git a/src/components/YouTubeVideos.astro b/src/components/YouTubeVideos.astro
deleted file mode 100644
index af455a9261a5a3d..000000000000000
--- a/src/components/YouTubeVideos.astro
+++ /dev/null
@@ -1,37 +0,0 @@
----
-import { z } from "astro/zod";
-import { getCollection } from "astro:content";
-import { ShowcaseYouTube } from "starlight-showcases";
-
-const props = z.object({
- products: z.string().array().default([]),
-});
-
-const { products } = props.parse(Astro.props);
-
-if (products.length === 0) {
- const [currentSection] = Astro.url.pathname.split("/").filter(Boolean);
- products.push(currentSection);
-}
-
-let videos = await getCollection("videos", (entry) => {
- return (
- entry.data.link.includes("youtu") &&
- entry.data.products?.some((v: string) =>
- products.some((p) => v.trim().toLowerCase() === p.trim().toLowerCase()),
- )
- );
-});
-
-videos = videos.sort(
- (a, b) =>
- new Date(b.data.updated).getTime() - new Date(a.data.updated).getTime(),
-);
-const entries = videos.map((video) => ({
- href: video.data.link,
- title: video.data.id,
- description: video.data.description,
-}));
----
-
-
diff --git a/src/components/index.ts b/src/components/index.ts
index f99215e898a3558..b7db90400f97795 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -71,7 +71,6 @@ export { default as WorkersArchitectureDiagram } from "./WorkersArchitectureDiag
export { default as WorkersIsolateDiagram } from "./WorkersIsolateDiagram.astro";
export { default as WorkersTemplates } from "./WorkersTemplates.astro";
export { default as YouTube } from "./YouTube.astro";
-export { default as YouTubeVideos } from "./YouTubeVideos.astro";
// Taken from Astro
export { default as ListCard } from "./astro/ListCard.astro";
diff --git a/src/content/docs/ai-gateway/tutorials/index.mdx b/src/content/docs/ai-gateway/tutorials/index.mdx
index 26dfa14d5744d49..5f041387ba9d892 100644
--- a/src/content/docs/ai-gateway/tutorials/index.mdx
+++ b/src/content/docs/ai-gateway/tutorials/index.mdx
@@ -10,14 +10,8 @@ products:
- ai-gateway
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos } from "~/components";
+import { GlossaryTooltip, ListTutorials } from "~/components";
View tutorials to help you get started with AI Gateway.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/docs/cloudflare-one/video-tutorials.mdx b/src/content/docs/cloudflare-one/video-tutorials.mdx
index cd6651c8aa80dc5..cf3b7d2442b8482 100644
--- a/src/content/docs/cloudflare-one/video-tutorials.mdx
+++ b/src/content/docs/cloudflare-one/video-tutorials.mdx
@@ -39,6 +39,6 @@ import { CardGrid, LinkCard } from "~/components";
diff --git a/src/content/docs/d1/tutorials/index.mdx b/src/content/docs/d1/tutorials/index.mdx
index c4c6027e6698bd4..8234d2bdb52371f 100644
--- a/src/content/docs/d1/tutorials/index.mdx
+++ b/src/content/docs/d1/tutorials/index.mdx
@@ -9,14 +9,8 @@ products:
- d1
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos } from "~/components";
+import { GlossaryTooltip, ListTutorials } from "~/components";
View tutorials to help you get started with D1.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/docs/kv/tutorials/index.mdx b/src/content/docs/kv/tutorials/index.mdx
index 98469504b19f6fc..48874e6440362e6 100644
--- a/src/content/docs/kv/tutorials/index.mdx
+++ b/src/content/docs/kv/tutorials/index.mdx
@@ -9,14 +9,8 @@ products:
- kv
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos } from "~/components";
+import { GlossaryTooltip, ListTutorials } from "~/components";
View tutorials to help you get started with KV.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/docs/pages/tutorials/index.mdx b/src/content/docs/pages/tutorials/index.mdx
index 6941ec691fde1af..b3bca9a8cd0f985 100644
--- a/src/content/docs/pages/tutorials/index.mdx
+++ b/src/content/docs/pages/tutorials/index.mdx
@@ -1,5 +1,4 @@
---
-
pcx_content_type: navigation
title: Tutorials
description: Guided tutorials to help you build and deploy projects on Cloudflare Pages.
@@ -10,14 +9,8 @@ products:
- pages
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos } from "~/components";
+import { GlossaryTooltip, ListTutorials } from "~/components";
View tutorials to help you get started with Pages.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/docs/queues/tutorials/index.mdx b/src/content/docs/queues/tutorials/index.mdx
index 524c022b1936d6f..754a28acc0d7635 100644
--- a/src/content/docs/queues/tutorials/index.mdx
+++ b/src/content/docs/queues/tutorials/index.mdx
@@ -1,5 +1,4 @@
---
-
pcx_content_type: navigation
title: Tutorials
description: Step-by-step Cloudflare Queues tutorials for common messaging patterns.
@@ -10,12 +9,6 @@ products:
- queues
---
-import { ListTutorials, YouTubeVideos } from "~/components";
-
-## Docs
+import { ListTutorials } from "~/components";
-
-## Videos
-
-
diff --git a/src/content/docs/r2/tutorials/index.mdx b/src/content/docs/r2/tutorials/index.mdx
index 05b4938c1583cb9..aa217df841c3a3e 100644
--- a/src/content/docs/r2/tutorials/index.mdx
+++ b/src/content/docs/r2/tutorials/index.mdx
@@ -9,18 +9,8 @@ products:
- r2
---
-import {
- GlossaryTooltip,
- ListTutorials,
- YouTubeVideos,
-} from "~/components";
+import { GlossaryTooltip, ListTutorials } from "~/components";
View tutorials to help you get started with R2.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/docs/style-guide/components/external-resources.mdx b/src/content/docs/style-guide/components/external-resources.mdx
index a682de4fc91c1cc..608504cd4303b7e 100644
--- a/src/content/docs/style-guide/components/external-resources.mdx
+++ b/src/content/docs/style-guide/components/external-resources.mdx
@@ -7,7 +7,7 @@ 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) and [videos](https://github.com/cloudflare/cloudflare-docs/blob/production/src/content/videos/index.yaml).
+The `ExternalResources` component pulls from a central list of [apps](https://github.com/cloudflare/cloudflare-docs/blob/production/src/content/apps/index.yaml).
## Import
@@ -21,10 +21,8 @@ import { ExternalResources } from "~/components";
import { ExternalResources } from "~/components";
## Demo apps
-
-## Videos
-
+
```
## Props
@@ -33,9 +31,9 @@ import { ExternalResources } from "~/components";
**required**
-**type:** `"apps" | "videos"`
+**type:** `"apps"`
-The type of resources to show, apps or videos.
+The type of resources to show.
### `tags`
diff --git a/src/content/docs/style-guide/components/youtube-videos.mdx b/src/content/docs/style-guide/components/youtube-videos.mdx
deleted file mode 100644
index d40caa8d9d59236..000000000000000
--- a/src/content/docs/style-guide/components/youtube-videos.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: YouTube Videos
-styleGuide:
- component: YouTubeVideos
-description: Embed multiple YouTube videos in a grid.
-products:
- - style-guide
----
-
-## Usage
-
-```mdx live
-import { YouTubeVideos } from "~/components";
-
-
-```
-
-## `` Props
-
-### `products`
-
-**type:** `string[]`
-
-An array of products to show associated videos for.
-
-If not specified, the product where the component is used will be used.
diff --git a/src/content/docs/vectorize/tutorials/index.mdx b/src/content/docs/vectorize/tutorials/index.mdx
index 1316120ea473906..d950685615fe3dc 100644
--- a/src/content/docs/vectorize/tutorials/index.mdx
+++ b/src/content/docs/vectorize/tutorials/index.mdx
@@ -9,14 +9,8 @@ products:
- vectorize
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos } from "~/components";
+import { GlossaryTooltip, ListTutorials } from "~/components";
View tutorials to help you get started with Vectorize.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/docs/workers-ai/guides/tutorials/index.mdx b/src/content/docs/workers-ai/guides/tutorials/index.mdx
index a2f042aa78b3821..caec4e11f38b813 100644
--- a/src/content/docs/workers-ai/guides/tutorials/index.mdx
+++ b/src/content/docs/workers-ai/guides/tutorials/index.mdx
@@ -11,16 +11,8 @@ products:
- workers-ai
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos, Render } from "~/components";
+import { GlossaryTooltip, ListTutorials, Render } from "~/components";
View tutorials to help you get started with Workers AI.
-## Docs
-
-
-## Videos
-
-Also, explore our video resources on Workers AI:
-
-
diff --git a/src/content/docs/workers/tutorials/index.mdx b/src/content/docs/workers/tutorials/index.mdx
index ac188c9e795a6db..59da98f8a5b0cbb 100644
--- a/src/content/docs/workers/tutorials/index.mdx
+++ b/src/content/docs/workers/tutorials/index.mdx
@@ -9,14 +9,8 @@ products:
- workers
---
-import { GlossaryTooltip, ListTutorials, YouTubeVideos, Render } from "~/components";
+import { GlossaryTooltip, ListTutorials, Render } from "~/components";
View tutorials to help you get started with Workers.
-## Docs
-
-
-## Videos
-
-
diff --git a/src/content/videos/index.yaml b/src/content/videos/index.yaml
deleted file mode 100644
index a8485dde0eb50d7..000000000000000
--- a/src/content/videos/index.yaml
+++ /dev/null
@@ -1,296 +0,0 @@
-- link: https://www.youtube.com/watch?v=Id5oKCa__IA
- id: Tool Calling Also Known as Function Calling on Cloudflare Workers AI
- description: Tool calling, also known as function calling, is a powerful concept that lets you build Large Language Model based applications that can perform actions and retrieve external information from defined tools.
- tags: [AI]
- languages: [TypeScript]
- products: [Workers AI]
- cloudflare: true
- stream_id: 603e94c9803b4779dd612493c0dd7125
- author: craig
- updated: 2024-06-20
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=MlV9Kvkh9hw
- id: Build a URL Shortener with an AI-based admin section
- description: We are building a URL Shortener, shrty.dev, on Cloudflare. The apps uses Workers KV and Workers Analytics engine. Craig decided to build with Workers AI runWithTools to provide a chat interface for admins.
- tags: [Workers Analytics Engine, AI]
- products: [Workers AI, KV]
- languages: [TypeScript]
- cloudflare: true
- author: craig
- updated: 2024-07-01
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=dttu4QtKkO0
- id: Build Rust Powered Apps
- description: In this video, we will show you how to build a global database using workers-rs to keep track of every country and city you’ve visited.
- tags: []
- languages: [Rust]
- products: [Workers, KV]
- cloudflare: true
- author: confidence
- updated: 2024-06-25
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=GRpwVMkVmKo
- id: API Roll (Father's Day)
- description: This walks through how to use Workers AI with Hono and Zod to create a streaming pun generating API.
- tags: [AI, Hono]
- languages: [TypeScript]
- products: [Workers AI]
- cloudflare: true
- author: craig
- updated: 2024-06-15
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=MLbo7MGY_lU
- id: AI can see clearly now - Build Vision Apps on Cloudflare Workers AI
- description: The LlaVa model is hosted on Cloudflare Workers AI. Which means you are an API call away from brand new powerful vision use cases in all of your applications.
- tags: [AI]
- languages: [TypeScript]
- products: [Workers AI]
- cloudflare: true
- author: craig
- updated: 2024-06-11
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=QTsaAhFvX9o
- id: Stateful Apps with Cloudflare Workers
- description: Learn how to access external APIs, cache and retrieve data using Workers KV, and create SQL-driven applications with Cloudflare D1.
- tags: []
- languages: [TypeScript, SQL]
- products: [Workers, KV, D1]
- cloudflare: true
- author: kristian
- updated: 2024-05-22
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=5UTExUQ8Fwo
- id: Workers AI - Getting Started - Vanilla Chat App
- description: Get started building AI apps on Cloudflare using Pages and the GitHub starter template for a Vanilla JavaScript Chat App.
- tags: [AI]
- languages: [TypeScript]
- products: [Workers AI]
- cloudflare: true
- author: craig
- updated: 2024-04-17
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=H7Qe96fqg1M
- id: Learn Cloudflare Workers - Full Course for Beginners
- description: Learn how to build your first Cloudflare Workers application and deploy it to Cloudflare's global network.
- tags: []
- products: [Workers]
- languages: [TypeScript]
- cloudflare: true
- author: kristian
- updated: 2024-03-12
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=8SnrvAYAJ4Q
- id: Image Generation, Inpainting, and Vision Models
- description: Is that person you are about to swipe right on, actually real? Are they AI Generated?
- tags: [AI]
- products: [Workers AI]
- languages: [Python]
- cloudflare: true
- author: craig
- updated: 2024-03-08
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=9JM5Z0KzQsQ
- id: Learn AI Development (models, embeddings, vectors)
- description: In this workshop, Kristian Freeman, Cloudflare Developer Advocate, teaches the basics of AI Development - models, embeddings, and vectors (including vector databases).
- tags: [AI]
- products: [Workers AI, Workers, Vectorize]
- cloudflare: true
- author: kristian
- updated: 2023-12-14
- difficulty: Advanced
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=idKdjA8t0jw
- id: Optimize your AI App & fine-tune models (AI Gateway, R2)
- description: In this workshop, Kristian Freeman, Cloudflare Developer Advocate, shows how to optimize your existing AI applications with Cloudflare AI Gateway, and how to finetune OpenAI models using R2.
- tags: [AI]
- products: [Workers, R2, AI Gateway]
- languages: [JavaScript]
- cloudflare: true
- author: kristian
- updated: 2023-12-14
- difficulty: Advanced
- pcx_content_type: tutorial
-- link: https://www.youtube.com/watch?v=CHfKeFakGAI
- id: How to use Cloudflare AI models and inference in Python with Jupyter Notebooks
- description: Cloudflare Workers AI provides a ton of AI models and inference capabilities. In this video, we will explore how to make use of Cloudflare’s AI model catalog using a Python Jupyter Notebook.
- tags: [AI]
- languages: [Python]
- products: [Workers, AI Gateway]
- cloudflare: true
- author: craig
- updated: 2023-12-14
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/cK_leoJsBWY
- id: Cloudflare Workers AI, Building a "Hello, World" AI App!
- description: Cloudflare's Workers AI helps you add AI functionality to the apps you are building. In this video we show you how simple and straightforward it is to build the Hello World of AI apps in under 5 minutes.
- tags: [Workers, AI]
- languages: [TypeScript]
- products: [Workers AI]
- cloudflare: true
- stream_id: 0b251ede0256f04f24f9127587e0c3aa
- author: craig
- updated: 2024-09-11
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://youtu.be/9IjfyBJsJRQ
- id: Use Vectorize to add additional context to your AI Applications through RAG
- description: A RAG based AI Chat app that uses Vectorize to access video game data for employees of Gamertown.
- tags: [Workers, AI, Vectorize, RAG, Hono]
- languages: [TypeScript]
- products: [Workers, Workers AI, Vectorize]
- cloudflare: true
- # stream_id: 0b251ede0256f04f24f9127587e0c3aa
- author: craig
- updated: 2024-09-12
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/doKt9wWQF9A
- id: AI meets Maps | Using Cloudflare AI, Langchain, Mapbox, Folium and Streamlit
- description: Welcome to RouteMe, a smart tool that helps you plan the most efficient route between landmarks in any city. Powered by Cloudflare Workers AI, Langchain and Mapbox. This Streamlit webapp uses LLMs and Mapbox off my scripts API to solve the classic traveling salesman problem, turning your sightseeing into an optimized adventure!
- tags: [Workers, Workers AI]
- languages: [Python]
- products: [Workers, Workers AI]
- cloudflare: true
- stream_id: f610dee9aa20ec843b0e451b3014540a
- author: lizzie
- updated: 2024-09-16
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/bwJkwD-F0kQ
- id: Welcome to the Cloudflare Developer Channel
- description: Welcome to the Cloudflare Developers YouTube channel. We've got tutorials and working demos and everything you need to level up your projects. Whether you're working on your next big thing or just dorking around with some side projects, we've got you covered! So why don't you come hang out, subscribe to our developer channel and together we'll build something awesome. You're gonna love it.
- tags: [Workers, AI, Vectorize, RAG, Hono, D1, R2, AI Gateway]
- languages: [TypeScript, JavaScript, Python]
- products: [Workers, Workers AI, Vectorize, RAG, Hono, D1, R2, AI Gateway]
- cloudflare: true
- stream_id: 0fe3acaf4dc09ba0285b75af6602c362
- author: craig
- updated: 2024-09-18
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://youtu.be/10-kiyJNr8s
- id: Build a private AI chatbot using Meta's Llama 3.1
- description: In this video, you will learn how to set up a private AI chat powered by Llama 3.1 for secure, fast interactions, deploy the model on Cloudflare Workers for serverless, scalable performance and use Cloudflare's Workers AI for seamless integration and edge computing benefits.
- tags: [Workers, AI]
- languages: [TypeScript]
- products: [Workers, Workers AI]
- cloudflare: true
- # stream_id:
- author: confidence
- updated: 2024-10-07
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://youtu.be/W45MIi_t_go
- id: Building Front-End Applications | Now Supported by Cloudflare Workers
- description: You can now build front-end applications, just like you do on Cloudflare Pages, but with the added benefit of Workers.
- tags: [Workers, Workers AI]
- languages: [TypeScript]
- stream_id: 84039c66f18a34fa70cae7e2a0e70dae
- products: [Workers, Workers AI]
- cloudflare: true
- author: confidence
- updated: 2024-10-23
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://youtu.be/HXOpxNaKUzw
- id: How to Build Event-Driven Applications with Cloudflare Queues
- description: In this video, we demonstrate how to build an event-driven application using Cloudflare Queues. Event-driven system lets you decouple services, allowing them to process and scale independently.
- tags: [Workers, Queues]
- languages: [TypeScript]
- # stream_id:
- products: [Workers, Workers AI]
- cloudflare: true
- author: harshil
- updated: 2024-09-26
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/slS4RBV0SBk
- id: Cloudflare Workflows | Introduction (Part 1 of 3)
- description: In this video, we introduce Cloudflare Workflows, the Newest Developer Platform Primitive at Cloudflare.
- tags: [Workflows, Workers, Queues, Workers AI, AI Gateway, KV, D1]
- languages: [TypeScript]
- # stream_id:
- products: [Workflows, Workers, Queues, Workers AI, AI Gateway, KV, D1]
- cloudflare: true
- author: craig
- updated: 2024-10-30
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/y4PPsvHrQGA
- id: Cloudflare Workflows | Batching and Monitoring Your Durable Execution (Part 2 of 3)
- description: Workflows exposes metrics such as execution, error rates, steps, and total duration!
- tags: [Workflows, Workers, Queues, Workers AI, AI Gateway, KV, D1]
- languages: [TypeScript]
- # stream_id:
- products: [Workflows, Workers, Queues, Workers AI, AI Gateway, KV, D1]
- cloudflare: true
- author: craig
- updated: 2024-10-30
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/L6gR4Yr3UW8
- id: Cloudflare Workflows | Schedule and Sleep For Your Apps (Part 3 of 3)
- description: Cloudflare Workflows allows you to initiate sleep as an explicit step, which can be useful when you want a Workflow to wait, schedule work ahead, or pause until an input or other external state is ready.
- tags: [Workflows, Workers, Queues, Workers AI, AI Gateway, KV, D1]
- languages: [TypeScript]
- # stream_id:
- products: [Workers, Pages]
- cloudflare: true
- author: confidence
- updated: 2024-10-31
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://youtu.be/RmF05GpLE20
- id: DevTalk Episode 02 | Post-Quantum Cryptography
- description: Bas Westerbaan is Cloudflare’s Research Lead on Post-Quantum efforts. His work ranges from cryptographic implementation and standardization, to driving large-scale experiment and subsequent deployment.
- tags: [SSL]
- languages: [TypeScript]
- products: [SSL]
- cloudflare: true
- author: bas
- updated: 2024-11-14
- difficulty: Beginner
- pcx_content_type: tutorial
-- link: https://youtu.be/xu4Wb-IppmM
- id: OpenAI Relay Server on Cloudflare Workers
- description: In this video, Craig Dennis walks you through the deployment of OpenAI's relay server to use with their realtime API.
- tags: [Workers, Workers AI, Pages]
- languages: [TypeScript]
- products: [Workers, Workers AI, Pages]
- cloudflare: true
- author: craig
- updated: 2024-11-14
- difficulty: Intermediate
- pcx_content_type: tutorial
-- link: https://youtu.be/B2bLUc3iOsI
- id: Deploy your React App to Cloudflare Workers
- description: Learn how to deploy an existing React application to Cloudflare Workers.
- tags: [Workers, Pages]
- languages: [TypeScript]
- products: [Workers, Pages]
- cloudflare: true
- author: confidence
- updated: 2024-11-05
- difficulty: Intermediate
- pcx_content_type: tutorial
-# - link:
-# id:
-# description:
-# tags: [Workers]
-# languages: [TypeScript]
-# products: [Workers]
-# cloudflare: true
-# author:
-# updated:
-# difficulty: Intermediate
-# pcx_content_type: tutorial