yjs VS Visual Studio Code

Compare yjs vs Visual Studio Code and see what are their differences.

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • OPS - Build and Run Open Source Unikernels
  • SonarQube - Static code analysis for 29 languages.
yjs Visual Studio Code
11 1154
6,294 126,417
9.8% 1.4%
8.4 10.0
1 day ago 4 days ago
JavaScript TypeScript
MIT MIT License
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.

yjs

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 | news.ycombinator.com | 29 Dec 2021
    You have to handle the merge conflicts yourself, see https://www.sqlite.org/session/sqlite3changeset_apply.html

    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.

    https://github.com/yjs/yjs

  • Markdown editor for freedom!
    6 projects | dev.to | 21 Dec 2021
    🍻 Collaborate - Shared editing support with yjs
  • Automerge: a new foundation for collaboration software [video]
    13 projects | news.ycombinator.com | 10 Dec 2021
  • Show HN: SyncedStore CRDT – build multiplayer collaborative apps for React / Vue
    11 projects | news.ycombinator.com | 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 (https://github.com/YousefED/SyncedStore/tree/main/examples) and @localfirst/state (https://github.com/local-first-web/state/tree/main/examples/...) have implemented these as examples!

    [1]: https://github.com/yjs/yjs

    11 projects | news.ycombinator.com | 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: https://syncedstore.org/docs/advanced/richtext.

    This might also be an interesting resource to learn how the Yjs internals work (SyncedStore builds on top of this): https://github.com/yjs/yjs/blob/main/INTERNALS.md

  • Where is the CRDT for syntax trees
    5 projects | news.ycombinator.com | 3 Dec 2021
  • Todos: The Hard Parts
    3 projects | dev.to | 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 | news.ycombinator.com | 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.

    [0] https://github.com/yjs/yjs

    [1] https://github.com/automerge/automerge

    6 projects | news.ycombinator.com | 17 Aug 2021
    I've used YJS and can strongly recommend. https://github.com/yjs/yjs

    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 | news.ycombinator.com | 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 (https://en.wikipedia.org/wiki/Conflict-free_replicated_data_...) and even ready to use libraries like Yjs (https://docs.yjs.dev).

    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.

Visual Studio Code

Posts with mentions or reviews of Visual Studio Code. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-19.

What are some alternatives?

When comparing yjs and Visual Studio Code you can also consider the following projects:

doom-emacs - An Emacs framework for the stubborn martian hacker

Spyder - Official repository for Spyder - The Scientific Python Development Environment

vscodium - binary releases of VS Code without MS branding/telemetry/licensing

reactide - Reactide is the first dedicated IDE for React web application development.

Atom - :atom: The hackable text editor

KDevelop - Cross-platform IDE for C, C++, Python, QML/JavaScript and PHP

SharpDevelop

MonoDevelop - MonoDevelop is a cross platform .NET IDE

HomeBrew - 🍺 The missing package manager for macOS (or Linux)

Brackets - An open source code editor for the web, written in JavaScript, HTML and CSS.

Geany - A fast and lightweight IDE

Visual Studio Community - GitHub Extension for Visual Studio