Skip to content

Commit 8210b1b

Browse files
dcpenaGregBrimble
andauthored
[Workers] Added footnotes component & legend (#17634)
* Added footnotes component & legend * Tiny tweaks to compat matrix details --------- Co-authored-by: Greg Brimble <[email protected]>
1 parent bb0abad commit 8210b1b

File tree

1 file changed

+68
-77
lines changed

1 file changed

+68
-77
lines changed

src/content/docs/workers/static-assets/compatibility-matrix.mdx

Lines changed: 68 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -11,99 +11,90 @@ import {
1111
Badge,
1212
Description,
1313
FileTree,
14+
Footnotes,
1415
InlineBadge,
1516
Render,
1617
TabItem,
1718
Tabs,
1819
} from "~/components";
1920

20-
You can deploy full-stack applications, including front-end static assets and back-end APIs and server-side rendered pages (SSR), to both Cloudflare [Workers](/workers/static-assets/) and [Pages](/pages/). The compatibility matrix below shows which features are available for each, to help you choose whether to build with Workers or Pages. Unless otherwise stated below, what works in Pages works in Workers, and what works in Workers works in Pages. Think something is missing from this list? [Open a pull request](https://github.com/cloudflare/cloudflare-docs/edit/production/src/content/docs/workers/static-assets/compatibility-matrix.mdx) or [create a GitHub issue](https://github.com/cloudflare/cloudflare-docs/issues/new).
21+
You can deploy full-stack applications, including front-end static assets and back-end APIs, as well as server-side rendered pages (SSR), to both Cloudflare [Workers](/workers/static-assets/) and [Pages](/pages/). The compatibility matrix below shows which features are available for each, to help you choose whether to build with Workers or Pages. Unless otherwise stated below, what works in Pages works in Workers, and what works in Workers works in Pages. Think something is missing from this list? [Open a pull request](https://github.com/cloudflare/cloudflare-docs/edit/production/src/content/docs/workers/static-assets/compatibility-matrix.mdx) or [create a GitHub issue](https://github.com/cloudflare/cloudflare-docs/issues/new).
2122

2223
We plan to bridge the gaps between Workers and Pages and provide ways to migrate your Pages projects to Workers.
2324

25+
**Legend**
26+
✅: Supported <br />
27+
⏳: Coming soon <br />
28+
🟡: Unsupported, workaround available <br />
29+
❌: Unsupported
2430

25-
| | Workers | Pages |
26-
| ----------------------------------------------------------------------------------- | ------------------------ | ----- |
27-
| **Writing, Testing, and Deploying Code** | | |
28-
| [Rollbacks](/workers/configuration/versions-and-deployments/rollbacks/) | ||
29-
| [Gradual Deployments](/workers/configuration/versions-and-deployments/) | ||
30-
| [Preview URLs](/workers/configuration/previews) | ||
31-
| [Testing tools](/workers/testing) | ||
32-
| [Local Development](/workers/testing/local-development/) | ||
33-
| [Remote Development (`--remote`)](/workers/wrangler/commands/) |<sup>1</sup> ||
34-
| [Quick Editor in Dashboard](https://blog.cloudflare.com/improved-quick-edit) | ||
35-
| **Static Assets** | | |
36-
| [Early Hints](/pages/configuration/early-hints/) | ||
37-
| [Custom HTTP headers for static assets](/pages/configuration/headers/) | 🟡 <sup>2</sup> ||
38-
| [Middleware](/pages/functions/middleware/) | 🟡 <sup>3</sup> ||
39-
| [Redirects](/pages/configuration/redirects/) | 🟡 <sup>4</sup> ||
40-
| [Smart Placement](/workers/configuration/smart-placement/) |<sup>5</sup> ||
41-
| **Observability** | | |
42-
| [Workers Logs](/workers/observability/) | ||
43-
| [Logpush](/workers/observability/logs/logpush/) | ||
44-
| [Tail Workers](/workers/observability/logs/tail-workers/) |<sup>6</sup> ||
45-
| [Real-time logs](/workers/observability/logs/real-time-logs/) | ||
46-
| **Runtime APIs & Compute Models** | | |
47-
| [Node.js Compatibility Mode](/workers/runtime-apis/nodejs/) | ||
48-
| [Durable Objects](/durable-objects/api/) | | 🟡 <sup>7</sup> |
49-
| [Cron Triggers](/workers/configuration/cron-triggers/) | ||
50-
| **Bindings** | | |
51-
| [AI](/workers-ai/get-started/workers-wrangler/#2-connect-your-worker-to-workers-ai) | ||
52-
| [Analytics Engine](/analytics/analytics-engine) | ||
53-
| [Assets](/workers/static-assets/binding/) | | |
54-
| [Browser Rendering](/browser-rendering) | ||
55-
| [D1](/d1/build-with-d1/d1-client-api/) | ||
56-
| [Environment Variables](/workers/configuration/environment-variables/) | ||
57-
| [Hyperdrive](/hyperdrive/) | ||
58-
| [KV](/kv/) | ||
59-
| [mTLS](/workers/runtime-apis/bindings/mtls/) | ||
60-
| [Queue Producers](/queues/configuration/configure-queues/#producer) | ||
61-
| [Queue Consumers](/queues/configuration/configure-queues/#consumer) | ||
62-
| [R2](/r2/) | ||
63-
| [Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) | ||
64-
| [Secrets](/workers/configuration/secrets/) | ||
65-
| [Service bindings](/workers/runtime-apis/bindings/service-bindings/) | ||
66-
| [Vectorize](/vectorize/get-started/intro/#3-bind-your-worker-to-your-index) | ||
67-
| **Builds (CI/CD)** | | |
68-
| [Monorepos](/workers/ci-cd/builds/advanced-setups/) | ||
69-
| [Build Watch Paths](/pages/configuration/build-watch-paths/) | ||
70-
| [Deploy Hooks](/pages/configuration/deploy-hooks/) | ||
71-
| [Build Caching](/pages/configuration/build-caching/) | ||
72-
| [Custom Preview Branches](/pages/configuration/branch-build-controls/) | ||
73-
| [Custom Branch Aliases](/pages/how-to/custom-branch-aliases/) | ||
74-
| **Pages Functions** | | |
75-
| [File-based Routing](/pages/functions/routing/) |<sup>8</sup> ||
76-
| [Pages Plugins](/pages/functions/plugins/) |<sup>9</sup> ||
31+
| | Workers | Pages |
32+
| ----------------------------------------------------------------------------------- | ------- | ------- |
33+
| **Writing, Testing, and Deploying Code** | | |
34+
| [Rollbacks](/workers/configuration/versions-and-deployments/rollbacks/) || |
35+
| [Gradual Deployments](/workers/configuration/versions-and-deployments/) || |
36+
| [Preview URLs](/workers/configuration/previews) || |
37+
| [Testing tools](/workers/testing) || |
38+
| [Local Development](/workers/testing/local-development/) || |
39+
| [Remote Development (`--remote`)](/workers/wrangler/commands/) |[^1] | |
40+
| [Quick Editor in Dashboard](https://blog.cloudflare.com/improved-quick-edit) || |
41+
| **Static Assets** | | |
42+
| [Early Hints](/pages/configuration/early-hints/) || |
43+
| [Custom HTTP headers for static assets](/pages/configuration/headers/) | 🟡 [^2] | |
44+
| [Middleware](/pages/functions/middleware/) | 🟡 [^3] | |
45+
| [Redirects](/pages/configuration/redirects/) | 🟡 [^4] | |
46+
| [Smart Placement](/workers/configuration/smart-placement/) |[^5] | |
47+
| **Observability** | | |
48+
| [Workers Logs](/workers/observability/) || |
49+
| [Logpush](/workers/observability/logs/logpush/) || |
50+
| [Tail Workers](/workers/observability/logs/tail-workers/) |[^6] | |
51+
| [Real-time logs](/workers/observability/logs/real-time-logs/) || |
52+
| **Runtime APIs & Compute Models** | | |
53+
| [Node.js Compatibility Mode](/workers/runtime-apis/nodejs/) || |
54+
| [Durable Objects](/durable-objects/api/) || 🟡 [^7] |
55+
| [Cron Triggers](/workers/configuration/cron-triggers/) || |
56+
| **Bindings** | | |
57+
| [AI](/workers-ai/get-started/workers-wrangler/#2-connect-your-worker-to-workers-ai) || |
58+
| [Analytics Engine](/analytics/analytics-engine) || |
59+
| [Assets](/workers/static-assets/binding/) || |
60+
| [Browser Rendering](/browser-rendering) || |
61+
| [D1](/d1/build-with-d1/d1-client-api/) || |
62+
| [Environment Variables](/workers/configuration/environment-variables/) || |
63+
| [Hyperdrive](/hyperdrive/) || |
64+
| [KV](/kv/) || |
65+
| [mTLS](/workers/runtime-apis/bindings/mtls/) || |
66+
| [Queue Producers](/queues/configuration/configure-queues/#producer) || |
67+
| [Queue Consumers](/queues/configuration/configure-queues/#consumer) || |
68+
| [R2](/r2/) || |
69+
| [Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) || |
70+
| [Secrets](/workers/configuration/secrets/) || |
71+
| [Service bindings](/workers/runtime-apis/bindings/service-bindings/) || |
72+
| [Vectorize](/vectorize/get-started/intro/#3-bind-your-worker-to-your-index) || |
73+
| **Builds (CI/CD)** | | |
74+
| [Monorepos](/workers/ci-cd/builds/advanced-setups/) || |
75+
| [Build Watch Paths](/pages/configuration/build-watch-paths/) | | |
76+
| [Deploy Hooks](/pages/configuration/deploy-hooks/) || |
77+
| [Build Caching](/pages/configuration/build-caching/) || |
78+
| [Custom Preview Branches](/pages/configuration/branch-build-controls/) || |
79+
| [Custom Branch Aliases](/pages/how-to/custom-branch-aliases/) || |
80+
| **Pages Functions** | | |
81+
| [File-based Routing](/pages/functions/routing/) |[^8] | |
82+
| [Pages Plugins](/pages/functions/plugins/) |[^9] | |
7783

84+
[^1]: Does not currently support Workers with static assets. For more details on which bindings are supported in remote development, [refer to the docs](/workers/testing/local-development/#supported-resource-bindings-in-different-environments).
7885

79-
<sup>1</sup> For more details on which bindings are supported in remote development, [refer to the docs](/workers/testing/local-development/#supported-resource-bindings-in-different-environments).
86+
[^2]: Similar to <sup>3</sup>, to customize the HTTP headers that are returned by static assets, you can use [Service bindings](/workers/runtime-apis/bindings/service-bindings/) to connect a Worker in front of the Worker with assets.
8087

81-
<sup>2</sup> Similar to <sup>1</sup>, to customize the HTTP headers that
82-
are returned by static assets, you can use [Service
83-
bindings](/workers/runtime-apis/bindings/service-bindings/) to connect a Worker
84-
in front of the Worker with assets.
88+
[^3]: If you need to run a Worker before serving static assets, you can create a separate Worker that acts as middleware, and then use [Service bindings](/workers/runtime-apis/bindings/service-bindings/) to forward the request to the Worker with assets. We plan to explore additional configuration to support more complex routing in the future.
8589

86-
<sup>3</sup> If you need to run a Worker before serving static assets,
87-
you can create a separate Worker that acts as middleware, and then use [Service
88-
bindings](/workers/runtime-apis/bindings/service-bindings/) to forward the request
89-
to the Worker with assets. We plan to explore additional configuration
90-
to support more complex routing in the future.
90+
[^4]: You can handle redirects by adding code to your Worker (a [community package](https://npmjs.com/package/redirects-in-workers) is available for `_redirects` support), or you can use [Bulk Redirects](/rules/url-forwarding/bulk-redirects/).
9191

92-
<sup>4</sup> You can handle redirects by adding code to your Worker (a
93-
[community package](https://npmjs.com/package/redirects-in-workers) is available
94-
for `_redirects` support), or you can use [Bulk
95-
Redirects](/rules/url-forwarding/bulk-redirects/).
92+
[^5]: You cannot yet enable [Smart Placement](/workers/configuration/smart-placement/) for Workers with static assets. This is a temporary limitation we are working to remove.
9693

97-
<sup>5</sup> You cannot yet enable [Smart
98-
Placement](/workers/configuration/smart-placement/) for Workers with static assets.
99-
This is a temporary limitation we are working to remove.
94+
[^6]: You cannot yet add a [Tail Worker](/workers/observability/logs/tail-workers/) to a project with assets. This is a temporary limitation we are working to remove.
10095

101-
<sup>6</sup> You cannot yet add a [Tail
102-
Worker](/workers/observability/logs/tail-workers/) to a project with assets.
103-
This is a temporary limitation we are working to remove.
96+
[^7]: To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended.
10497

105-
<sup>7</sup> To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended.
98+
[^8]: Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing.
10699

107-
<sup>8</sup> Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing.
108-
109-
<sup>9</sup> Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools.
100+
[^9]: Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools.

0 commit comments

Comments
 (0)