TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The Block Protocol

286 pointsby jacobrussellover 3 years ago

36 comments

sambronerover 3 years ago
The Block Protocol is building on a pretty large history of similar ideas, but none have <i>really</i> succeeded. Joel&#x27;s interest in this project is some cause for hope as is the embrace of existing standards like react, webcomponents, and HTML.<p>Historically, OpenDoc is pretty relevant. So is OLE. More recently Notion, Coda, Microsoft Loop [1], Anytype.io, etc lean on the same concepts to allow you to break documents into independent &amp; reassemble-able components. There hasn&#x27;t been a large ecosystem here, although the componentized approach has more traction now as we move away from skeuomorphism.<p>On the data side, Solid is the most relevant. The models are often the same, users give applications very granular data permissions and progressively authorize data access as required for additional functionality. Developers seem to dislike the model... You don&#x27;t really know what you&#x27;re going to be rendering and key features are not really used.<p>From a pure schema perspective, you have schema.org. It&#x27;s a pretty comprehensive attempt to catalog structured data for most use cases. It&#x27;s nice that this project can kinda build on the semantic web, but most people ignore it! That being said, adoption would go a long way towards interoperability between OSS projects.<p>I&#x27;d like to live in a world where everything works together? But I&#x27;m not so hopeful at this point because the ecosystem has very weird economics. Ultimately the &quot;Block Developer&quot; needs to be compensated, but the host is the one getting the SaaS or advertising payment. Obviously simple components can be free, but very complex ones may need micropayments, licensing fees, etc.<p>[1] I helped start Fluid Framework, which is the underlying tech for Microsoft Loop. These are just my opinions and I no longer work for Microsoft.
评论 #30112047 未加载
评论 #30183223 未加载
评论 #30108724 未加载
评论 #30115564 未加载
jawnsover 3 years ago
The idea that you can create blocks that can easily be integrated into other applications presupposes that it&#x27;s a desirable thing to have data that can be easily integrated into other applications.<p>Which, for us as developers, seems like a given.<p>But when you look at it through the lens of business users, that becomes a much more murky assumption.<p>Look at RSS. Amazing way to aggregate content from other sources into a viewer that you have robust control over. Developers love it!<p>But is RSS desirable from a business point of view? The landscape over the past 15 years suggests that no, it&#x27;s not.<p>Businesses would prefer to build walled gardens. They want complete control over the experience of consuming the content they produce, particularly when it comes to analytics and user data generated from that content. In many cases, their business model depends on it.<p>While the Block site touts this protocol as a way to collaboratively build and share things within a community and ecosystem that runs on cooperative principles, that may be at odds with what our current business environment is incentivizing.
评论 #30110191 未加载
评论 #30106008 未加载
评论 #30105727 未加载
评论 #30111766 未加载
评论 #30111253 未加载
评论 #30125950 未加载
评论 #30106492 未加载
评论 #30105903 未加载
评论 #30108609 未加载
评论 #30106243 未加载
slyallover 3 years ago
Blog post from Joel Spolsky introducing this.<p><a href="https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2022&#x2F;01&#x2F;27&#x2F;making-the-web-better-with-blocks&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2022&#x2F;01&#x2F;27&#x2F;making-the-web-bet...</a>
评论 #30107404 未加载
评论 #30105937 未加载
评论 #30105341 未加载
评论 #30108917 未加载
cxrover 3 years ago
Strong Xanadu vibes. Not surprising to see, since at least one of the people involved isn&#x27;t new to trudging through the history of hypertext and has several Xanadu writeups. (See the backlinks on &lt;<a href="https:&#x2F;&#x2F;maggieappleton.com&#x2F;garden-history" rel="nofollow">https:&#x2F;&#x2F;maggieappleton.com&#x2F;garden-history</a>&gt;.)
egypturnashover 3 years ago
I feel like &quot;You can move things from one to-do app to another to-do app!&quot; is not really a compelling answer to the question &quot;Why would I want to build blocks with the Block Protocol&quot;.
评论 #30109845 未加载
评论 #30104330 未加载
notpachetover 3 years ago
I am torn on this. On the one hand I believe very strongly in the value that the semantic web can provide, and I applaud any effort to move us towards a future where we can more reliably interop between different applications on the web. I hope this pushes the needle in that direction.<p>On the other hand, there is a very crowded graveyard of spiritual ancestors to this project, all of which were aspiring to similar goals. I am not seeing much direct acknowledgement here of why those other projects failed, or measures to prevent that from happening with the Block protocol.<p>One common problem in semantic web projects, which Block doesn&#x27;t seem immune to, is that the authors of those projects seem to get stuck thinking about how to model the presentational components on a given web page (lists, forms, images, calendar widgets) instead of the actual real-world stuff that these things represent (the books on my shelf, my allergies, a picture of my dog, my birthday). Don&#x27;t get me wrong, richly-typed presentational components would be a big improvement. But I don&#x27;t think they should be the end goal (unless perhaps you&#x27;re in the blog-writing software business).<p>Web pages are just one of many vehicles that we use for shuttling around information about the real world. We should try to come up with a system that is capable of representing real-world semantic information regardless of how that information ends up getting turned into pixels. It may be a web page, it may be Siri reading it to me, it may be AR.<p>But when modeling real-world data, we always seem to walk into traps such as this (from the Block FAQ):<p>&gt; On other occasions you’ll want to store information differently than how it’s set out in the schema.org definition. For example, schema.org&#x2F;Person defines a person as having a givenName and a familyName and yet in various cultures this isn’t guaranteed. HASH uses preferredName and legalName instead - in communications and billing contexts respectively.<p>How do we design a semantic typing system for real-world data that is amenable to the inevitable need to evolve or amend the schema, or leave off certain fields from a type instance, or tack on a few extra fields? Should our applications eschew canonical types (like schema.org&#x27;s Person) in favor of a ducktyping approach (I don&#x27;t care if you give me a schema.org Person, or a blockprotocol.org Person, or a notpachet.org Dog, as long as the blob has a numeric field for the &quot;age&quot; key?
评论 #30112568 未加载
uoaeiover 3 years ago
Oh look, someone reinvented semantic web again.
评论 #30104431 未加载
评论 #30104372 未加载
评论 #30104376 未加载
评论 #30104361 未加载
评论 #30106004 未加载
spankaleeover 3 years ago
The security issue really should be front and center in a project like this. It&#x27;s kind of disappointing to see it left as an exercise for the embedder.<p>In the general case with untrusted 3rd party code the only really safe solution is to embed the blocks in cross-origin iframes. In the face of Spectre and Meltdown you really want those to be out-of-process iframes too, but that&#x27;s up to the browser.<p>iframes are cumbersome of course, so it would have been interesting to see the protocol focus on making them more seamlessly integrate with the embedding context with a standard postMessage protocol for things like securely forwarding content sizes (for auto-resizing the frame), events, and styling information across the frame boundary.
评论 #30113817 未加载
评论 #30107037 未加载
divbzeroover 3 years ago
How does the Block Protocol differ from or add to Web Components? Is it the standardization of how structured data that can be passed with the blocks?
评论 #30105910 未加载
zer0gravityover 3 years ago
As many have stated here, the problem is not that there aren&#x27;t good data exchange protocols in the world, the problem is the PROTOCOL or the MODEL by which the world works, which is maximizing financial profit, not civilizational profit. Humanity is not yet capable of acting as a whole, we&#x27;re still in a paradigm where each part is trying to rule the other parts. With this kind of mindset, a territorial mindset, it&#x27;s only logical that every actor out there is trying to control as much as it can, and create an advantage for itself. That&#x27;s why no sharing and cooperation data protocol catches, because those are incompatible with the current state of Affairs.
usbfingersover 3 years ago
Many have tried - very recently - and seemingly stalled or failed at creating something like this with wide adoption, most notably Tim Berners-Lee with the SOLID protocol<p><a href="https:&#x2F;&#x2F;solidproject.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;solidproject.org&#x2F;</a><p><a href="https:&#x2F;&#x2F;solidproject.org&#x2F;TR&#x2F;protocol" rel="nofollow">https:&#x2F;&#x2F;solidproject.org&#x2F;TR&#x2F;protocol</a><p>The roadblock is always getting major tech companies to accept it as a valid means of accessing user data.<p>The amount of times I&#x27;ve heard about SOLID on NPR or other popular mainstream newscasts only to garner little to no support is astounding. Definitely take note where others have seemingly failed here because it&#x27;s an uphill battle.
评论 #30107153 未加载
评论 #30107019 未加载
评论 #30106216 未加载
评论 #30106114 未加载
评论 #30106287 未加载
skybrianover 3 years ago
Back in the dot-com era we had &quot;portal servers&quot; which were basically a way to build a dashboard. This seems like a related idea? Put blocks in multiple columns and you have a dashboard.<p>Maybe it will do better this time? But I feel like mobile phones went in the opposite direction with UI&#x27;s designed for smaller screens, showing only one app at a time.<p>We do have lots of documents and notebooks though. Maybe Observable&#x27;s notebooks would benefit from something like this?<p>Observable&#x27;s notebooks let you define variables containing data and use them in other places, with live updates. It seems like you&#x27;d want something like that with blocks.
anderspitmanover 3 years ago
Interesting, especially since Joel Spolsky seems to be involved. Would like to see a comparison to microformats[0], RDFa, etc.<p>[0]: <a href="https:&#x2F;&#x2F;microformats.org&#x2F;wiki&#x2F;Main_Page" rel="nofollow">https:&#x2F;&#x2F;microformats.org&#x2F;wiki&#x2F;Main_Page</a>
dataangelover 3 years ago
Sometimes software projects become a parody of the industry, this feels like one of those times. Abstraction astronauting to the 10th power, &quot;A block is structured data&quot; okay so like nearly ANYTHING? &quot;You can send structured data between apps&quot;... so it&#x27;s JSON. &quot;But also things like images!&quot; ok, so files you&#x27;ve reinvented files. Maybe there is something actually useful here but Christ nobody is going to know based on this website.
评论 #30107017 未加载
评论 #30106923 未加载
评论 #30105430 未加载
lucasmullensover 3 years ago
So this seems to be a wrapper around web components, which might make web components easier to use in frameworks. By providing types, one could build a generator that takes a Block and creates a strongly-typed React&#x2F;Vue&#x2F;Svelte component, or even mobile components using a webview.
评论 #30106866 未加载
评论 #30106799 未加载
评论 #30105435 未加载
catchmeifyoucanover 3 years ago
This kind of reminds me of <a href="https:&#x2F;&#x2F;adaptivecards.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;adaptivecards.io&#x2F;</a> from Microsoft.
bamaziziover 3 years ago
Interesting timing! After more than 3 years of preaching this idea to every ear I could find, no one listened! So I&#x27;ve been building a whole &#x27;block oriented backend as a service&#x27; for a while now. Basically &quot;bring your own frontend&quot;<p>Event driven, CQRS, with workflow orchestration of LEGO like microservices around block oriented data structures!<p>Not an easy system to architect and build, but efforts like this are not only great validation or motivators but a great reference to compare and contrast!
评论 #30106805 未加载
评论 #30106867 未加载
irq-1over 3 years ago
To everyone that doesn&#x27;t get it, think desktop UI controls, but for the web. Joel explains it clearly on the intro blog post: <a href="https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2022&#x2F;01&#x2F;27&#x2F;making-the-web-better-with-blocks&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2022&#x2F;01&#x2F;27&#x2F;making-the-web-bet...</a><p>The strongly typed data is about not scraping the web; its typing for software reading the blocks and reusing the data.
blobbersover 3 years ago
Is the idea that you build your website out of the blocks of other websites?<p>As in TMZ and Techcrunch both publish something and you display their little blocks on your website? Is the data dynamic? It seems like there is data, and there is a block that can display said data.<p>How is this any different from a view and a model(+controller?)?
评论 #30113767 未加载
babyshakeover 3 years ago
This has nothing to do with Jack Dorsey&#x27;s Block, right?
评论 #30104248 未加载
评论 #30104266 未加载
评论 #30104467 未加载
flutetornadoover 3 years ago
I have always wanted Kindle to support a lot more features than what it does today. Digital books could be a lot more than what they are today. Want to embed a python REPL in a python book for users to test things right in the book, from a common source? Want to embed function graphs in a Math book from a common source? How about a theorem prover right there in the book? How about a Wolfram engine embedded in there to solve arbitrary calculus problems? How about a section in another book - license it from the other publisher and embed it into your book? Embedding a video, a web page, a 3D visualization engine, etc should all be possible in a digital book.<p>Looks like this maybe able to achieve all of this. Just need to get Amazon Kindle team on board with this.
评论 #30283804 未加载
metalliqazover 3 years ago
The idea is cool, but why would any major service support this? The whole point of every startup these days is to grow to the point where they can hog all the users on to their own proprietary platform. Interoperability is anathema to the modern way of thinking.
miniatureapeover 3 years ago
I think this is a really cool idea and something I have personally wanted (or at least thought I wanted) for a long time. In fact I wrote about a similar idea in 2013.[1]<p>To me, this is just one part of something bigger though. I want to be able to store code in blocks and compose them into bigger blocks by chaining them and pipelining them. I&#x27;d also like versioning and some access rules.<p><a href="https:&#x2F;&#x2F;justindonato.com&#x2F;notebook&#x2F;urls-as-pointers.html" rel="nofollow">https:&#x2F;&#x2F;justindonato.com&#x2F;notebook&#x2F;urls-as-pointers.html</a>
评论 #30108588 未加载
评论 #30118346 未加载
KoftaBobover 3 years ago
What would be really cool is if this concept could be expanded to allow a specific block on a website to be directly linked to. Currently, this is generally done by using a dom selector, which is super clunky and unreliable, since all it takes is for the id&#x2F;class name to be changed for it to stop working.
ericfloover 3 years ago
Widgets are back!
atarianover 3 years ago
Ohh I get it. It&#x27;s basically Docker&#x2F;shipping containers for content.
评论 #30106111 未加载
naaskingover 3 years ago
I think this really needs to make clear that this is a protocol for client-side components that run in a web browser. It was very confusing until I read Joel&#x27;s blog post.
alexaholicover 3 years ago
oEmbed[1] meets Schema.org[2]?<p>[1] <a href="https:&#x2F;&#x2F;www.oembed.com" rel="nofollow">https:&#x2F;&#x2F;www.oembed.com</a><p>[2] <a href="https:&#x2F;&#x2F;schema.org" rel="nofollow">https:&#x2F;&#x2F;schema.org</a>
euroderfover 3 years ago
So is there a sweet spot between microformats and Notion ?
评论 #30105510 未加载
pjkundertover 3 years ago
Blocks of data and the semantic rules for their creation (validation), reading, updated and deletion (CRUD), with composability, versioning and robust APIs?<p>That&#x27;s a pretty succinct description of the Holochain project. Turns out that it is pretty powerful, once implemented. It isn&#x27;t as simple as you might expect... :)
评论 #30105805 未加载
lootsauceover 3 years ago
Tried to sign up but can&#x27;t get past the user name page.
评论 #30106394 未加载
geektipsover 3 years ago
Noob Question: How does this compares to an oEmbed.
qwertyuiop_over 3 years ago
&quot;The Block Protocol is a global standard for building interactive blocks connected to structured data.&quot;<p>is this a W3C standard ? why are they claiming its a global &quot;standard&quot; &#x27;
gingkoguyover 3 years ago
Damn I thought square came out with something
lelandbateyover 3 years ago
I&#x27;ve read and perused this, and I have some specific questions.<p>1. According to the spec[0], a &quot;block package&quot; is &quot;a collection of files making a block type (which is &#x27;a definition and implementation&#x27;, the schema and the code) available for use by embedding applications, including its source code and accompanying metadata.&quot; However, when I browse to a &quot;block&quot;&#x2F;&quot;block package&quot; in the Block Hub[1], I&#x27;m presented with a demo of the &quot;block package&quot; in the form of a concrete &quot;block&quot;, a view of example data being provided to this &quot;block&quot;, and a view of the schema of this &quot;block&quot;. However, if this is meant to be a view of the &quot;block package&quot;, shouldn&#x27;t I also be able to find my way to the rest of this &quot;block package&quot;, i.e. where do I view the implementation code? The spec says that a block package includes its source code, and the block hub seems to be a browser of block packages, but it doesn&#x27;t give me the full view into said block packages. Is there a reason for this? Is it on the to-do list?<p>2. What&#x27;s going on with the type signatures here? I see a lot of what look like type signatures, in both the spec and the schemas. In reading the spec, it seems like the type signatures are being used pretty loosely, maybe as pseudo code of a sort, as I don&#x27;t see them being rigorously referred to. For example, I see that in &quot;Specification &gt; Block Types &gt; Entity type functions&quot;[2] under `createEntityTypes` it refers to accepting a type of &quot;CreateEntityTypesAction&quot; (no type signature), but then lower down it refers to accepting a type of &quot;CreateEntityTypesAction&lt;T&gt;&quot;, but then says that the shape of that entity is just two hard-coded fields, with no reference to the generic type &quot;T&quot;. What&#x27;s going on here? Then if I view an actual block in the Block Hub[1], I see that the schema for that block also has definitions for entities with some kind of type signature &#x27;something&#x27; going on e.g. &quot;#&#x2F;definitions&#x2F;Record&lt;string,{cellState:UseRowStateLocalState&lt;{},unknown&gt;;}&gt;&quot;. Maybe those are for use with something like TypeScript? I&#x27;m not familiar with TypeScript, so I don&#x27;t know how to parse those, though I do know that they&#x27;re not specifying anything at the level of &quot;JSON Schema&quot;[3], so I assume they&#x27;re related to either something in the spec or something in the implementation, or both. What&#x27;s happening here? Are these types in the schema owned by the implementation (e.g. they&#x27;re used by the source code of the implementation for JSX or something?), while the types in the spec are merely pseudocode?<p>If there&#x27;s already a pattern where additional layers of features such as typing&#x2F;templating are being shoved into the schemas of Blocks, might this make interop between blocks more difficult in the future?<p>[0] - <a href="https:&#x2F;&#x2F;blockprotocol.org&#x2F;spec#terminology" rel="nofollow">https:&#x2F;&#x2F;blockprotocol.org&#x2F;spec#terminology</a><p>[1] - <a href="https:&#x2F;&#x2F;blockprotocol.org&#x2F;@hash&#x2F;table" rel="nofollow">https:&#x2F;&#x2F;blockprotocol.org&#x2F;@hash&#x2F;table</a><p>[2] - <a href="https:&#x2F;&#x2F;blockprotocol.org&#x2F;spec&#x2F;block-types#entity-functions" rel="nofollow">https:&#x2F;&#x2F;blockprotocol.org&#x2F;spec&#x2F;block-types#entity-functions</a><p>[3] - <a href="https:&#x2F;&#x2F;json-schema.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;json-schema.org&#x2F;</a>
评论 #30113673 未加载
tadfisherover 3 years ago
org-mode plugin when?