dokieli is a clientside editor for decentralised article publishing, annotations and social interactions.


Write and publish

dokieli articles are completely decentralised! This means you publish where you choose, and we have no central servers to monitor or control your content or the interactions of your readers. Simply add the dokieli CSS and JavaScript to any HTML page to immediately add in-browser editing and annotations.

You can download the dependencies to work offline, or use them directly from Use in-browser local storage to save your changes or export to save to your harddrive, and to any webserver when you’re ready to share your article.

Personal datastores

In order to edit articles in the browser and save directly to server storage, as well as grant access to collaborators to edit, dokieli complies with the Solid protocol, based on the Linked Data Platform W3C standard. This is essentially a REST API for reading and writing Linked Data. Solid includes identity through WebID, access control through Web Access Control, and other enhancements for decentralised personal data management.

You can sign up for a demo personal datastore at databox, install an existing server implementation, or even make your own server implementation from the spec. Once you have this, you can store dokieli articles there, privately or publicly (or limited access to others with WebIDs), as well as use this space for replies and notifications (and data generated by other Solid apps).

Annotations and replies

Wherever your article is published, readers can leave annotations and replies if they have their own personal datastore to save them to. If your article is published on a Solid server, you can offer to store annotations and replies on their behalf, and enable anonymous responses too. All annotations and replies can be saved with a Creative Commons license.

Video of dokieli Web Annotation


dokieli implements Linked Data Notifications (Working Draft at W3C Social Web Working Group) for notifications about articles (or any part of them). Whenever someone interacts with your article through dokieli, you'll receive a notification in the appropriate inbox . Right now you get notifications for annotations, replies, shares, reviews, citations/links, bookmarks and likes.

Video of dokieli Share

Rich embedding

A dokieli article is simply an HTML document, so anything you can include in an HTML page you can include in your article. We’re adding new features to the UI to help with this all the time. You can directly embed raw data; in Turtle, JSON-LD, or TRiG (Nanopublications).

Identifiers and semantics

Unique identifiers (URIs) are automatically generated for every section of your article to make it easy for others to link and refer to them. You can add identifiers to any concepts you think are important at any level of granularity. Additionally, you can add descriptive markup to any concept or snippet of prose which has an identifier; dokieli generates RDFa markup under the hood so your ideas are exposed as Linked Data for others to query, reuse and visualise.

Remixing and replication

Readers can click save as on any of your articles to create a copy in their own datastore. This copy retains a link back to yours as a derivative work. This feature means that dokieli is a self-replicating application, spreading itself around the Web as ideas and discussions are spread.


Views are just stylesheets, so if you know CSS it's easy to make your own or customise our presets. You choose which to include with any of your articles according to what you think is useful for your audience, whether that's your personal website style or an academic paper layout. Every so often we add a new view, so keep an eye out.

Video dokieli

Video of dokieli


dokieli envisions research results, analysis and data all being produced interactively on the web and seamlessly linked to and from ‘papers’. Through annotations and notifications, the academic process of peer-review can be open, transparent and decentralised.

Video of semantic inline citations and notification in dokieli

This is in line with the goals of the Linked Research initiative. As an increasing number of conferences are accepting HTML submissions, you can write your paper with dokieli and export to HTML or PDF for submission; we provide stylesheets for LNCS and ACM publication layouts out of the box. Here is one article, about dokieli, and others in the wild.

Video of Sparqlines interaction in dokieli


dokieli is open source; you can find the code at This is very much a work in progress, so contributions, issues, bug reports and feature requests are welcome. You can also join the chat on Gitter.

We’re building dokieli to be something we want to use, so we encourage dogfooding! Check out examples in the wild.


What we’re currently working on

  • Docs!
  • Reusable HTML templates
  • Semantic markup editor
  • UI improvements and bug fixes

What we’ll work on next

  • ✔ Paragraph level annotations/replies
  • Storage settings for article replies and notification inboxes
  • Refactoring and modularising code
  • ✔ Displaying whole-article replies
  • ✔ Liking and bookmarking articles and subsections of articles
  • Reference/citation/link manager

On our radar

  • Threaded annotations/replies
  • ✔ Different types of annotations/replies, and ability to close them
  • ✔ Displaying notifications for interactions that aren’t annotations
  • Drop-in partial templates
  • UI improvements/customisation for authenticated users
  • Better handling of multimedia, figures, embedded scripts, maths and live data
  • Versioning/snapshotting articles
  • Realtime collaborative editing
  • A 'marketplace' for views/themes/styles and facility to quickly add/remove them from an article

If you are using dokieli and have feature requests, please do raise an issue or +1 an existing one! If you’re a developer, feel free to jump in and tackle any of these.

Dive in

This page itself is a dokieli document, so to get started, open the menu in the top right and click edit. You can change this page to your heart’s content, try out different views, then export the HTML and upload it somewhere you control.

If you have a Solid pod, you can click new (for a blank document) or save as (for a copy of this one) and choose where you'd like to save it. You'll be redirected to your new document, where you can edit away and have changes automatically saved to your pod. Of course, you’ll also be able to interact with your new document using other Solid applications!