ot.js VS collabs

Compare ot.js vs collabs and see what are their differences.

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
ot.js collabs
2 2
2,019 235
0.0% 0.9%
0.0 5.9
almost 2 years ago 3 days ago
JavaScript TypeScript
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ot.js

Posts with mentions or reviews of ot.js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-16.
  • You don't need a CRDT to build a collaborative experience
    6 projects | news.ycombinator.com | 16 Nov 2023
    This single file shows the entire set of OT transformations (retain, insert, delete):

    https://github.com/Operational-Transformation/ot.js/blob/mas...

    and this is a good post outlining the basics of OT, from the creator of CodeMirror:

    https://marijnhaverbeke.nl/blog/collaborative-editing-cm.htm...

  • Show HN: Rustpad, a self-hosted online collaborative text editor in Rust
    3 projects | news.ycombinator.com | 5 Jun 2021
    Thanks! Operational transformation is the same technology that powers Google Docs. It's been studied in academia for real-time collaboration since the 1990s and has eventual consistency guarantees. See the Wikipedia article: https://en.wikipedia.org/wiki/Operational_transformation

    The Rust operational-transform library was not written by me, but it's listed on crates.io by spebern, and it's worked wonderfully so far. It seems to be a very close port of ot.js (https://github.com/Operational-Transformation/ot.js). The text transformation algorithm isn't very complicated (<700 SLOC including tests), but there's probably room for optimization!

collabs

Posts with mentions or reviews of collabs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-16.
  • You don't need a CRDT to build a collaborative experience
    6 projects | news.ycombinator.com | 16 Nov 2023
    > Opaque State: [...] You can’t inspect your model represented by the CRDT without using the CRDT library to decode the blob, and you can’t just store the underlying model state because the CRDT needs its change history also. You’re left with an opaque blob of data in your database.

    As someone who works on a CRDT library with opaque state [1], I agree that this is a big barrier to adoption. Features like partial loading, per-paragraph permissions, and accept/reject suggestions seem pretty easy to implement if each text char is just a row in your server's DB, but I would have trouble implementing them on top of e.g. Yjs.

    For text editing, one idea is to separate the CRDT "positions" from the text itself, which you can then store as a map (position -> char) in your own data structures. I've made a simple (but inefficient) library along these lines [2] and would be interested in ideas for further development.

    [1] Collabs - https://collabs.readthedocs.io

    [2] position-strings - https://www.npmjs.com/package/position-strings

  • Collabs, a collections library for collaborative data structures
    1 project | news.ycombinator.com | 21 Jul 2023

What are some alternatives?

When comparing ot.js and collabs you can also consider the following projects:

rustpad - Efficient and minimal collaborative code editor, self-hosted, no database required

rich-text - Format for representing rich text documents and changes

othello-ocaml - Reimplementation of https://github.com/jahfer/othello in OCaml programming language

othello - Operational transform library for Clojure + Clojurescript