Introduction: The Rise of Block-Based Editors
If you’ve used any modern blogging platform, note-taking app, or content management system (CMS) in recent years, you’ve likely encountered the block-based editing paradigm. Instead of a single text field, these editors present a canvas where every element—a paragraph, image, video, or even a complex interactive widget—is a distinct block. Users add blocks by clicking a “+” button or, increasingly, typing the / key and selecting from a palette of options. This approach has become the de facto standard for intuitive content creation, yet behind the scenes lies a fundamental problem: each application implements its own proprietary block system, forcing developers to reinvent the wheel and locking users into a limited set of features.

The Problem: Fragmented and Non-Interchangeable Blocks
As the number of block-based editors grows, so does the duplication of effort. Every time a new app wants to offer a calendar block, a Kanban board, or an image gallery, its developers must build that block from scratch—tailored exclusively to their editor. This means that:
- Developers waste resources recreating the same block types repeatedly.
- Users are stuck with only the blocks their app has implemented, often basic or incomplete. If you admire a fancy block in WordPress, Medium, or Notion, but your current editor doesn’t support it, there is no easy way to bring it over.
- Blocks cannot be shared or reused across platforms. A calendar block created for one note-taking app cannot be used in a blog engine without starting over.
End users, as a result, face a fragmented ecosystem. They must choose between features, not just tools. The promise of the block model—to empower creators with rich, flexible content—is undermined by proprietary silos.
The Solution: An Open, Universal Block Protocol
To break down these silos, we are introducing the Block Protocol—an open, free, and non-proprietary standard that enables blocks to work everywhere. The protocol defines a simple interface: any embedding application (be it a blog editor, note-taking app, or CMS) can host blocks that conform to the protocol, and any block built to the protocol can be embedded in any conforming host. No more reimplementation. No more lock-in.
How It Works
The Block Protocol is a lightweight specification for communication between a host application and a block. It handles:
- How the block is loaded and rendered.
- How the block interacts with the host (e.g., saving data, responding to events).
- How the block exposes its capabilities (e.g., allowed content types, data schemas).
By adhering to this protocol, a block becomes truly portable. A Kanban board developed for one editor can be dropped into another without modification. A video block with custom controls works identically in a blog, a wiki, or a project management tool.
Benefits for Developers and Users
The Block Protocol promises a virtuous cycle: app developers need only implement the embedding code once, then instantly gain access to a growing library of blocks. Block developers, in turn, create a single solution that reaches all users, regardless of their chosen platform. This dramatically reduces duplication and accelerates innovation.

For end users, the payoff is even greater. They can choose any block they like from a vast, open ecosystem—not just what their editor vendor happens to support. Blocks become interchangeable, shareable, and upgradeable independently. The editor becomes a simple container; the blocks are the power.
What Can Be a Block? Practically Anything
The definition of a “block” under the protocol is intentionally broad. Some examples:
- Text and media: paragraphs, headings, lists, tables, images, videos, audio players.
- Interactive components: calendar widgets, Kanban boards, to-do lists, survey forms, comment sections.
- Data-driven elements: charts, maps, order forms, product listings, any block that displays or collects structured data.
Because the protocol is extensible, new types can be added by the community. The only limit is what can be rendered in a web document.
Structured Data and Typed Blocks
One powerful aspect of the Block Protocol is its support for typed data. A block can declare that it works with a specific schema (e.g., “this calendar block accepts dates and events”). Hosts can then pass structured data to the block, and the block can return updated data. This opens the door to rich integration: imagine a database record being edited as a form block, or a spreadsheet row displayed as a kanban card.
Current Status and How to Get Involved
We have released a very early draft of the Block Protocol, along with a set of simple example blocks and a minimal editor that hosts them. The entire project is open-source, with sample code available on GitHub. Our goal is to foster a community that builds a comprehensive open-source library of blocks—everyone can contribute, from individual developers to large organizations.
Call to Action
If you develop any kind of editor—blogging tool, note-taking app, CMS, or custom web application—we invite you to adopt the Block Protocol. Write the embedding code once, and your users will instantly gain access to all blocks built to the standard. If you build blocks, create them once and publish them for any compatible host.
Together, we can make the web truly interoperable, one block at a time.
Learn more about the fragmentation problem | Dive into the protocol details | Contribute to the community