TypeScript CRDT

Open-source TypeScript projects categorized as CRDT

Top 16 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: Are we making the best notion open source alternative? | news.ycombinator.com | 2024-01-20

    Also has a self-hosted version however it’s a bit out of date with their SaaS product

    https://github.com/toeverything/AFFiNE#self-host

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

    https://github.com/evoluhq/evolu

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

  • Project mention: Help - chat server | /r/node | 2023-04-29
  • hyperhyperspace-core

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

  • 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

  • osmosis-js

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

  • dotted-logootsplit

    A delta-state block-wise sequence CRDT

  • crdt-woot

    Implementation of collaborative editing algorithm CRDT WOOT.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS 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

Index

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

Project Stars
1 AFFiNE 30,287
2 RxDB 20,581
3 FluidFramework 4,613
4 blocksuite 3,775
5 liveblocks 3,042
6 SyncedStore 1,618
7 evolu 1,046
8 hocuspocus 995
9 triplit 840
10 Matrix-CRDT 713
11 hyperhyperspace-core 193
12 state 176
13 mute 123
14 osmosis-js 51
15 dotted-logootsplit 51
16 crdt-woot 16

Sponsored
The modern identity platform for B2B SaaS
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
workos.com