Was Frederic Laloux's work (Reinventing Organizations) an inspiration at all in your journey exploring these topics? Seems like very similar territory, albeit from a different perspective.
Nice! Reminds me of the ooo-wow early LLM days where those little explain-Regexps one-off sites were popping up everywhere. Seems inevitable that the LLMs will slurp up this functionality natively as well
Reminds me of those "birthday challenges" I see a lot of here in the mountain west: e.g. climb 25 pitches on your 25th birthday, run 28 miles on your 28th, etc. Gets a lot harder (or more contrived) as you get older!
From my limited exploration and talk with Justin over at http://www.kinematicsoup.com, the requirement for low latency combined with a lot of large binary data requires different approaches.
There has been a proliferation of realtime collaboration within code editors because the underlying data model (a string!) is so simple. As you mentioned, you would need to define a sufficient protocol encapsulating the common functionality between code editors along with defining which aspects would be shared and broadcasted vs kept private (e.g. an independent vs "follow" mode).
The data model could easily be defined in Convergence.
Implementation-wise, the primary limitation would be that at the moment we only offer a javascript/typescript client. I haven't explored the VSCode base but I know it was written in TS and provided as a "native app". We do have an example of Convergence running in node.js (NWJS).
You can currently already do good-enough-for-most DOM-level synchronization using any editor, of which we have a few examples. A lot of the examples of RTC out there (apps using TogetherJS for instance) are doing this already. For rich text, we'd like to be able to provide 100% support for a particular editor's capabilities, which necessitates a deeper, custom data model.
One of our value propositions is a unified backend for dealing with any JSON data (and eventually beyond), avoiding binding server-side code to a particular choice of UI component.
Indeed, the space is growing quickly. I run a company that provides a backend for real-time collaboration, so we necessarily stay on top of what's out there. There's a reason the server-side tech tends be paid: it is extraordinarily difficult to provide guaranteed eventual consistency of data at low latency. The CKEditor guys (and us, for that matter) have put YEARS of development effort into their solutions.
We're working on both offline mode and a generic rich-text data model with support for the major editors.
If anyone's interested, I'd happily do some Q and A here.
Convergence Labs | Mid-level Frontend React Developer | Salt Lake City, UT or REMOTE | Contract | $7-9K / month
Convergence Labs is the creator of Convergence, the world's first API designed from the ground up for collaborative co-editing. We do consulting work as well and recently landed an extremely interesting and ambitious project that is a perfect fit for our product. You would be our first hire and work directly with the founders.
This would be an excellent position for a smart and ambitious FE developer with a couple years of React experience. You'd be working directly with three industry veterans on a potentially transformative collaborative consumer-facing application. We are small and flexible, so just about everything is negotiable: 1099/W2, rate/salary, working from home, hours, equity, whatever.
Even as the author, I think web-based IDEs have pretty limited utility, but it is a great showcase for the power of our API. We (my co-founder and I) built this in about 10 days.
The fact that that article needs 10 plus pages to describe one of the simplest use cases belies the unfortunate underlying truth: OT (and realtime co-editing) is intractably difficult for all but the most constrained data models. Which is a pity because it is undeniably cool, and why we built Convergence (https://convergencelabs.com) -- general-purpose realtime collaboration.
Yup, I just wrote an article [1] about just this. Simultaneous co-editing doesn't work unless the UX includes the appropriate cues to avoid this sort of thing. There are astoundingly few good examples of good (much less great!) real-time coediting UXes. This is the primary reason why we added first-class support for these cues so that it's not so damn hard!
Very cool to see this on the front page. I would agree that for the use case of plain text, yes, the problem has been solved, but for just about anything more complicated it quickly becomes intractable. Rich Text, for example, is extremely difficult to get right (ask the ckeditor guys!)
For those wanting real-time collaboration functionality in their apps but don't have the intellectual curiosity (or time!) to learn the ins and outs, we [1] built a general-purpose API for folks to add real-time collaboration to their web apps. Think Firebase but designed from the ground up for simultaneous editing and with additional first-class support for common UX needs such as shared cursors and selections. We agree that the web is moving in this direction and are excited to see what gets built!
Thank you for the technical details. Probably a bit late for you guys, but we offer a BaaS tailor-made for this sort of product. For instance you could add multiple mouse tracking and selection awareness in a matter of hours with our APIs. Check out our diagram demo for a taste: https://convergencelabs.com/demos/
Congratulations on what looks like a very impressive piece of software. Do you guys have any plans to add collaborative features to Construct? Where, say, students in a remote classroom could work on the same game together?
It's $225 a month for a reserved desk which is essentially a less closed-off cubicle with a lockable file cabinet. This was comparable to other coworking locations in my city (Salt Lake).
I live in a bikeable medium-sized city (Salt Lake), so it's a ten-minute bike ride or 20-minute bus ride for me. I really like the atmosphere of being downtown, especially all the food options.
After working from a home office for five years, moving into a coworking space last fall was a game-changer. I'm not the kind of person that gets excited about much, but I couldn't help but wax poetic about it to every person I talked to for a solid month. The work-life separation, perks of being downtown, and network effects of being around other entrepreneurs has hugely amped up my productivity and opened doors for my businesses. I've heard that the quality of these spaces varies widely, but as a developer all I need is a permanent desk to leave my monitor/keyboard/mouse, for the third of the price of an office.
Rewriting your web app in AngularJS? Get expert help. I'll lay out your project architecture, deliver a proof of concept, and train your developers on "the Angular way."
The difference is posting a price for your consulting product, which should be well-defined by the consultant and with a pre-determined scope and time budget. Every example mentioned is for a product.
For your typical client engagement, yes, you won't want to post prices. Unless your business is well-defined enough to be able to target specific types of clients, each with its own landing page and predictable project scope.