10 votes

The Block Protocol

8 comments

  1. [4]
    unkz
    Link
    What is this and why should anyone care? It’s basically an advertisement?

    What is this and why should anyone care? It’s basically an advertisement?

    11 votes
    1. [2]
      skybrian
      Link Parent
      I believe it's an attempt to create a standard for web documents. Some documents are structured in terms of "blocks," where each block is a different kind of embedded component and needs its own...

      I believe it's an attempt to create a standard for web documents. Some documents are structured in terms of "blocks," where each block is a different kind of embedded component and needs its own editor.

      One example is a Jupyter notebook, which has markdown and code blocks for multiple programming languages. The blog post editor for Substack is another example, since you can drop in images and other components. Anyone writing a fancy web document editor is going to reinvent this wheel.

      You could imagine an "everything notebook" that supports blocks from a lot of different vendors. There's a lot that would go into making that work so that documents can be shared without breaking.

      There are a lot of attempts like this. During the dot-com era I worked for a "portal company" that made web server software for what we now call a dashboard. There were efforts to standardize what you could put into a dashboard.

      It seems kind of corporate though, and not particularly successful? This effort seems to have been started by a company called HASH and has some support from WordPress, though to what extent is hard to say.

      It would be more compelling to build on some popular open source notebook software that has a useful plugin API. VS Code has a similar amount of complexity and it has lots of plugins.

      I think what tends to break standardization efforts like this is being too vague about use cases. For example, Substack has a hard requirement that all their blocks can be rendered to look nice as part of an HTML email, because sending email is what they do. A computational notebook like Jupyter doesn't care about that. Despite superficial similarities, it's often easier for everyone to go their own way.

      (Lurking in the background is Microsoft's Object Linking and Embedding, which I believe was pretty successful?)

      6 votes
      1. theoreticallyme
        Link Parent
        I also thought about OLE and I’ll use this to talk about Apple’s lesser known version of the same thing, OpenDoc. In today’s dollars that’s about $440 for the PIM and $520 for the database. I...

        (Lurking in the background is Microsoft's Object Linking and Embedding, which I believe was pretty successful?)

        I also thought about OLE and I’ll use this to talk about Apple’s lesser known version of the same thing, OpenDoc.

        After three years of development on OpenDoc itself, the first OpenDoc-based product release was Apple's CyberDog web browser in May 1996. The second was on August 1, 1996, of IBM's two packages of OpenDoc components for OS/2, available on the Club OpenDoc website for a 30 day free trial: the Person Pak is "components aimed at organizing names, addresses, and other personal information", for use with personal information management (PIM) applications, at $229; and the Table Pak "to store rows and columns in a database file" at $269. IBM then anticipated the release of 50 more components by the end of 1996.

        In today’s dollars that’s about $440 for the PIM and $520 for the database. I played around with Cyberdog and OpenDoc when they released and it was pretty cool but I’ve never seen these “raw surface that you plop components that ‘someone’ will build” working. Its either too simple to be useful or too complex to use.

        Expect one of these “powered by AI” coming soon. Given the name, I was surprised this one wasn’t blockchain based.

    2. Chinpokomon
      Link Parent
      I þink þey were trying to inform us þat þey are changing þe name to Thorn (þ). I þink þat's a poor choice for a logo as it already has meaning, and it has noþing to do wiþ blocks.

      I þink þey were trying to inform us þat þey are changing þe name to Thorn (þ). I þink þat's a poor choice for a logo as it already has meaning, and it has noþing to do wiþ blocks.

      5 votes
  2. [3]
    Jakobeha
    (edited )
    Link
    Sorry to sound defeatist, but this seems really ambitious and over-complicated. What are some use-cases where implementing something with blocks is easier than with existing tools? What do blocks...

    Sorry to sound defeatist, but this seems really ambitious and over-complicated. What are some use-cases where implementing something with blocks is easier than with existing tools? What do blocks do differently?

    With HTML and Web Components you can already make this. You have your standard HTML elements which provide text formatting, images, etc. and you have <script>s which register custom tags which can implement custom functionality (like a <tweet id="..."> element to display a Tweet, a <map size="..." location="..."> element to display a map). Sure, HTML has a lot more features, but you don't have to use them; you can just make every element self-contained and display: block.

    Imagine a small script which takes something like

    <!-- @import todos from https://package_manager.foobar/abc/schedule-todos.js -->
    <!-- @import map from https://another_package_manager.foobar/def/google-maps.js -->
    <h1>A header</h1>
    <h2>A subheader</h2>
    <p>Lorez ipsum dolor sit amet...</p>
    <todos>
      <todo reset="monthly">Pay rent</todo>
      <todo reset="weekly">Laundry</todo>
      <todo reset="daily">Walk dog</todo>
    </todos>
    <map location="Paris, France" />
    

    wraps it in <body>, parses the comments to add <script>s for each imported custom element, adds some preset stylesheets to override the ugly default styles, and produces a webpage where each top-level element is a fully-functional "block". Then, imagine another editor which saves/loads these script inputs and presents them in a WYSIWYG editor, like Typora does with Markdown or Jupyter does with notebooks. You have something which looks a lot like blocks, and the "protocol" is just to write JavaScripts which register custom web components.

    I'm sure there's more to the actual Block Protocol, but the website and even FAQ really don't explain.

    3 votes
    1. [2]
      spit-evil-olive-tips
      Link Parent
      strangely, they seem to be trying to yes-and Web Components: I was also very confused as to why this exists and...oh look they have a Pricing page (don't you love it when announcements of open...

      strangely, they seem to be trying to yes-and Web Components:

      Blocks can be built with Web Components, React, Vue, TypeScript, Angular, or simply plain HTML. The protocol only defines how blocks communicate with the application they’re embedded within, not how they should be built.

      I was also very confused as to why this exists and...oh look they have a Pricing page

      (don't you love it when announcements of open standards include prices?)

      The Þ Block Protocol is a free and open internet standard

      ...

      Paid plans enable access to advanced third-party APIs within blocks

      ...

      API usage beyond your included allowance will be billed in line with the below.

      ...

      A Platform Service Fee of 30% for Free users, 25% for Hobby users, and 20% for Pro users, is applied to Additional API Usage calls to cover costs.

      and the two third-party APIs they mention upfront are OpenAI and Mapbox.

      the development seems to be backed by hash.ai, which is a seed-stage startup with $2.5mil in funding according to Crunchbase.

      it looks like they're trying to cash in on the gold rush of AI-related development that's happening now.

      it's an "open" standard in the sense that "anyone can contribute a Block, or use a Block someone else contributed, and Blocks can make API calls, and we extract a cut of the revenue from every API call".

      5 votes
      1. Jakobeha
        Link Parent
        at least there’s no blockchain. I was actually a bit surprised considering the name

        at least there’s no blockchain. I was actually a bit surprised considering the name

  3. Wes
    Link
    I've had trouble understanding the use case for the Block Protocol when it's been shared in the past. Maybe because I just haven't seen that many useful applications for blocks yet. As of last...

    I've had trouble understanding the use case for the Block Protocol when it's been shared in the past. Maybe because I just haven't seen that many useful applications for blocks yet.

    As of last year there was some interest by WordPress in supporting it with Gutenberg though, and that is promising. That would allow for greater cross-compatibility in a fairly easy-to-use WYSIWYG editor. Right now integrating Gutenberg requires some heavy server-side work, but maybe the protocol would allow it to be used in a more streamlined way. eg. by importing a simple JS library. There's also a lot of existing work in that ecosystem, and there would be value in allowing that to be used in other contexts.

    Blocks are overkill for most comment systems, but do seem useful for authoring content. Maybe for newsletter writing too, but then these blocks would need to produce "old HTML". The whole concept seems abstract enough without introducing new concepts like conditional output based on render target.

    3 votes