Tenfold: Celebrating 10 Years of Ink & Switch
Livelymerge

When people write collaborative software, they usually communicate the state of a program over the network using some protocol. They might use something like REST to send API calls, or stream UDP packets with the state of a multiplayer game. I’m not aware of anyone implementing RFC2549, but in principle, you could.

In our ongoing Livelymerge project, we’re exploring what it feels like to put the entire state of a program into a shared collaborative database (Automerge, unsurprisingly). That includes the code, the state of any object in the system… the whole thing.

Livelymerge documents can be collaboratively edited, taken offline, synchronized, forked, or rewound. This leads to all kinds of exciting opportunities and difficult problems. In fact, in a meaningful sense, we’ve known this project was doomed from the outset.

Fans of systems in the Smalltalk lineage might recognize Livelymerge as a descendant of Lively Kernel, and Dan Ingalls has built a new implementation of Morphic on top of Alex’s transpiler and runtime for experimenting. This environment has had all kinds of interesting challenges – like managing the speed at which the Automerge document grows!

The ongoing project continues to explore the possibility-space by discovering (or creating) a problem and then trying to resolve it. If you’d like to learn more, you can see all the fun gifs and thorny problems by browsing our ongoing series of lab notes.


Notes

As we explore ideas we publish our internal notes, memos, sketches, and dialogues.