-
Notifications
You must be signed in to change notification settings - Fork 10k
Add pricing page #22615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Add pricing page #22615
Changes from 2 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,294 @@ | ||
| --- | ||
| import StarlightPage from "@astrojs/starlight/components/StarlightPage.astro"; | ||
| import { Card, Tabs, TabItem } from "@astrojs/starlight/components"; | ||
| import { Details } from "~/components"; | ||
|
|
||
| const pricingData = { | ||
| compute: [ | ||
| { | ||
| product: "Workers", | ||
| description: "Run serverless code at the edge", | ||
| components: [ | ||
| { name: "Requests", included: "10 million", unit: "per million requests", price: "$0.30" }, | ||
| { name: "CPU time", included: "30 million ms", unit: "per million CPU milliseconds", price: "$0.02" }, | ||
| ], | ||
| link: "/workers/", | ||
| }, | ||
| { | ||
| product: "Workers for Platforms", | ||
| description: "Deploy Workers on behalf of your customers", | ||
| components: [ | ||
| { name: "Requests", included: "20 million", unit: "per million requests", price: "$0.30" }, | ||
| { name: "CPU time", included: "60 million ms", unit: "per million CPU milliseconds", price: "$0.02" }, | ||
| { name: "Scripts Deployed", included: "1,000", unit: "per script", price: "$0.02" }, | ||
| ], | ||
| link: "/cloudflare-for-platforms/workers-for-platforms/", | ||
| }, | ||
| { | ||
| product: "Workflows", | ||
| description: "Build durable, scalable applications", | ||
| components: [ | ||
| { name: "Requests", included: "None", unit: "per million requests", price: "$0.30" }, | ||
| { name: "CPU time", included: "None", unit: "per million CPU milliseconds", price: "$0.02" }, | ||
| { name: "Storage", included: "None", unit: "per GB-month", price: "$0.20" }, | ||
| ], | ||
| link: "/workflows/", | ||
| }, | ||
| ], | ||
| storage: [ | ||
| { | ||
| product: "R2", | ||
| description: "Object storage with zero egress fees", | ||
| components: [ | ||
| { name: "Standard Storage", included: "10 GB-month", unit: "per GB-month", price: "$0.015" }, | ||
| { name: "Standard Class A operations", included: "1 million", unit: "per million requests", price: "$4.50" }, | ||
| { name: "Standard Class B operations", included: "10 million", unit: "per million requests", price: "$0.36" }, | ||
| { name: "Infrequent Access Storage", included: "10 GB-month", unit: "per GB-month", price: "$0.015" }, | ||
| { name: "Infrequent Access Class A operations", included: "1 million", unit: "per million requests", price: "$9.00" }, | ||
| { name: "Infrequent Access Class B operations", included: "10 million", unit: "per million requests", price: "$0.90" }, | ||
| { name: "Infrequent Access Data Retrieval", included: "None", unit: "per GB", price: "$0.10" }, | ||
| ], | ||
| link: "/r2/", | ||
| }, | ||
| { | ||
| product: "Workers KV", | ||
| description: "Low-latency key-value data store", | ||
| components: [ | ||
| { name: "Stored Data", included: "1 GB", unit: "per GB-month", price: "$0.50" }, | ||
| { name: "Read Requests", included: "10 million", unit: "per million requests", price: "$0.50" }, | ||
| { name: "Write, Delete, List requests", included: "1 million", unit: "per million requests", price: "$5.00" }, | ||
| ], | ||
| link: "/kv/", | ||
| }, | ||
| { | ||
| product: "D1", | ||
| description: "Serverless SQL database", | ||
| components: [ | ||
| { name: "Storage", included: "None", unit: "per GB-month", price: "$0.75" }, | ||
| { name: "Rows read", included: "None", unit: "per million rows", price: "$0.001" }, | ||
| { name: "Rows written", included: "None", unit: "per million rows", price: "$1.00" }, | ||
| ], | ||
| link: "/d1/", | ||
| }, | ||
| { | ||
| product: "Durable Objects", | ||
| description: "Stateful serverless applications", | ||
| components: [ | ||
| { name: "Rows Read", included: "None", unit: "per million rows", price: "$0.0001" }, | ||
| { name: "Rows written", included: "None", unit: "per million rows", price: "$1.00" }, | ||
| { name: "SQL Stored data", included: "None", unit: "per GB-month", price: "$0.20" }, | ||
| { name: "Read request units", included: "None", unit: "per million", price: "$0.20" }, | ||
| ], | ||
| link: "/durable-objects/", | ||
| }, | ||
| { | ||
| product: "Hyperdrive", | ||
| description: "Database connection pooling", | ||
| components: [ | ||
| { name: "Queries", included: "Unlimited", unit: "", price: "Free" }, | ||
| ], | ||
| link: "/hyperdrive/", | ||
| }, | ||
| { | ||
| product: "Workers Analytics Engine", | ||
| description: "Time-series analytics at scale", | ||
| components: [ | ||
| { name: "Data points written", included: "10 million", unit: "per million", price: "$0.25" }, | ||
| { name: "Read queries", included: "1 million", unit: "per million", price: "$1.00" }, | ||
| ], | ||
| link: "/analytics/analytics-engine/", | ||
| }, | ||
| { | ||
| product: "Pipelines", | ||
| description: "Transform and route data streams", | ||
| components: [ | ||
| { name: "Ingestion", included: "None", unit: "per GB", price: "$0.02" }, | ||
| { name: "Delivery to R2", included: "None", unit: "per GB", price: "$0.02" }, | ||
| ], | ||
| link: "/pipelines/", | ||
| }, | ||
| ], | ||
| media: [ | ||
| { | ||
| product: "Realtime", | ||
| description: "Live data streaming platform", | ||
| components: [ | ||
| { name: "Data Egress", included: "None", unit: "per GB", price: "$0.05" }, | ||
| ], | ||
| link: "/realtime/", | ||
| }, | ||
| { | ||
| product: "Images", | ||
| description: "Resize, optimize, and transform images", | ||
| components: [ | ||
| { name: "Unique transformations", included: "None", unit: "per 1,000", price: "$0.50" }, | ||
| { name: "Images Stored", included: "None", unit: "per 100,000", price: "$5.00" }, | ||
| { name: "Images Delivered", included: "None", unit: "per 100,000", price: "$1.00" }, | ||
| ], | ||
| link: "/images/", | ||
| }, | ||
| { | ||
| product: "Stream", | ||
| description: "Video streaming platform", | ||
| components: [ | ||
| { name: "Minutes Stored", included: "None", unit: "per 1,000 minutes", price: "$5.00" }, | ||
| { name: "Minutes Delivered", included: "None", unit: "per 1,000 minutes", price: "$1.00" }, | ||
| ], | ||
| link: "/stream/", | ||
| }, | ||
| ], | ||
| ai: [ | ||
| { | ||
| product: "AI Gateway", | ||
| description: "Unified API for AI providers", | ||
| components: [ | ||
| { name: "Logs stored", included: "None", unit: "per 100,000 logs/month", price: "$8.00" }, | ||
| ], | ||
| link: "/ai-gateway/", | ||
| }, | ||
| { | ||
| product: "Vectorize", | ||
| description: "Vector database for AI", | ||
| components: [ | ||
| { name: "Vector dimensions queried", included: "None", unit: "per million", price: "$0.01" }, | ||
| { name: "Vector dimensions stored", included: "None", unit: "per 100 million", price: "$0.05" }, | ||
| ], | ||
| link: "/vectorize/", | ||
| }, | ||
| { | ||
| product: "Workers AI", | ||
| description: "Run AI models at the edge", | ||
| components: [ | ||
| { name: "Neurons", included: "None", unit: "per 1,000 neurons/day", price: "$0.011" }, | ||
| ], | ||
| link: "/workers-ai/", | ||
| }, | ||
| ], | ||
| other: [ | ||
| { | ||
| product: "Queues", | ||
| description: "Message queuing service", | ||
| components: [ | ||
| { name: "Standard Operations", included: "None", unit: "per million operations", price: "$0.40" }, | ||
| ], | ||
| link: "/queues/", | ||
| }, | ||
| { | ||
| product: "Workers Observability", | ||
| description: "Monitor Workers performance", | ||
| components: [ | ||
| { name: "Events", included: "20 million", unit: "per million events", price: "$0.60" }, | ||
| ], | ||
| link: "/workers/observability/", | ||
| }, | ||
| { | ||
| product: "Workers Builds", | ||
| description: "Build Workers at scale", | ||
| components: [ | ||
| { name: "Build Minutes", included: "None", unit: "per minute", price: "$0.005" }, | ||
| ], | ||
| link: "/workers/", | ||
| }, | ||
| { | ||
| product: "Zaraz", | ||
| description: "Third-party tool manager", | ||
| components: [ | ||
| { name: "Events", included: "None", unit: "per million events", price: "$5.00" }, | ||
| ], | ||
| link: "/zaraz/", | ||
| }, | ||
| ], | ||
| }; | ||
|
|
||
| const categories = [ | ||
| { id: "compute", name: "Compute", icon: "🚀", data: pricingData.compute }, | ||
| { id: "storage", name: "Storage & Data", icon: "💾", data: pricingData.storage }, | ||
| { id: "media", name: "Media", icon: "🎬", data: pricingData.media }, | ||
| { id: "ai", name: "AI", icon: "🤖", data: pricingData.ai }, | ||
| { id: "other", name: "Other Services", icon: "🔧", data: pricingData.other }, | ||
| ]; | ||
| --- | ||
|
|
||
| <StarlightPage | ||
| frontmatter={{ | ||
| title: "Developer Platform Pricing", | ||
| description: "Simple, transparent pricing for Cloudflare's developer products. Pay only for what you use.", | ||
| template: "splash", | ||
| }} | ||
| > | ||
| <Tabs> | ||
| {categories.map((category) => ( | ||
| <TabItem label={`${category.icon} ${category.name}`}> | ||
| <div class="mt-6 space-y-6"> | ||
| {category.data.map((product) => ( | ||
| <Card title={product.product}> | ||
| <div class="flex justify-between items-start mb-3"> | ||
| <div> | ||
| <p>{product.description}</p> | ||
| </div> | ||
| <a href={product.link}> | ||
| Learn more → | ||
| </a> | ||
| </div> | ||
| <div class="overflow-x-auto"> | ||
| <table class="w-full text-sm"> | ||
| <thead> | ||
| <tr class="border-b border-gray-200 dark:border-gray-700"> | ||
| <th class="text-left py-2 pr-4">Component</th> | ||
| <th class="text-left py-2 px-4">Pricing</th> | ||
| </tr> | ||
| </thead> | ||
| <tbody> | ||
| {product.components.map((component, idx) => ( | ||
| <tr class={idx < product.components.length - 1 ? "border-b border-gray-100 dark:border-gray-800" : ""}> | ||
| <td class="py-3 pr-4">{component.name}</td> | ||
| <td class="py-3 px-4"> | ||
| {component.price !== "Free" ? ( | ||
| <> | ||
| <span class="font-semibold">{component.price}</span> | ||
| {component.unit && <span> {component.unit}</span>} | ||
| </> | ||
| ) : ( | ||
| <span class="font-semibold" style="color: var(--sl-color-green-high)">Free</span> | ||
| )} | ||
| </td> | ||
| </tr> | ||
| ))} | ||
| </tbody> | ||
| </table> | ||
| </div> | ||
| </Card> | ||
| ))} | ||
| </div> | ||
| </TabItem> | ||
| ))} | ||
| </Tabs> | ||
|
|
||
| <section class="mt-12"> | ||
| <h2 class="text-2xl font-bold mb-4">Frequently Asked Questions</h2> | ||
|
|
||
| <Details header="What are Class A and Class B operations in R2?"> | ||
| <p> | ||
| Class A operations include ListBuckets, PutBucket, ListObjects, PutObject, CopyObject, CompleteMultipartUpload, CreateMultipartUpload, ListMultipartUploads, UploadPart, UploadPartCopy, ListParts, PutBucketEncryption, PutBucketCors, and PutBucketLifecycleConfiguration. Class B operations include HeadBucket, HeadObject, GetObject, UsageSummary, GetBucketEncryption, GetBucketLocation, GetBucketCors, and GetBucketLifecycleConfiguration. | ||
| </p> | ||
| </Details> | ||
|
|
||
| <Details header="What are neurons in Workers AI?"> | ||
| <p> | ||
| Neurons are our way of measuring AI compute usage. Different models consume different amounts of neurons based on their complexity and the input size. Check the Workers AI documentation for detailed neuron counts per model. | ||
| </p> | ||
| </Details> | ||
|
|
||
| <Details header="Is there a free tier?"> | ||
| <p> | ||
| Cloudflare offers a generous free tier across many products. Check individual product documentation for specific free tier limits. | ||
| </p> | ||
| </Details> | ||
|
|
||
| <Details header="Can I use multiple products together?"> | ||
| <p> | ||
| Absolutely! All developer products work seamlessly together. For example, you can use Workers with KV, D1, R2, and Queues all in the same application. | ||
| </p> | ||
| </Details> | ||
| </section> | ||
| </StarlightPage> | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.