fastcomments-integrations VS yjs

Compare fastcomments-integrations vs yjs and see what are their differences.

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
fastcomments-integrations yjs
1 11
0 6,421
- 11.6%
7.5 8.4
5 months ago 2 days ago
JavaScript JavaScript
MIT License MIT
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.


Posts with mentions or reviews of fastcomments-integrations. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-08-17.


Posts with mentions or reviews of yjs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-29.
  • Consider SQLite
    13 projects | | 29 Dec 2021
    You have to handle the merge conflicts yourself, see

    So you need to be carful how you design your schema, but very possible.

    One option is to use something like Yjs and a JSON column to get proper CRDTs for merging.

  • Markdown editor for freedom!
    6 projects | | 21 Dec 2021
    🍻 Collaborate - Shared editing support with yjs
  • Automerge: a new foundation for collaboration software [video]
    13 projects | | 10 Dec 2021
  • Show HN: SyncedStore CRDT – build multiplayer collaborative apps for React / Vue
    11 projects | | 8 Dec 2021
    Hi! Great questions :)

    First of all, SyncedStore does not implement any CRDT algorithms. Credits for this go to Yjs [1] (and its author Kevin), which it uses as underlying CRDT.

    Yjs and Automerge are (afaik) the two most commonly used CRDT implementations. Both have their pros and cons, but Yjs has focused a lot on performance [2].

    Automerge has a bit friendlier "Immer style" [3] API. I'm not too familiar with @localfirst/state, but it seems to add a Redux style API on top of Automerge.

    My approach with SyncedStore was really to provide an API on top of Yjs that's as simple as possible to use in React / Vue / Svelte or plain JS app. I.e.: only use a single React Hook to observe changes, and use regular Javascript assigments to update values. The API is inspired mostly by Reactive Programming libraries such as MobX [4] (from the same author as Immer).

    Hope you're still following along :) Maybe it helps to compare the TODO-MVC applications, as both SyncedStore ( and @localfirst/state ( have implemented these as examples!


    11 projects | | 8 Dec 2021
    - if you modify a property "prop" and set it to "value" it will sync an update [set "prop" to "value"] along with some metadata

    It will not automatically diff these with the previous value (in a distributed system it's difficult to say what the "previous value" was, but it will sync only those properties that have been changed). For text heavy operations, you can use the Text structure which will sync fine-grained operations ([delete 4 characters at position 2] or [insert "world" at position 5]). This makes it suitable for collaborating on rich text documents (similar to Google Docs), see:

    This might also be an interesting resource to learn how the Yjs internals work (SyncedStore builds on top of this):

  • Where is the CRDT for syntax trees
    5 projects | | 3 Dec 2021
  • Todos: The Hard Parts
    3 projects | | 15 Sep 2021
    But still, frontend development is pretty damn hard! And that makes sense. Web applications can have interfaces as complex as IDEs and data exchange layers as complex as distributed databases.
  • A Simple Way to Build Collaborative Web Apps
    6 projects | | 17 Aug 2021
    I haven't yet done this but based on some research it seems to me like the core of any collaborative app today is easiest served by picking some CRDT library.

    There are a couple of open-source CRDT libraries that provide both clients and servers (yjs [0] and automerge [1] are two big ones for JavaScript I'm aware of).

    My basic assumption is that as long as you put all your relevant data into one of these data structures and have the CRDT library hook into a server for storing the data, you're basically done.

    This may be a simplistic view of the problem though. For example I've heard people mention that CRDTs can be space inefficient so you may want/have to do periodic compaction.



    6 projects | | 17 Aug 2021
    I've used YJS and can strongly recommend.

    Built a Google Docs like rich text collaborator for a client on Express/Psql and React. Worked like a charm (the hardest part was dealing with ports on AWS tbh).

    6 projects | | 17 Aug 2021
    That's a really nice tutorial. However, most of collaborative apps mentioned in the beginning operate on documents where merging concurrent edits by different users is more of a problem, and there's a really nice tool for that problem: CRDT ( and even ready to use libraries like Yjs (

    Of course, there's a lot of very senior HN users who already know about it. I only mention it because I never explored these tools before, learned about it a couple of months ago for the first time in my life and was really impressed.

What are some alternatives?

When comparing fastcomments-integrations and yjs you can also consider the following projects:

automerge - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.

automerge-rs - Rust implementation of automerge

pacman-backup - :floppy_disk: Pacman Backup tool for off-the-grid updates via portable USB sticks or (mesh) LAN networks.

player.html - One file drop-in video player web app for using video files served using basic directory listing

logseq - A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base. Use it to organize your todo list, to write your journals, or to record your unique life.

kanban - A basic kanban board in a single HTML file using browser native drag & drop and localStorage for persistence

Visual Studio Code - Visual Studio Code

crdt-woot - Implementation of collaborative editing algorithm CRDT WOOT.

Kanboard - Kanban project management software

chronofold - Chronofold is a conflict-free replicated data structure (a.k.a. CRDT) for versioned text.

cardi - A full-featured, static-generated PWA for notes stored in privately owned DynamoDB tables

awesome-react-state-management - ⚛️ ・React state management tools and libraries