TypeScript CRDT

Open-source TypeScript projects categorized as CRDT

Top 18 TypeScript CRDT Projects

  • AFFiNE

    There can be more than Notion and Miro. AFFiNE(pronounced [ə‘fain]) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.

  • Project mention: Open-source, and ready-to-use alternative for Notion and Miro | news.ycombinator.com | 2024-05-09
  • RxDB

    A fast, local first, reactive Database for JavaScript Applications https://rxdb.info/

  • Project mention: Ask HN: How Can I Make My Front End React to Database Changes in Real-Time? | news.ycombinator.com | 2024-04-17

    I'm interested in this problem also!

    I think there is a large overlap with projects that market/focus on offline-first experiences.

    AFAIK this problem can be solved by:

    1) Considering a client-side copy of the database that gets synced with the remote DB. This is an approach [PowerSync](https://www.powersync.com/) and [ElectricSql](https://electric-sql.com/) and [rxdb](https://rxdb.info/) take!

  • 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 logo
  • FluidFramework

    Library for building distributed, real-time collaborative web applications

  • Project mention: FluidFramework: Build distributed, real-time collaborative web applications | news.ycombinator.com | 2024-01-11
  • blocksuite

    🧩 Content editing tech stack for the web - BlockSuite is a toolkit for building editors and collaborative applications.

  • Project mention: BlockSuite is the open-source block-based editor | news.ycombinator.com | 2023-07-26
  • liveblocks

    Liveblocks is a platform to ship collaborative features like comments, notifications, text editors in minutes instead of months.

  • Project mention: Edit This Blog Post | news.ycombinator.com | 2024-02-06

    Absolutely! The real complexity comes from conflict resolution. If someone edits the top, and someone else edits the bottom, which version do you go with? What if they're editing the same area? Entire companies exist to provide elegant solutions to this[0], so it's no simple task.

    0: https://liveblocks.io/

  • SyncedStore

    SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.

  • Project mention: Local-first software: You own your data, in spite of the cloud (2019) | news.ycombinator.com | 2023-10-02

    This article has been quite the inspiration for many projects and progress on this front. I think we're seeing more and more developments around CRDTs and local-first frameworks / applications.

    I'm working on a few projects in this area:

    - https://www.typecell.org - Notion meets Notebook-style live programming for TypeScript / React

    - https://www.blocknotejs.org - a rich text editor built on TipTap / Prosemirror that supports Yjs for local-first collaboration

    - https://syncedstore.org - a wrapper around Yjs for easier development

    In my experience so far, some things get more complicated when building a local-first application, and some things get a lot easier. What gets easier is that once you've modeled and implemented the data-layer (which does require you to rethink / unlearn a few principles), you don't need to worry about data-fetching, errors etc. as much as in a regular "API-based" app.

    Another interesting video I recommend on this topic is about Linear's "Sync Engine" which employs some of the local-first techniques as well: https://www.youtube.com/watch?v=Wo2m3jaJixU

  • evolu

    Local-first platform designed for privacy, ease of use, and no vendor lock-in

  • Project mention: Local-first software: You own your data, in spite of the cloud (2019) | news.ycombinator.com | 2023-10-02

    I made a local-first platform designed for privacy, ease of use, and no vendor lock-in to sync and backup precious data using SQLite and CRDT.


  • 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.

    InfluxDB logo
  • hocuspocus

    The CRDT Yjs WebSocket backend for conflict-free real-time collaboration in your app.

  • Project mention: Launch HN: Tiptap (YC S23) – Toolkit for developing collaborative editors | news.ycombinator.com | 2023-08-01

    Hi HN! We're Nick, Patrick, Philip, Sebastian, Sven, and Timo from Titap (https://tiptap.dev/), an open source developer toolkit for building collaborative editing apps. Our editor framework, based on ProseMirror, is at https://github.com/ueberdosis/tiptap, and our real-time collaboration backend, based on Yjs, is at https://github.com/ueberdosis/hocuspocus.

    Building editor interfaces like Notion or Google Docs in your web app takes a lot of work and time. Our open source tools and cloud services let you build collaborative content editing faster—in days or weeks, rather than months or years. And this is just for the editor. If you want real-time collaboration or other advanced features like version history in your editor, the overall workload quickly escalates—you will need a robust and serious backend infrastructure that requires even more time to set up and maintain. This doesn’t make sense for most frontend developers or most startups.

    We spent eight years as a digital agency developing applications with complex content editing functionality. We learned the hard way how limited the existing editors were. After building Tiptap as a headless editor framework with an extension-based architecture, we needed to allow multiple users to edit content simultaneously, which got complicated. There was no simple solution that could be integrated quickly. So we built that too.

    The Tiptap editor is based on the JS framework ProseMirror, which is a good foundation for editors. The learning curve for ProseMirror is steep because it's complicated to understand and lacks simple APIs and documentation. It takes a lot of code around ProseMirror to develop a modern user experience. We’ve taken care of that for you.

    Tiptap is headless, so it will work with whatever frontend or design you have in mind—we make no assumptions about your UI. You can use it to develop block-based editors like Notion, classic interfaces like Google Docs, or whatever you need. It's also framework agnostic, so you can use it with React, Vue, etc., or vanilla JavaScript. And it's highly customizable through our extension architecture. We also provide an API to access ProseMirror's internals through Tiptap if you want to dig deep into the core.

    Adding real-time collaboration to your editor is as easy as installing and configuring an extension. Our collaboration backend, called Hocuspocus, uses Yjs. This is a widely used implementation of CRDTs (conflict- free replicated data type). Hocuspocus makes it easy to set up a Node.js websocket server to handle communication between multiple peers to synchronize data. Like the Tiptap editor, Hocuspocus is designed to be extensible according to your needs. Also, Hocuspocus can work independently of Tiptap with other editors like Lexical or Slate.

    An earlier version of Tiptap got discussed a couple years ago at https://news.ycombinator.com/item?id=26901975. We’ve been enjoying wider adoption since then. For example, Substack uses Tiptap for their editor that allows creators to write content on substack.com, and YC uses Tiptap in their Bookface forum (which is basically HN for YC alums).

    With the Tiptap Cloud, we offer managed backend services if you don't want to build and maintain every feature yourself. For real-time collaboration, we provide a cloud infrastructure with multiple datacenter regions where you can deploy Hocuspocus. The Tiptap AI integration beta is a service where you connect your OpenAI API key to our backend and install the Tiptap editor AI extension to get AI writing experience in your editor. Here’s a demo: https://ai-demo.tiptap.dev/

    We invite you to explore Tiptap's capabilities in your app, contribute to its open source development, and (hopefully!) join our welcoming community. We'd love to hear what you've already built with Tiptap or what's stopping you from creating something with it :-) We look forward to all of your comments!

  • triplit

    A full-stack, syncing database that runs on both server and client. Pluggable storage (indexeddb, sqlite, durable objects), syncs over websockets, and works with your favorite framework (React, Solid, Vue, Svelte).

  • Project mention: Triplit: Open-source DB that syncs data between server and browser in real-time | news.ycombinator.com | 2024-01-12

    If you want to try that out, we use Sqlite in our server implementation so you can see an example there: https://github.com/aspen-cloud/triplit/blob/main/packages/se...

  • Matrix-CRDT

    Use Matrix as a backend for local-first applications with the Matrix-CRDT Yjs provider.

  • hyperhyperspace-core

    A library to create p2p applications, using the browser as a full peer.

  • fireproof

    Realtime database, runs anywhere. Install Fireproof in your front-end app or edge function, and sync data via any backend.

  • state

    A Redux-based state container for local-first software, offering seamless synchronization using Automerge CRDTs. (Formerly known as 🐟 Cevitxe). (by local-first-web)

  • mute

    a scalable collaborative document editor with CRDT, P2P and E2EE

  • dotted-logootsplit

    A delta-state block-wise sequence CRDT

  • osmosis-js

    JS reference implementation of Osmosis, a JSON data store with peer-to-peer background sync

  • crdt-woot

    Implementation of collaborative editing algorithm CRDT WOOT.

  • nbfm

    File manager + CRDT Note Editor

  • Project mention: Show HN: Serverless collaborative notion-level note editor using CRDT in GO | news.ycombinator.com | 2024-05-07
  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

