A Simple Way to Build Collaborative Web Apps

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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

    Shared data types for building collaborative software

  • 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

  • automerge

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

  • 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

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

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

  • If this [0] is what you're talking about, at the moment yjs and automerge are significantly more full-featured and used by many major companies.

    [0] https://github.com/dkellner/chronofold

  • fastcomments-integrations

  • At FastComments we store every change as an event, which can either be pushed or polled. Clients subscribe, and poll on reconnect.

    Also, integrations use polling: https://github.com/FastComments/fastcomments-integrations/tr...

    The integrations work kind of like DB slave replication. They do an initial sync and then maintain state via the event stream.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: Collaborate on your YC Application with CRDT-powered forms

    1 project | news.ycombinator.com | 21 Feb 2024
  • Wormholers, what can CCP and wormholers do to improve J-Space?

    1 project | /r/Eve | 7 Jul 2023
  • How does Google docs send the changes done by other users in real-time?

    1 project | /r/computerscience | 19 Apr 2023
  • Show HN: Nostr-CRDT – real-time collaborative apps over Nostr

    2 projects | news.ycombinator.com | 8 Feb 2023
  • Yjs: Shared data types for building collaborative software

    1 project | news.ycombinator.com | 3 Dec 2022