Support "Block Protocol"

“Blocks” are everywhere, including Logseq, it was just a matter of time before someone tried to standardize them!

Finally I found an attempt, “Block Protocol”: https://blockprotocol.org

Since WordPress is going to support it in its editor, this opens new possibilities to applications like Logseq to export to the CMS powering the majority of the Web!

More: Implications Of WordPress Joining The Block Protocol — Smashing Magazine

After a year:

  • I would call this the “UI-Component Communication-Framework”.
    • They call it “Block Protocol” for marketing reasons.
    • They develop it for commercial purposes, not to improve the web.
      • Almost like OpenAI is not open.
  • Protocols are very important, but:
    • we already have many (and even more frameworks)
    • developers care, but users don’t
  • Compared to components (any component, not just UI), Logseq’s blocks are:
    • more fundamental
      • should consider standards at this level
    • less composable
      • We can embed one block to another, but not much more.
      • It doesn’t have to be like that:
        • A sub-block could be much more than a child-block.
        • There is much room for innovation in this direction.

I agree on their implementation being too biased but the idea is good in my opinion.

Suites of applications like MS Office or Adobe’s offer interoperability between their applications thanks to proprietary protocols that define “components”.

In my opinion it is important to define open protocols that are not bound to any programming language, framework or platform.

I am not aware of any project that is doing this (aside from the protocol part of this Block Protocol).

If you know better alternatives, even in early stage, please let me know.

If we take a hint by how many years it took for Web Components to come alive, I’m not optimistic for any viable alternative before another decade. We may as well develop an open protocol in Logseq.

Web Components are a different thing, I am talking about more abstract and simple protocol.

Markdown covers things like lists or tables and the application renders them with their technology of choice.

I am looking for the same but more general. For example a component could be “carousel of images” with variables like “captions: true”. But it’s the application that choose how to render it.

If an application doesn’t support the carousel of images, it may fallback to just multiple images.

Other examples: buttons, tabs, kanban boards, slider to compare two overlapped images…