TypeScript CRDT related posts

  • Open-source, and ready-to-use alternative for Notion and Miro

    1 project | news.ycombinator.com | 9 May 2024
  • Are we making the best notion open source alternative?

    1 project | news.ycombinator.com | 20 Jan 2024
  • Triplit: Open-source DB that syncs data between server and browser in real-time

    7 projects | news.ycombinator.com | 12 Jan 2024
  • Show HN: RemoteStorage – sync localStorage across devices and browsers

    6 projects | news.ycombinator.com | 12 Jan 2024
  • Show HN: Triplit – The Full-Stack Database

    1 project | news.ycombinator.com | 29 Dec 2023
  • Show HN: Algora – open-source coding bounties

    3 projects | news.ycombinator.com | 4 Oct 2023
  • Local-first software: You own your data, in spite of the cloud (2019)

    8 projects | news.ycombinator.com | 2 Oct 2023
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 21 May 2024
    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. Learn more →


What are some of the best open-source CRDT projects in TypeScript? This list will help you:

Project Stars
1 AFFiNE 33,664
2 RxDB 20,782
3 FluidFramework 4,633
4 blocksuite 3,908
5 liveblocks 3,094
6 SyncedStore 1,631
7 evolu 1,089
8 hocuspocus 1,031
9 triplit 892
10 Matrix-CRDT 712
11 hyperhyperspace-core 194
12 fireproof 190
13 state 176
14 mute 123
15 dotted-logootsplit 52
16 osmosis-js 51
17 crdt-woot 16
18 nbfm 180

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives