Web Annotations (the W3C recommendation)


Web Annotations is a free, open Web standard specifying how to model and exchange annotations about Web resources.

Annotations are extremely flexible. Usually, an Annotation connects a Body, like a person’s comment, to a Target, like a news article. But Annotations can connect any number of Bodies (which could contain structured data) to one or multiple Targets. This means that people can use them for all kinds of custom purposes they make up themselves.

In Anytype, Annotations could provide a way for people to annotate their objects without “officially” adding blocks or relations to the objects themselves. Annotations could be shown alongside object content or be hidden at will. They can be attributed to Humans, and dated. And they can even annotate other Annotations, making possible conversational trees and graphs.


You’ll need the Web Annotation Data Model, and you might find helpful ways to build the UI in Embedding Web Annotations in HTML.

The two other standards, Web Annotation Protocol and Web Annotation Vocabulary probably aren’t needed, but you might find some interesting possibilities in the long run.


I offer two main use cases.

First, Annotations can be used collaboratively for Humans to communicate with each other about objects inside Anytype itself. Because they can be displayed alongside or on top of object content, they are easier and faster to use than creating custom Annotation or Comment objects using normal Types and Relations (although there is no reason why Annotations can’t be implemented as Types to which Anytype attaches extra functionality).

Second, and more exciting, is that because Annotations are a Web standard, they have to potential to annotate things outside of Anytype, such as webpages, or content in Notion or LogSeq. This means that Anytype can become a tool for annotating the entire world, not just objects in Anytype. With Web browser extensions, those annotations could be created, viewed, and edited directly in a Web browser while being immediately added as objects in Anytype.

To make that more concrete, suppose I and a group of friends all read the news from different sources. Provided with a Web browser extension, we could simply add annotations right on top of news articles on the Web that get sent directly into Anytype. Those Annotations could also be linked to objects in Anytype that could be pulled into the browser through the extension, so that the user can see relevant Anytype data displayed in their Web browser.

And since we’re using a shared space and Web browser extensions, Annotations written on a Web page by one person in one Web browser automatically appear on that page to other people in other Web browsers. Anytype becomes a fabric that lets people talk about the Web, on the Web, without using Facebook or reddit or other advertising-driven centralized services.


The use cases I describe can be done with a custom implementation. But as an open standard, using Web Annotations makes it possible for other people to build software that works with them, making it easier to import and export them between applications and services.