diff --git a/public/__redirects b/public/__redirects
index e9790909939079a..293579d49b653dd 100644
--- a/public/__redirects
+++ b/public/__redirects
@@ -288,6 +288,11 @@
/browser-rendering/workers-binding-api/screenshots/ /browser-rendering/workers-bindings/screenshots/ 301
/browser-rendering/workers-binding-api/browser-rendering-with-do/ /browser-rendering/workers-bindings/browser-rendering-with-do/ 301
/browser-rendering/workers-binding-api/reuse-sessions/ /browser-rendering/workers-bindings/reuse-sessions/ 301
+/browser-rendering/platform/puppeteer/ /browser-rendering/puppeteer/ 301
+/browser-rendering/platform/playwright/ /browser-rendering/playwright/ 301
+/browser-rendering/platform/wrangler/ /browser-rendering/reference/wrangler/ 301
+/browser-rendering/platform/limits/ /browser-rendering/limits/ 301
+/browser-rendering/platform/pricing/ /browser-rendering/pricing/ 301
# byoip
/byoip/about/dynamic-advertisement/ /byoip/concepts/dynamic-advertisement/ 301
diff --git a/src/content/docs/ai-search/configuration/data-source/website.mdx b/src/content/docs/ai-search/configuration/data-source/website.mdx
index 836e8c4fe9c865a..5fc96c38bd780f5 100644
--- a/src/content/docs/ai-search/configuration/data-source/website.mdx
+++ b/src/content/docs/ai-search/configuration/data-source/website.mdx
@@ -51,7 +51,7 @@ If you have Security rules configured to block bot activity, you can add a rule
You can choose how pages are parsed during crawling:
- **Static sites**: Downloads the raw HTML for each page.
-- **Rendered sites**: Loads pages with a headless browser and downloads the fully rendered version, including dynamic JavaScript content. Note that the [Browser Rendering](/browser-rendering/platform/pricing/) limits and billing apply.
+- **Rendered sites**: Loads pages with a headless browser and downloads the fully rendered version, including dynamic JavaScript content. Note that the [Browser Rendering](/browser-rendering/pricing/) limits and billing apply.
## Storage
During setup, AI Search creates a dedicated R2 bucket in your account to store the pages that have been crawled and downloaded as HTML files. This bucket is automatically managed and is used only for content discovered by the crawler. Any files or objects that you add directly to this bucket will not be indexed.
diff --git a/src/content/docs/ai-search/platform/limits-pricing.mdx b/src/content/docs/ai-search/platform/limits-pricing.mdx
index e4c67e4b99987a7..47f17c4d15b3196 100644
--- a/src/content/docs/ai-search/platform/limits-pricing.mdx
+++ b/src/content/docs/ai-search/platform/limits-pricing.mdx
@@ -15,7 +15,7 @@ During the open beta, AI Search is **free to enable**. When you create an AI Sea
| [**Vectorize**](/vectorize/platform/pricing/) | Stores vector embeddings and powers semantic search |
| [**Workers AI**](/workers-ai/platform/pricing/) | Handles image-to-Markdown conversion, embedding, query rewriting, and response generation |
| [**AI Gateway**](/ai-gateway/reference/pricing/) | Monitors and controls model usage |
-| [**Browser Rendering**](/browser-rendering/platform/pricing/) | Loads dynamic JavaScript content during [website](/ai-search/configuration/data-source/website/) crawling with the Render option |
+| [**Browser Rendering**](/browser-rendering/pricing/) | Loads dynamic JavaScript content during [website](/ai-search/configuration/data-source/website/) crawling with the Render option |
For more information about how each resource is used within AI Search, reference [How AI Search works](/ai-search/concepts/how-ai-search-works/).
diff --git a/src/content/docs/browser-rendering/changelog.mdx b/src/content/docs/browser-rendering/changelog.mdx
index 40342bb09a67fa7..839b4a349629cf1 100644
--- a/src/content/docs/browser-rendering/changelog.mdx
+++ b/src/content/docs/browser-rendering/changelog.mdx
@@ -4,7 +4,7 @@ title: Changelog
release_notes_file_name:
- browser-rendering
sidebar:
- order: 9
+ order: 14
head: []
description: Review recent changes to Worker Browser Rendering.
---
diff --git a/src/content/docs/browser-rendering/faq.mdx b/src/content/docs/browser-rendering/faq.mdx
index 78187ce245f1207..e9f6e661ce88c11 100644
--- a/src/content/docs/browser-rendering/faq.mdx
+++ b/src/content/docs/browser-rendering/faq.mdx
@@ -2,7 +2,7 @@
title: FAQ
pcx_content_type: faq
sidebar:
- order: 8
+ order: 11
head:
- tag: title
content: Frequently asked questions about Cloudflare Browser Rendering
@@ -12,8 +12,8 @@ import { GlossaryTooltip, Render } from "~/components";
Below you will find answers to our most commonly asked questions about Browser Rendering.
-For pricing questions, visit the [pricing FAQ](/browser-rendering/platform/pricing/#faq).
-For usage limits questions, visit the [limits FAQ](/browser-rendering/platform/limits/#faq).
+For pricing questions, visit the [pricing FAQ](/browser-rendering/pricing/#faq).
+For usage limits questions, visit the [limits FAQ](/browser-rendering/limits/#faq).
If you cannot find the answer you are looking for, join us on [Discord](https://discord.cloudflare.com).
---
@@ -85,9 +85,9 @@ It may be because you increased the height and width of the viewport. To fix thi
### `Error processing the request: Unable to create new browser: code: 429: message: Browser time limit exceeded for today`
-This error indicates you have hit the daily browser-instance limit on the Workers Free plan. [Free-plan accounts are capped at free plan limit is 10 minutes of browser use a day](/browser-rendering/platform/limits/#workers-free) once you exceed those, further creation attempts return a 429 until the next UTC day.
+This error indicates you have hit the daily browser-instance limit on the Workers Free plan. [Free-plan accounts are capped at free plan limit is 10 minutes of browser use a day](/browser-rendering/limits/#workers-free) once you exceed those, further creation attempts return a 429 until the next UTC day.
-To resolve: [Upgrade to a Workers Paid plan](/workers/platform/pricing/) which allows for more than 10 minutes of usage a day and has higher [limits](/browser-rendering/platform/limits/#workers-paid). If you recently upgraded but still see this error, try redeploying your Worker to ensure your usage is correctly associated with your new plan.
+To resolve: [Upgrade to a Workers Paid plan](/workers/platform/pricing/) which allows for more than 10 minutes of usage a day and has higher [limits](/browser-rendering/limits/#workers-paid). If you recently upgraded but still see this error, try redeploying your Worker to ensure your usage is correctly associated with your new plan.
### `422 Unprocessable Entity`
diff --git a/src/content/docs/browser-rendering/get-started.mdx b/src/content/docs/browser-rendering/get-started.mdx
index 487c063e35f3312..52ec9478e2b530b 100644
--- a/src/content/docs/browser-rendering/get-started.mdx
+++ b/src/content/docs/browser-rendering/get-started.mdx
@@ -10,7 +10,7 @@ Cloudflare Browser Rendering allows you to programmatically control a headless b
There are two ways to use Browser Rendering:
- [REST API](/browser-rendering/rest-api/) for simple, one-off actions, like taking a screenshot, fetching HTML, or generating a PDF.
-- [Workers Bindings](/browser-rendering/workers-bindings/) for more complex, multi-step browser automation using [Puppeteer](/browser-rendering/platform/puppeteer/) and [Playwright](/browser-rendering/platform/playwright/).
+- [Workers Bindings](/browser-rendering/workers-bindings/) for more complex, multi-step browser automation using [Puppeteer](/browser-rendering/puppeteer/) and [Playwright](/browser-rendering/playwright/).
This guide will help you choose the right path for your needs and get you started with your first Browser Rendering project.
@@ -37,7 +37,7 @@ The REST API can also be used to:
## Workers Bindings
-Workers Bindings are best for situations where you need to build more complex, multi-step browser automation workflows. You can use familiar tools like [Puppeteer](/browser-rendering/platform/puppeteer/) and [Playwright](/browser-rendering/platform/playwright/).
+Workers Bindings are best for situations where you need to build more complex, multi-step browser automation workflows. You can use familiar tools like [Puppeteer](/browser-rendering/puppeteer/) and [Playwright](/browser-rendering/playwright/).
### Prerequisites
@@ -53,5 +53,5 @@ Workers Bindings are best for situations where you need to build more complex, m
If you have any feature requests or notice any bugs, share your feedback directly with the Cloudflare team by joining the [Cloudflare Developers community on Discord](https://discord.cloudflare.com/).
- Check out all the [REST API endpoints](/browser-rendering/rest-api/)
-- Try out the [Playwright MCP](/browser-rendering/platform/playwright-mcp/)
-- Learn more about Browser Rendering [limits](/browser-rendering/platform/limits/) and [pricing](/browser-rendering/platform/pricing/).
+- Try out the [Playwright MCP](/browser-rendering/playwright-mcp/)
+- Learn more about Browser Rendering [limits](/browser-rendering/limits/) and [pricing](/browser-rendering/pricing/).
diff --git a/src/content/docs/browser-rendering/how-to/index.mdx b/src/content/docs/browser-rendering/how-to/index.mdx
index 53af204ec292d95..302ef2098f3139f 100644
--- a/src/content/docs/browser-rendering/how-to/index.mdx
+++ b/src/content/docs/browser-rendering/how-to/index.mdx
@@ -2,7 +2,7 @@
title: Tutorials
pcx_content_type: navigation
sidebar:
- order: 4
+ order: 9
group:
hideIndex: true
---
diff --git a/src/content/docs/browser-rendering/how-to/pdf-generation.mdx b/src/content/docs/browser-rendering/how-to/pdf-generation.mdx
index ace49e44e73c7af..6e9ce226e427b80 100644
--- a/src/content/docs/browser-rendering/how-to/pdf-generation.mdx
+++ b/src/content/docs/browser-rendering/how-to/pdf-generation.mdx
@@ -12,11 +12,11 @@ As seen in [this Workers bindings guide](/browser-rendering/workers-bindings/scr
You can generate PDFs with Browser Rendering in two ways:
- **[REST API](/browser-rendering/rest-api/)**: Use the the [/pdf endpoint](/browser-rendering/rest-api/pdf-endpoint/). This is ideal if you don't need to customize rendering behavior.
-- **[Workers Bindings](/browser-rendering/workers-bindings/)**: Use [Puppeteer](/browser-rendering/platform/puppeteer/) or [Playwright](/browser-rendering/platform/playwright/) with Workers Bindings for additional control and customization.
+- **[Workers Bindings](/browser-rendering/workers-bindings/)**: Use [Puppeteer](/browser-rendering/puppeteer/) or [Playwright](/browser-rendering/playwright/) with Workers Bindings for additional control and customization.
Choose the method that best fits your use case.
-The following example shows you how to generate a PDF using [Puppeteer](/browser-rendering/platform/puppeteer/).
+The following example shows you how to generate a PDF using [Puppeteer](/browser-rendering/puppeteer/).
## Prerequisites
diff --git a/src/content/docs/browser-rendering/index.mdx b/src/content/docs/browser-rendering/index.mdx
index 6c1e186003639ca..43eecab0896d00a 100644
--- a/src/content/docs/browser-rendering/index.mdx
+++ b/src/content/docs/browser-rendering/index.mdx
@@ -84,7 +84,7 @@ Build and deploy AI-powered agents that can autonomously perform tasks.
Learn about Browser Rendering limits.
@@ -93,7 +93,7 @@ Build and deploy AI-powered agents that can autonomously perform tasks.
Learn about Browser Rendering pricing.
diff --git a/src/content/docs/browser-rendering/platform/limits.mdx b/src/content/docs/browser-rendering/limits.mdx
similarity index 89%
rename from src/content/docs/browser-rendering/platform/limits.mdx
rename to src/content/docs/browser-rendering/limits.mdx
index a385d63055b98c2..4c038732d8534ba 100644
--- a/src/content/docs/browser-rendering/platform/limits.mdx
+++ b/src/content/docs/browser-rendering/limits.mdx
@@ -3,7 +3,7 @@ pcx_content_type: configuration
title: Limits
description: Learn about the limits associated with Browser Rendering.
sidebar:
- order: 30
+ order: 12
---
import { Render, Plan, Tabs, TabItem, DashButton } from "~/components";
@@ -30,7 +30,7 @@ To increase this limit, go to the **Compute (Workers) > Workers plans** page in
[^1]: Rate limits are enforced with a fixed **per-second fill rate**. For example, a limit of 60 requests per minute translates to **1 request per second**. This means you cannot send all 60 requests at once; the API expects them to be spread evenly over the minute. If your account has a custom higher limit, it will also be enforced as a per-second rate.
:::note[Note on browser timeout]
-By default, a browser will time out if it does not get any [devtools](https://chromedevtools.github.io/devtools-protocol/) command for 60 seconds, freeing one instance. Users can optionally increase this by using the [`keep_alive` option](/browser-rendering/platform/puppeteer/#keep-alive). `browser.close()` releases the browser instance.
+By default, a browser will time out if it does not get any [devtools](https://chromedevtools.github.io/devtools-protocol/) command for 60 seconds, freeing one instance. Users can optionally increase this by using the [`keep_alive` option](/browser-rendering/puppeteer/#keep-alive). `browser.close()` releases the browser instance.
:::
## Workers Paid
@@ -50,7 +50,7 @@ The limits for Browser Rendering will continue to be raised over time. In the me
[^2]: Contact our team to request increases to this limit.
:::note[Note on browser timeout]
-By default, a browser will time out if it does not get any [devtools](https://chromedevtools.github.io/devtools-protocol/) command for 60 seconds, freeing one instance. Users can optionally increase this by using the [`keep_alive` option](/browser-rendering/platform/puppeteer/#keep-alive). `browser.close()` releases the browser instance.
+By default, a browser will time out if it does not get any [devtools](https://chromedevtools.github.io/devtools-protocol/) command for 60 seconds, freeing one instance. Users can optionally increase this by using the [`keep_alive` option](/browser-rendering/puppeteer/#keep-alive). `browser.close()` releases the browser instance.
:::
## Note on concurrency
@@ -70,11 +70,11 @@ To upgrade, go to the **Compute (Workers) > Workers plans** page in the Cloudfla
### Can I increase the browser timeout?
-By default, a browser instance will time out after 60 seconds of inactivity. If you want to keep the browser open longer, you can use the [`keep_alive` option](/browser-rendering/platform/puppeteer/#keep-alive) which allows you to extend the timeout to up to 10 minutes.
+By default, a browser instance will time out after 60 seconds of inactivity. If you want to keep the browser open longer, you can use the [`keep_alive` option](/browser-rendering/puppeteer/#keep-alive) which allows you to extend the timeout to up to 10 minutes.
### Is there a maximum session duration?
-There is no fixed maximum lifetime for a browser session as long as it remains active. By default, Browser Rendering closes sessions after 1 minute of inactivity to prevent unintended usage. You can [increase this inactivity timeout](/browser-rendering/platform/puppeteer/#keep-alive) to up to 10 minutes.
+There is no fixed maximum lifetime for a browser session as long as it remains active. By default, Browser Rendering closes sessions after 1 minute of inactivity to prevent unintended usage. You can [increase this inactivity timeout](/browser-rendering/puppeteer/#keep-alive) to up to 10 minutes.
If you need sessions to remain open longer, keep them active by sending a command at least once within your configured inactivity window (for example, every 10 minutes). Sessions also close when Browser Rendering rolls out a new release.
@@ -85,7 +85,7 @@ If you recently upgraded to the [Workers Paid plan](/workers/platform/pricing/)
### Error: `429 Too many requests`
When you make too many requests in a short period of time, Browser Rendering will respond with HTTP status code `429 Too many requests`.
-The response includes a `Retry-After` header, which specifies how many seconds to wait before retrying. You can view your account's rate limits on the [Limits](/browser-rendering/platform/limits/) page.
+The response includes a `Retry-After` header, which specifies how many seconds to wait before retrying. You can view your account's rate limits on the [Limits](/browser-rendering/limits/) page.
The example below demonstrates how to handle rate limiting gracefully by reading the `Retry-After` value and retrying the request after that delay.
@@ -141,9 +141,9 @@ try {
### Error: `429 Browser time limit exceeded for today`
-This `Error processing the request: Unable to create new browser: code: 429: message: Browser time limit exceeded for today` indicates you have hit the daily browser limit on the Workers Free plan. [Workers Free plan accounts are limited](/browser-rendering/platform/limits/#workers-free) to 10 minutes of browser rendering usage per day. If you exceed that limit, you will receive a `429` error until the next UTC day.
+This `Error processing the request: Unable to create new browser: code: 429: message: Browser time limit exceeded for today` indicates you have hit the daily browser limit on the Workers Free plan. [Workers Free plan accounts are limited](/browser-rendering/limits/#workers-free) to 10 minutes of browser rendering usage per day. If you exceed that limit, you will receive a `429` error until the next UTC day.
-You can [increase your limits](/browser-rendering/platform/limits/#workers-paid) by upgrading to a Workers Paid plan on the **Workers plans** page of the Cloudflare dashboard:
+You can [increase your limits](/browser-rendering/limits/#workers-paid) by upgrading to a Workers Paid plan on the **Workers plans** page of the Cloudflare dashboard:
diff --git a/src/content/docs/browser-rendering/platform/index.mdx b/src/content/docs/browser-rendering/platform/index.mdx
deleted file mode 100644
index 1b54a03e0c44f14..000000000000000
--- a/src/content/docs/browser-rendering/platform/index.mdx
+++ /dev/null
@@ -1,12 +0,0 @@
----
-pcx_content_type: navigation
-title: Platform
-sidebar:
- order: 4
- group:
- hideIndex: true
----
-
-import { DirectoryListing } from "~/components";
-
-
diff --git a/src/content/docs/browser-rendering/platform/playwright.mdx b/src/content/docs/browser-rendering/playwright/index.mdx
similarity index 98%
rename from src/content/docs/browser-rendering/platform/playwright.mdx
rename to src/content/docs/browser-rendering/playwright/index.mdx
index 05987051b8e32fb..0002b4517be9926 100644
--- a/src/content/docs/browser-rendering/platform/playwright.mdx
+++ b/src/content/docs/browser-rendering/playwright/index.mdx
@@ -34,7 +34,7 @@ If you want to skip the steps and get started quickly, select **Deploy to Cloudf
[](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/playwright/tree/main/packages/playwright-cloudflare/examples/todomvc)
-Make sure you have the [browser binding](/browser-rendering/platform/wrangler/#bindings) configured in your `wrangler.toml` file:
+Make sure you have the [browser binding](/browser-rendering/reference/wrangler/#bindings) configured in your `wrangler.toml` file:
:::note
To use the latest version of `@cloudflare/playwright`, your Worker configuration must include the `nodejs_compat` compatibility flag and a `compatibility_date` of 2025-09-15 or later. This change is necessary because the library's functionality requires the native `node.fs` API.
@@ -340,7 +340,7 @@ Notice that the session `478f4d7d-e943-40f6-a414-837d3736a1dc` has an active wor
]
```
-Session `2be00a21-9fb6-4bb2-9861-8cd48e40e771` was closed explicitly with `browser.close()` by the client, while session `478f4d7d-e943-40f6-a414-837d3736a1dc` was closed due to reaching the maximum idle time (check [limits](/browser-rendering/platform/limits/)).
+Session `2be00a21-9fb6-4bb2-9861-8cd48e40e771` was closed explicitly with `browser.close()` by the client, while session `478f4d7d-e943-40f6-a414-837d3736a1dc` was closed due to reaching the maximum idle time (check [limits](/browser-rendering/limits/)).
You should also be able to access this information in the dashboard, albeit with a slight delay.
@@ -362,7 +362,7 @@ You should also be able to access this information in the dashboard, albeit with
- `activeSessions` lists the IDs of the current open sessions
- `maxConcurrentSessions` defines how many browsers can be open at the same time
-- `allowedBrowserAcquisitions` specifies if a new browser session can be opened according to the rate [limits](/browser-rendering/platform/limits/) in place
+- `allowedBrowserAcquisitions` specifies if a new browser session can be opened according to the rate [limits](/browser-rendering/limits/) in place
- `timeUntilNextAllowedBrowserAcquisition` defines the waiting period before a new browser can be launched.
## Playwright API
diff --git a/src/content/docs/browser-rendering/platform/playwright-mcp.mdx b/src/content/docs/browser-rendering/playwright/playwright-mcp.mdx
similarity index 100%
rename from src/content/docs/browser-rendering/platform/playwright-mcp.mdx
rename to src/content/docs/browser-rendering/playwright/playwright-mcp.mdx
diff --git a/src/content/docs/browser-rendering/platform/pricing.mdx b/src/content/docs/browser-rendering/pricing.mdx
similarity index 96%
rename from src/content/docs/browser-rendering/platform/pricing.mdx
rename to src/content/docs/browser-rendering/pricing.mdx
index 80e87ea4bd856f4..6c0a1621cf95ba5 100644
--- a/src/content/docs/browser-rendering/platform/pricing.mdx
+++ b/src/content/docs/browser-rendering/pricing.mdx
@@ -2,7 +2,7 @@
pcx_content_type: configuration
title: Pricing
sidebar:
- order: 31
+ order: 13
---
import { DashButton } from "~/components"
@@ -60,7 +60,7 @@ You can monitor Browser Rendering usage in two ways:
const browserMsUsed = parseInt(contentRes.headers.get('X-Browser-Ms-Used') || '');
```
-Then, you can use [the pricing page](/browser-rendering/platform/pricing/) to estimate your costs based on your usage.
+Then, you can use [the pricing page](/browser-rendering/pricing/) to estimate your costs based on your usage.
### Do failed API calls, such as those that time out, add to billable browser hours?
No. If a request to the Browser Rendering REST API fails with a `waitForTimeout` error, the browser session is not charged.
diff --git a/src/content/docs/browser-rendering/platform/puppeteer.mdx b/src/content/docs/browser-rendering/puppeteer.mdx
similarity index 95%
rename from src/content/docs/browser-rendering/platform/puppeteer.mdx
rename to src/content/docs/browser-rendering/puppeteer.mdx
index 7ed91d8163f0612..589978353160bf9 100644
--- a/src/content/docs/browser-rendering/platform/puppeteer.mdx
+++ b/src/content/docs/browser-rendering/puppeteer.mdx
@@ -3,7 +3,7 @@ pcx_content_type: concept
title: Puppeteer
description: Learn how to use Puppeteer with Cloudflare Workers for browser automation. Access Puppeteer API, manage sessions, and optimize browser rendering.
sidebar:
- order: 10
+ order: 7
---
import { PackageManagers, TypeScriptExample } from "~/components";
@@ -20,7 +20,7 @@ Our version is open sourced and can be found in [Cloudflare's fork of Puppeteer]
## Use Puppeteer in a Worker
-Once the [browser binding](/browser-rendering/platform/wrangler/#bindings) is configured and the `@cloudflare/puppeteer` library is installed, Puppeteer can be used in a Worker:
+Once the [browser binding](/browser-rendering/reference/wrangler/#bindings) is configured and the `@cloudflare/puppeteer` library is installed, Puppeteer can be used in a Worker:
@@ -119,7 +119,7 @@ Notice that the session `478f4d7d-e943-40f6-a414-837d3736a1dc` has an active wor
]
```
-Session `2be00a21-9fb6-4bb2-9861-8cd48e40e771` was closed explicitly with `browser.close()` by the client, while session `478f4d7d-e943-40f6-a414-837d3736a1dc` was closed due to reaching the maximum idle time (check [limits](/browser-rendering/platform/limits/)).
+Session `2be00a21-9fb6-4bb2-9861-8cd48e40e771` was closed explicitly with `browser.close()` by the client, while session `478f4d7d-e943-40f6-a414-837d3736a1dc` was closed due to reaching the maximum idle time (check [limits](/browser-rendering/limits/)).
You should also be able to access this information in the dashboard, albeit with a slight delay.
@@ -141,7 +141,7 @@ You should also be able to access this information in the dashboard, albeit with
- `activeSessions` lists the IDs of the current open sessions
- `maxConcurrentSessions` defines how many browsers can be open at the same time
-- `allowedBrowserAcquisitions` specifies if a new browser session can be opened according to the rate [limits](/browser-rendering/platform/limits/) in place
+- `allowedBrowserAcquisitions` specifies if a new browser session can be opened according to the rate [limits](/browser-rendering/limits/) in place
- `timeUntilNextAllowedBrowserAcquisition` defines the waiting period before a new browser can be launched.
## Puppeteer API
diff --git a/src/content/docs/browser-rendering/platform/browser-close-reasons.mdx b/src/content/docs/browser-rendering/reference/browser-close-reasons.mdx
similarity index 89%
rename from src/content/docs/browser-rendering/platform/browser-close-reasons.mdx
rename to src/content/docs/browser-rendering/reference/browser-close-reasons.mdx
index 41d880887e87d1f..f8915f62bf2bf41 100644
--- a/src/content/docs/browser-rendering/platform/browser-close-reasons.mdx
+++ b/src/content/docs/browser-rendering/reference/browser-close-reasons.mdx
@@ -2,7 +2,7 @@
pcx_content_type: configuration
title: Browser close reasons
sidebar:
- order: 30
+ order: 10
---
import { DashButton } from "~/components";
@@ -17,7 +17,7 @@ To find the reason that a browser closed:
2. Select the **Logs** tab.
-Browser Rendering sessions are billed based on [usage](/browser-rendering/platform/pricing/). We do not charge for sessions that error due to underlying Browser Rendering infrastructure.
+Browser Rendering sessions are billed based on [usage](/browser-rendering/pricing/). We do not charge for sessions that error due to underlying Browser Rendering infrastructure.
| Reasons a session may end |
| ---------------------------------------------------- |
diff --git a/src/content/docs/browser-rendering/reference/index.mdx b/src/content/docs/browser-rendering/reference/index.mdx
index 9b1cc7d46c86fd1..c314563af51da54 100644
--- a/src/content/docs/browser-rendering/reference/index.mdx
+++ b/src/content/docs/browser-rendering/reference/index.mdx
@@ -2,7 +2,7 @@
pcx_content_type: reference
title: Reference
sidebar:
- order: 7
+ order: 10
group:
hideIndex: true
---
diff --git a/src/content/docs/browser-rendering/reference/supported-fonts.mdx b/src/content/docs/browser-rendering/reference/supported-fonts.mdx
index 2253aba4a31316a..eec233371bb68f8 100644
--- a/src/content/docs/browser-rendering/reference/supported-fonts.mdx
+++ b/src/content/docs/browser-rendering/reference/supported-fonts.mdx
@@ -70,7 +70,7 @@ Browser Rendering includes additional font packages for non-Latin scripts and em
If a required font is not pre-installed, you can inject it into the page at render time using `addStyleTag`. This allows you to load fonts from an external URL or embed them directly as a Base64 string.
-Example with [Puppeteer](/browser-rendering/platform/puppeteer/) and a CDN source:
+Example with [Puppeteer](/browser-rendering/puppeteer/) and a CDN source:
```js
const browser = await puppeteer.launch(env.MYBROWSER);
@@ -92,7 +92,7 @@ await page.addStyleTag({
```
-Example with [Puppeteer](/browser-rendering/platform/puppeteer/) and a CDN source:
+Example with [Puppeteer](/browser-rendering/puppeteer/) and a CDN source:
```ts
const browser = await puppeteer.launch(env.MYBROWSER);
@@ -117,7 +117,7 @@ await page.addStyleTag({
-Example with [Playwright](/browser-rendering/platform/playwright/) and a Base64 encoded data source:
+Example with [Playwright](/browser-rendering/playwright/) and a Base64 encoded data source:
```js
const browser = await playwright.launch(env.MYBROWSER);
@@ -139,7 +139,7 @@ await page.addStyleTag({
```
-Example with [Playwright](/browser-rendering/platform/playwright/) and a Base64 encoded data source:
+Example with [Playwright](/browser-rendering/playwright/) and a Base64 encoded data source:
```ts
const browser = await playwright.launch(env.MYBROWSER);
diff --git a/src/content/docs/browser-rendering/platform/wrangler.mdx b/src/content/docs/browser-rendering/reference/wrangler.mdx
similarity index 100%
rename from src/content/docs/browser-rendering/platform/wrangler.mdx
rename to src/content/docs/browser-rendering/reference/wrangler.mdx
diff --git a/src/content/docs/browser-rendering/rest-api/index.mdx b/src/content/docs/browser-rendering/rest-api/index.mdx
index 936520ff9a3b2e4..b0f277f4c453efb 100644
--- a/src/content/docs/browser-rendering/rest-api/index.mdx
+++ b/src/content/docs/browser-rendering/rest-api/index.mdx
@@ -2,7 +2,7 @@
pcx_content_type: navigation
title: REST API
sidebar:
- order: 2
+ order: 3
---
import { DashButton } from "~/components";
diff --git a/src/content/docs/browser-rendering/platform/stagehand.mdx b/src/content/docs/browser-rendering/stagehand.mdx
similarity index 99%
rename from src/content/docs/browser-rendering/platform/stagehand.mdx
rename to src/content/docs/browser-rendering/stagehand.mdx
index 112ce7420f9ab09..811fb383309a56b 100644
--- a/src/content/docs/browser-rendering/platform/stagehand.mdx
+++ b/src/content/docs/browser-rendering/stagehand.mdx
@@ -3,7 +3,7 @@ pcx_content_type: concept
title: Stagehand
description: Deploy a Stagehand server that uses Browser Rendering to provide browser automation capabilities to your agents.
sidebar:
- order: 7
+ order: 8
badge: Beta
---
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 d63af63ba3d59bb..a30de154296cf43 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
@@ -34,7 +34,7 @@ Create a new Worker project named `browser-worker` by running:
## 2. Install Puppeteer
-In your `browser-worker` directory, install Cloudflare’s [fork of Puppeteer](/browser-rendering/platform/puppeteer/):
+In your `browser-worker` directory, install Cloudflare’s [fork of Puppeteer](/browser-rendering/puppeteer/):
diff --git a/src/content/docs/browser-rendering/workers-bindings/index.mdx b/src/content/docs/browser-rendering/workers-bindings/index.mdx
index b80c1f0124eb72f..d637cff9dd56b1e 100644
--- a/src/content/docs/browser-rendering/workers-bindings/index.mdx
+++ b/src/content/docs/browser-rendering/workers-bindings/index.mdx
@@ -4,7 +4,7 @@ title: Workers Bindings
tags:
- Bindings
sidebar:
- order: 2
+ order: 4
---
import { DirectoryListing } from "~/components";
diff --git a/src/content/docs/browser-rendering/workers-bindings/reuse-sessions.mdx b/src/content/docs/browser-rendering/workers-bindings/reuse-sessions.mdx
index 084386f8c5917d7..1e3cd21cbc6cf71 100644
--- a/src/content/docs/browser-rendering/workers-bindings/reuse-sessions.mdx
+++ b/src/content/docs/browser-rendering/workers-bindings/reuse-sessions.mdx
@@ -35,7 +35,7 @@ Create a new Worker project named `browser-worker` by running:
## 2. Install Puppeteer
-In your `browser-worker` directory, install Cloudflare's [fork of Puppeteer](/browser-rendering/platform/puppeteer/):
+In your `browser-worker` directory, install Cloudflare's [fork of Puppeteer](/browser-rendering/puppeteer/):
@@ -59,7 +59,7 @@ browser = { binding = "MYBROWSER" }
The script below starts by fetching the current running sessions. If there are any that don't already have a worker connection, it picks a random session ID and attempts to connect (`puppeteer.connect(..)`) to it. If that fails or there were no running sessions to start with, it launches a new browser session (`puppeteer.launch(..)`). Then, it goes to the website and fetches the dom. Once that's done, it disconnects (`browser.disconnect()`), making the connection available to other workers.
-Take into account that if the browser is idle, i.e. does not get any command, for more than the current [limit](/browser-rendering/platform/limits/), it will close automatically, so you must have enough requests per minute to keep it alive.
+Take into account that if the browser is idle, i.e. does not get any command, for more than the current [limit](/browser-rendering/limits/), it will close automatically, so you must have enough requests per minute to keep it alive.
@@ -140,7 +140,7 @@ export default {
-Besides `puppeteer.sessions()`, we have added other methods to facilitate [Session Management](/browser-rendering/platform/puppeteer/#session-management).
+Besides `puppeteer.sessions()`, we have added other methods to facilitate [Session Management](/browser-rendering/puppeteer/#session-management).
## 5. Test
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 6c1d4dd8de18885..1d03905b3ea8077 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
@@ -17,7 +17,7 @@ description: Example of how to use Queues and Browser Rendering to power a web c
import { Render, PackageManagers, WranglerConfig } from "~/components";
-This tutorial explains how to build and deploy a web crawler with Queues, [Browser Rendering](/browser-rendering/), and [Puppeteer](/browser-rendering/platform/puppeteer/).
+This tutorial explains how to build and deploy a web crawler with Queues, [Browser Rendering](/browser-rendering/), and [Puppeteer](/browser-rendering/puppeteer/).
Puppeteer is a high-level library used to automate interactions with Chrome/Chromium browsers. On each submitted page, the crawler will find the number of links to `cloudflare.com` and take a screenshot of the site, saving results to [Workers KV](/kv/).
@@ -104,7 +104,7 @@ kv_namespaces = [
Now, you need to set up your Worker for Browser Rendering.
-In your current directory, install Cloudflare’s [fork of Puppeteer](/browser-rendering/platform/puppeteer/) and also [robots-parser](https://www.npmjs.com/package/robots-parser):
+In your current directory, install Cloudflare's [fork of Puppeteer](/browser-rendering/puppeteer/) and also [robots-parser](https://www.npmjs.com/package/robots-parser):