Webstrates A research prototype enabling collaborative editing of websites through DOM manipulations.


The user may subscribe to certain events triggered by Webstrates, allowing the user to get notified when Webstrates has loaded, an element changes, a user joins, a signal arrives, etc.


Transient data is temporary, local data, i.e. data that does not get persisted or synchronized to other clients, and disappears on reload. Transient data is made through transient elements and attributes.


Webstrates has a built-in cookie mechanism that allows logged in users to persist JavaScript objects across devices.

Oplog and Activity History

webstrate.getOps() lets the user access the oplog. webstrate.user.history() makes it possible to query the server for a list of webstrates the user recently has been active in.


Assets (or files) can be attached to webstrates through POST requests. Just like webstrates, assets are versioned. Steps can be made when uploading CSV files to make them searchable.

Client Management

Tools for monitoring clients currently connected to a webstrate, as well as monitoring all the current user’s connected clients to any webstrate on the server.


Send messages to other connected users through DOM elements, both primitive (serializable) objects, but also WebRTC-based peer-to-peer data streaming.


Messaging allows users to send cross-webstrate messages between users, even when a user isn’t online. It’s basically emails for Webstrates.


To easier manage versions of webstrate documents, Webstrates implements tagging. Tagging allows users to attach unique string identifiers (tag labels) to specific versions of a webstrate.

Throttle and Compose

Performance can suffer for webstrates with lots of activity. To remedy this, developers can use the op-compose attribute to lessen the strain of operations by combining them. Likewise, ot-throttle can be used to reduce the number of operations sent to the server altogether.

Protected Mode

Protected mode allows developers to make the creation of all new elements or attributes transient to prevent accidental DOM pollution by extensions and libraries.


Create and manage read and write permissions on a per-webstrate basis on OAuth-enabled Webstrates servers.

Access Tokens

An access tokens allows users to temporarily grant permissions to other users to act on their behalf. An access token grants a user the same permissions to a webstrate as the user who generated the access token.

Prototype, Restore and Delete

Webstrates has very fine-grained versioning control, saving every key stroke in the operations history. This allows users to restore documents to previous versions (or tags). A complete deletion of a webstrate is also possible, as well as prototyping from other webstrates.