A common language for embeddable web blocks

Block-based editing is now nearly universal. Blogging platforms, note-taking apps, and CMSes all present users with a palette of content blocks—paragraphs, galleries, kanban boards, and more—that can be dropped into a page. The / key has become a de facto standard for inserting a new block. Almost everything else about how blocks are built and embedded remains proprietary.

The result is duplicated effort and constrained users. Every application that wants block support has to implement each block type from scratch. A block a user saw in one editor may be unavailable in another, because the platform owner never had time to build it. Blocks do not travel well between systems because there is no shared specification for how they should be created or hosted.

The Block Protocol is an attempt to fix this. It is an open, free, and non-proprietary scheme that defines how embedding applications can host blocks. Any block written to the protocol should work in any application that supports it—without per-platform reimplementation.

The authors have released an early draft of the protocol (version 0.1) along with simple example blocks and a basic hosting editor:

What counts as a block?

Under the protocol, a block is broad: anything that fits naturally into a document, such as a list, table, or kanban board; anything that belongs on a web page, such as a calendar, video, or order form; or anything that can expose structured, typed data to the reader.

For editor developers, adopting the protocol means writing the embedding code once and then gaining access to a large and growing library of block implementations. For those who work with custom data types that belong on the web, supporting the protocol makes that data embeddable in any compatible host.

The authors also intend for block authorship to produce an open source ecosystem where both common blocks and highly specialized ones are shareable. A block that renders great-circle flight routing should need to be written only once to be embeddable anywhere.

Toward structured, machine-readable blocks

One of the protocol's more significant potentials is that blocks can be typed—they can declare a schema that describes their data in a standard, structured way. That makes block content machine-readable without scraping. An event block, for example, could carry a defined event data schema so that calendar tools can reliably parse pages that contain it. If such typed publishing becomes common, pages containing complex datasets would no longer need awkward "download as .XLS" fallbacks.

An open invitation to build

This release is intentionally early. The protocol is still rudimentary and will need iteration before it can become a truly useful web standard. That is exactly why the project has gone public now—the authors are seeking early adopters, feedback, and contributions.

The full documentation is available now:

Read more about the Block Protocol