Brand Intelligence Graphcompany
Company Overview
About Cloudflare
Cloudflare is a global cloud platform providing web performance, security, and network services to millions of websites and applications worldwide. Founded in 2009 by Matthew Prince and Michelle Zatlyn and headquartered in San Francisco, Cloudflare started as a DDoS protection and CDN service and has evolved into one of the most comprehensive network infrastructure platforms, serving as the connectivity layer for nearly 20% of all internet traffic. The company went public in September 2019 at a valuation around $4.5 billion.
Business Model & Competitive Advantage
Cloudflare's network spans 300+ cities across 100+ countries, providing global distribution of content and security services with millisecond latency. The company's product portfolio includes CDN, DDoS mitigation, WAF (Web Application Firewall), Zero Trust security (SASE), serverless compute (Workers), and AI inference infrastructure. Cloudflare's freemium model — offering a powerful free tier — has driven massive adoption among developers and small businesses that serve as leads for enterprise contracts. Revenue in 2024 was $1.6 billion, growing ~28% year-over-year.
Competitive Landscape 2025–2026
In 2025, Cloudflare has positioned its global edge network as AI inference infrastructure — running AI models at edge locations close to users to reduce latency for real-time AI applications. The company's Workers AI and AI Gateway products allow developers to deploy AI models on Cloudflare's 300-city network rather than centralized cloud regions. Cloudflare also launched a significant Zero Trust expansion, competing with Zscaler and Palo Alto Networks for enterprise security budget. With a $40B+ market cap and strong developer loyalty, Cloudflare continues expanding its share of enterprise network and security spending.
Recent Activity
View all →### Patch Changes - [#1686](https://github.com/cloudflare/agents/pull/1686) [`1e49880`](https://github.com/cloudflare/agents/commit/1e498803fe26970aa264678d5ae3a2c96dd28258) Thanks [@threepointone](https://github.com/threepointone)! - Batch and pack chat-persistence SQLite writes to reduce rows written and round-trips. - `agents`: `ResumableStream` now **packs** each buffered group of stream chunks into a single SQLite row (a JSON array of chunk bodies) instead of writing one row per chunk. Single-chunk and large-chunk segments are stored unwrapped, and a per-segment byte cap keeps rows within the 2 MB SQLite row limit. This cuts chunk rows written / stored / scanned-on-replay by up to ~10×. Reads (replay, orphan reconstruction, `getStreamChunks`) transparently unpack both packed segments and legacy per-chunk rows, so existing stored data keeps working. Adds shared `buildInClauseStrings` and `MAX_BOUND_PARAMS` helpers exported from `agents/chat`. - `@cloudflare/ai-chat`: message cleanu
### Patch Changes - [#1686](https://github.com/cloudflare/agents/pull/1686) [`1e49880`](https://github.com/cloudflare/agents/commit/1e498803fe26970aa264678d5ae3a2c96dd28258) Thanks [@threepointone](https://github.com/threepointone)! - Batch and pack chat-persistence SQLite writes to reduce rows written and round-trips. - `agents`: `ResumableStream` now **packs** each buffered group of stream chunks into a single SQLite row (a JSON array of chunk bodies) instead of writing one row per chunk. Single-chunk and large-chunk segments are stored unwrapped, and a per-segment byte cap keeps rows within the 2 MB SQLite row limit. This cuts chunk rows written / stored / scanned-on-replay by up to ~10×. Reads (replay, orphan reconstruction, `getStreamChunks`) transparently unpack both packed segments and legacy per-chunk rows, so existing stored data keeps working. Adds shared `buildInClauseStrings` and `MAX_BOUND_PARAMS` helpers exported from `agents/chat`. - `@cloudflare/ai-chat`: message cleanu
### Patch Changes - [#1686](https://github.com/cloudflare/agents/pull/1686) [`1e49880`](https://github.com/cloudflare/agents/commit/1e498803fe26970aa264678d5ae3a2c96dd28258) Thanks [@threepointone](https://github.com/threepointone)! - Batch and pack chat-persistence SQLite writes to reduce rows written and round-trips. - `agents`: `ResumableStream` now **packs** each buffered group of stream chunks into a single SQLite row (a JSON array of chunk bodies) instead of writing one row per chunk. Single-chunk and large-chunk segments are stored unwrapped, and a per-segment byte cap keeps rows within the 2 MB SQLite row limit. This cuts chunk rows written / stored / scanned-on-replay by up to ~10×. Reads (replay, orphan reconstruction, `getStreamChunks`) transparently unpack both packed segments and legacy per-chunk rows, so existing stored data keeps working. Adds shared `buildInClauseStrings` and `MAX_BOUND_PARAMS` helpers exported from `agents/chat`. - `@cloudflare/ai-chat`: message cleanu
### Patch Changes - [#1684](https://github.com/cloudflare/agents/pull/1684) [`ab6dd95`](https://github.com/cloudflare/agents/commit/ab6dd95b791a60fe5a5806852e05d4eeffecf9fd) Thanks [@threepointone](https://github.com/threepointone)! - warn when `chatRecovery` is configured in `onStart()` (applied too late for wake recovery) On every Durable Object wake the SDK evaluates chat-recovery budgets — and may seal an interrupted turn, firing `onExhausted` — **before** the user's `onStart()` runs (`_checkRunFibers()` is ordered ahead of `onStart()`). A `chatRecovery` config produced inside `onStart()` is therefore read as the built-in defaults at the moment recovery decides, so a configured `maxRecoveryWork` / `shouldKeepRecovering` / `onExhausted` silently never applies to the recovery that matters. This is now documented on `ChatRecoveryConfig` and the `chatRecovery` fields of `Think` / `AIChatAgent`, and the SDK logs a one-time warning if it detects `chatRecovery` being reassigned during `on
### Patch Changes - [#1684](https://github.com/cloudflare/agents/pull/1684) [`ab6dd95`](https://github.com/cloudflare/agents/commit/ab6dd95b791a60fe5a5806852e05d4eeffecf9fd) Thanks [@threepointone](https://github.com/threepointone)! - warn when `chatRecovery` is configured in `onStart()` (applied too late for wake recovery) On every Durable Object wake the SDK evaluates chat-recovery budgets — and may seal an interrupted turn, firing `onExhausted` — **before** the user's `onStart()` runs (`_checkRunFibers()` is ordered ahead of `onStart()`). A `chatRecovery` config produced inside `onStart()` is therefore read as the built-in defaults at the moment recovery decides, so a configured `maxRecoveryWork` / `shouldKeepRecovering` / `onExhausted` silently never applies to the recovery that matters. This is now documented on `ChatRecoveryConfig` and the `chatRecovery` fields of `Think` / `AIChatAgent`, and the SDK logs a one-time warning if it detects `chatRecovery` being reassigned during `on
### Patch Changes - Updated dependencies [[`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`a3eea27`](https://github.com/cloudflare/workers-sdk/commit/a3eea277aae46450aec1f0c811e3fe256022c46e), [`7a6b1a4`](https://github.com/cloudflare/workers-sdk/commit/7a6b1a4f4e9d8d5bd88732c8e11368c3ad7f867b), [`7539a9b`](https://github.com/cloudflare/workers-sdk/commit/7539a9bfcf03a14b2c16f281d541b6bc45523a80), [`3b8b80a`](https://github.com/cloudflare/workers-sdk/commit/3b8b80ab32e3ac33b5df9f6944dca9cdf72c5495), [`0bb2d55`](https://github.com/cloudflare/workers-sdk/commit/0bb2d55116ce90a147582a7b4d96e3090cddf7ee), [`8400fb9`](https://github.com/cloudflare/workers-sdk/commit/8400fb945a781e7a7a78a3614a702ace2d1fbc87), [`b502d54`](https://github.com/cloudflare/workers-sdk/commit/b502d5445b9e9e030020a3d65c0334507393aa64), [`7949f81`](https://gi
### Minor Changes - [#14089](https://github.com/cloudflare/workers-sdk/pull/14089) [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b) Thanks [@alsuren](https://github.com/alsuren)! - Add `migrations_pattern` to D1 database bindings The D1 binding now accepts an optional `migrations_pattern` field, allowing you to point `wrangler d1 migrations apply` and `wrangler d1 migrations list` at migration files in nested layouts (e.g. ORM-generated folders like `migrations/0000_init/migration.sql`). `migrations_pattern` is a glob (relative to the wrangler config file) and defaults to `${migrations_dir}/*.sql`, which preserves today's behaviour. Files that do not match the pattern are not executed. ```jsonc { "d1_databases": [ { "binding": "DB", "database_name": "my-db", "database_id": "...", "migrations_dir": "migrations", "migrations_pattern": "migrations/*/migration.sql" } ] } ``` When no migrations match the configured pattern but files matc
### Minor Changes - [#14089](https://github.com/cloudflare/workers-sdk/pull/14089) [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b) Thanks [@alsuren](https://github.com/alsuren)! - Add `migrations_pattern` to D1 database bindings The D1 binding now accepts an optional `migrations_pattern` field, allowing you to point `wrangler d1 migrations apply` and `wrangler d1 migrations list` at migration files in nested layouts (e.g. ORM-generated folders like `migrations/0000_init/migration.sql`). `migrations_pattern` is a glob (relative to the wrangler config file) and defaults to `${migrations_dir}/*.sql`, which preserves today's behaviour. Files that do not match the pattern are not executed. ```jsonc { "d1_databases": [ { "binding": "DB", "database_name": "my-db", "database_id": "...", "migrations_dir": "migrations", "migrations_pattern": "migrations/*/migration.sql" } ] } ``` When no migrations match the configured pattern but files matc
### Patch Changes - Updated dependencies [[`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`c6c61b5`](https://github.com/cloudflare/workers-sdk/commit/c6c61b59431443b2bcda25f3af7624dd2ce19b9b), [`a3eea27`](https://github.com/cloudflare/workers-sdk/commit/a3eea277aae46450aec1f0c811e3fe256022c46e), [`7a6b1a4`](https://github.com/cloudflare/workers-sdk/commit/7a6b1a4f4e9d8d5bd88732c8e11368c3ad7f867b), [`7539a9b`](https://github.com/cloudflare/workers-sdk/commit/7539a9bfcf03a14b2c16f281d541b6bc45523a80), [`1fdd8de`](https://github.com/cloudflare/workers-sdk/commit/1fdd8def456011c29c5879fe49be6fa90ad9858d), [`3b8b80a`](https://github.com/cloudflare/workers-sdk/commit/3b8b80ab32e3ac33b5df9f6944dca9cdf72c5495), [`0bb2d55`](https://github.com/cloudflare/workers-sdk/commit/0bb2d55116ce90a147582a7b4d96e3090cddf7ee), [`8400fb9`](https://github.com/cloudflare/workers-sdk/commit/8400fb945a781e7a7a78a3614a702ace2d1fbc87), [`b502d54`](https://gi
### Minor Changes - [#14164](https://github.com/cloudflare/workers-sdk/pull/14164) [`b502d54`](https://github.com/cloudflare/workers-sdk/commit/b502d5445b9e9e030020a3d65c0334507393aa64) Thanks [@G4brym](https://github.com/G4brym)! - Rename the `web_search` binding kind to `websearch` Pre-launch rename of the public binding type from `web_search` to `websearch` so the on-the-wire shape matches the product name (Web Search). The wrangler config key, the binding-type string sent to the Cloudflare API, and the miniflare option key all move from `web_search` / `webSearch` to `websearch`. Update your wrangler config: ```diff - "web_search": { "binding": "WEBSEARCH" } + "websearch": { "binding": "WEBSEARCH" } ``` The runtime `WebSearch` type exposed on `env.WEBSEARCH` is unchanged. - [#13863](https://github.com/cloudflare/workers-sdk/pull/13863) [`3b8b80a`](https://github.com/cloudflare/workers-sdk/commit/3b8b80ab32e3ac33b5df9f6944dca9cdf72c5495) Thanks [@aslakhellesoy](https://github.com/asl
## What's Changed * ci: add Semgrep OSS scanning workflow by @hrushikeshdeshpande in https://github.com/cloudflare/speedtest/pull/87 * chore: migrate from Yarn to pnpm by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/102 * chore: migrate bundler from Rollup to tsdown by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/103 * test: add unit and e2e tests with Vitest by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/104 * refactor: remove dead code by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/107 * fix: use URL API for query string construction by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/108 * Release v1.9.2 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/109 **Full Changelog**: https://github.com/cloudflare/speedtest/compare/v1.9.1...v1.9.2
## What's Changed * chore: remove all production dependencies by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/89 * ci: migrate to PR-based release workflow by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/90 * Release v1.9.1 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/91 * fix(ci): release PR workflow fixes by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/92 * Release v1.9.2 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/93 * fix(ci): fix publish workflow OIDC path and reset version by @andre-j3sus in https://github.com/cloudflare/speedtest/pull/94 * Release v1.9.1 by @github-actions[bot] in https://github.com/cloudflare/speedtest/pull/95 **Full Changelog**: https://github.com/cloudflare/speedtest/compare/v1.9.0...v1.9.1
Key Differentiators
Emerging Innovator
Cloudflare is an emerging player bringing innovative solutions to the Infrastructure market.
Enterprise Scale
With $1.6B in revenue, Cloudflare operates at enterprise scale with proven market validation.
Frequently Asked Questions
Estimated Visibility Trend (Beta)
Simulated 8-week rolling score
Based on estimated brand signals. Historical tracking coming soon.
Similar Brands
Vercel
LanceDB
LanceDB is an open-source vector database purpose-built for AI applications, offering serverless vector storage with embedded deployment, multimodal data support (text, images, video, audio), and nati
Neon
Neon is a serverless PostgreSQL platform offering instant database provisioning, automatic scaling to zero, and database branching — capabilities that make it uniquely suited for modern application de
Reducto
Reducto is a San Francisco-based AI document intelligence company — backed by $108 million in total funding including a $75 million Series B led by Andreessen Horowitz in October 2025, plus a $24.5 mi
Extend
Extend is a San Francisco-based AI document processing platform using large language models to provide accurate data extraction and document understanding for enterprise workflows — turning unstructur
Infracost
Infracost is a San Francisco-based cloud cost management platform — backed by Y Combinator (W21) with $17.2 million raised including a $15 million Series A led by Pruven Capital with Insight Partners
Compare Cloudflare with Competitors
Side-by-side AI visibility scores, platform breakdown, and market position.
Claim This Profile
Are you from Cloudflare? Claim your profile to see full AI mention excerpts, get weekly visibility change alerts, and optimize how AI systems describe your brand.
Claim Cloudflare Profile →Track AI Visibility in Real Time
Monitor how ChatGPT, Gemini, Perplexity, and Claude mention Cloudflare vs competitors. Get alerts when AI recommendations shift.
Start Free Tracking →