Hacker News new | past | comments | ask | show | jobs | submit login

Tooling for developing real-time collaborative remote working environments is about to take of dramatically.

CRDTs [0], while complex to work with untill recently, are now so much easer for developers to use with toolkits such as Yjs[1] and AutoMerge[2]. SAAS and PAAS companies proving tooling around these, enabling developers to easily build collaborative tools for specific niches and verticals are going to explode into the market.

Every 5-ish years there is a big “new” database tech that receives massive investment for both enterprise and small business. Real time CRDT based data stores are the “next big thing” - in my view.

CRDTs are often only talked about in relation to rich text editing, but “generic” CRDTs that represent “standard” data types (think JSON), and basic operations to them (inset, edit, remove) are able to represent so much more. You can use them for building so many CRUD type business apps, and by using a CRDT as your base data representation you get conflict free collaborative (and offline) editing for free.

The nice thing about both Yjs and AutoMerge is that they provide both Rich Text and JSON-like data types, covering 95% of what people would need for building business apps.

0: https://en.m.wikipedia.org/wiki/Conflict-free_replicated_dat...

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

2: https://github.com/automerge/automerge




Did this 20 years ago in an FMMS. It's not worth it. It's better to have an arbiter source of truth that can guarantee ACID principles with transactions rather than introduce merge conflicts or lose transactions for lack of synchronization. The internet is almost everywhere, so use that rather than provide academic features that cause more headaches than they solve. SQL databases with transactions and row locks are invaluable inventions.

Also, if you want to collaborate, synergize, innovate, and revolutionize consider OTs. They're a known quantity. Handling merges of data is fraught with landmines.

You can't sell 2 of something to the same person offline and know if they wanted 1 or 2. Plus, giving an end user the ability to resolve merge conflicts is asking for theft and fraud.


Actually the theory to do this correctly didn't exist 20 years ago, so things truly are different now.


Sources and references help you make your argument shine!


Not a “proper” reference but according to Wikipedia (https://en.m.wikipedia.org/wiki/Conflict-free_replicated_dat...):

> The CRDT concept was formally defined in 2011 by Marc Shapiro, Nuno Preguiça, Carlos Baquero and Marek Zawirski.

Now, that’s not to say the gp wasn’t referring to using some of the CRDT concepts before they were defined collectively under that banner.


i don’t want to realtime collab. i want to concentrate and get my shit done. slack is a nightmare for example. there is always a fool constantly interrupting your flow.


You might be missing the point. Some examples of realtime collaboration in the world of remote work can be: google docs / sheets, project boards (trello, miro), whiteboarding (jamboard, zoom), design/drawing, or even coding (VS code sharing).


> even coding (VS code sharing).

Damn that sounds terrible. I'll give points for google docs, but i am unconvinced by the rest.


Collaborative content creation in tools like Miro/Lucid can work well, especially when on an audio call at the same time. It’s the best execution of the whiteboard experience in a remote working environment that I have experienced so far.


who wants to be constantly on audio calls while writing software?


yeah, I don't get this either. Then again, I never understood pair-programming either. Git is enough collaboration for me ;)


i don’t. like i said, i want peace and quiet to focus on my work.


The same technology that makes realtime collaboration (e.g., figma) go is the technology that makes it possible to build high performance single-user apps that you can open on your phone and desktop at the same time (e.g., roam). It's collaboration whether it's two users or two devices from the same user.

The web will go multiplayer because it's the only way to make high performance UIs that are multi-device without locking. The multi-user realtime collaboration bit just comes along for the ride.


as always in this industry, in love with the tech and not paying attention to how this can be abused


Agreed. I chunk slack messaging the same way I do email. I have two channels that I'll take realtime notifications on, but if someone raises those flags without very.good.reason, they'll hear about it. I generally won't see anything on those channels more than once a month.

For special 'war room' projects I'll set up a special channel that I'll pay attention to for real time colab, but those are very unusual situations with a well defined end date.


Another project to add to the list is Replicache https://github.com/rocicorp/replicache


Sync work process is inefficient. 80% of the time I would define work process to be asynchronous e.g. with git branch, pull request, docs, backlogs. This is efficient collaboration.

Real-time collaborative tool is a thing but not going to be big.

Ideally, I would go 100% async work if possible.


Figma is a pretty good example of real-time collaboration while still maintaining an asynchronous primary workflow.


Pair designing could happen while meeting where there's not only approval process but also some tweaks here and there. In normal workflow, work should be done as single responsibility (feature) per designer. Synchronous workflow within tool is not that better than it's done by talking (letting 1 person doing it)


I like where this is going. I feel append-only architectures are under appreciated.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: