1/ We've been working a new protocol at
It's called the block protocol (but NOT about blockchain or NFTs!)
It allows you to build reusable blocks (aka. components) that are interchangeable across website/apps
It takes a minute to explain, but I’ve drawn pictures…
Conversation
Replying to
2/ Blocks are the fancy interactive elements you can add to most doc editors and websites nowadays – text, tables, checklists, images, embeds, etc.
You’ve seen these in apps like Notion, Wordpress Gutenberg, and Coda
read image description
ALT
2
1
26
3/ At the moment most apps create these from scratch and keep them contained within their ecosystem. You can’t move blocks from one app to another. So we keep reinventing the same blocks over and over. Everyone spends more time building. Fewer people get to use what’s been made
read image description
ALT
1
1
44
4/ The Block Protocol (BP) is an attempt to save us from this sad fate of walled block gardens.
Blocks that follow the protocol can be embedded into any app that follows the protocol. It’s the DMZ of interoperability.
Build a block once, embed it anywhere that accepts BP blocks
read image description
ALT
2
1
42
5/ BP blocks can *read data* from the apps they’re embedded in, and send suggested updates back.
Blocks declare what kind of data they expect to receive (numbers, strings, email address) & what they can do with it (display, transform)
Which leads us to structured data…
read image description
ALT
read image description
ALT
1
1
26
6/ One lofty, formidable dream we’re going after with the BP is to help enable the semantic web.
The possible data types that BP blocks accept aren’t just numbers and strings. They also recognise things humans would recognise as types: Person, Company, Book, Movie, etc.
read image description
ALT
2
2
48
7/ We can define these human types with ‘schemas’ – sets of properties and values.
Eg. A “flight” schema would have properties like “departureAirport” and “flightNumber”
This enables us to build specialised blocks that display specific kinds of data. Blocks like…
read image description
ALT
2
3
24
8/ …user profiles, book reviews, spaced repetition systems, event announcements, ad infinitum.
One goal of the BP is to increase the variety of blocks available to both devs and users.
We've started a list of ideas that you can and should add to:
1
3
40
9/ There’s been a 🦆-ton of previous work on schemas & the semantic web. We’re not reinventing any wheels. We’re respectfully building off previous art.
People can use existing schemas (eg. schema.org), BUT we also let people extend schemas and define their own…
2
1
22
10/ There is no perfect, universal schema system, and never will be. Human categories & hierarchies are subjective, fluid, & always evolving. People will use schemas that make sense to them, then extend & adapt schemas to fit their needs.
It’s a free-schema-world…
2
24
11/ See Cory Doctrow’s metacrap (people.well.com/user/doctorow/)
+ George Lakoff’s ‘Women, Fire, and Dangerous Things’ for more on prototype theory / the subjective, embodied ways we categorise the world.
None of it bodes well for ‘objectively’ defining schemas, but I digress...
1
16
12/ To recap: We now have a standard way…
to create reusable blocks…
that can read / write semantic data…
and be used in any app that opts into the ecosystem.
Which saves us from block fortresses.
And blocks create structured data by default, without devs manually doing it.
4
4
20
13/ (the driving force behind this effort) explains the project in more detail here: joelonsoftware.com/2022/01/27/mak
Co-created by and the team
You prob have Q’s – we’re writing answers as we go: blockprotocol.org/faq
4
3
46
Corrected FAQ link! blockprotocol.org/docs/faq
Disclaimer: The spec is currently a draft and has flaws.
We’ve released early to gather feedback and open up the discussion with folks. Feel free to post discussions on the GitHub as well: github.com/blockprotocol/
6
39
If you're a developer curious about building blocks and want to keep tabs on the project, ⭐️ starring and 👀 watching the Github repository is a good way to get updates: github.com/blockprotocol/
I'll add updates here in the coming months too. It's early days; we're just beginning
5
34
