Keep your data with you3 min read

Ethernet cable unplugged

Today, who would imagine working with colleagues, from home, with the tools we had 10 years ago ? I mean non-collaborative software, installed on your computer, and exchanging files by mail. Crazy, right ?

Collaborative software, like Google Docs, Office 360, and all those apps accessible from inside our web browsers are countless and keep adding up. They let many people write in the same document, edit the same mind-map, at the same time. And that is great ! Who doesn’t love it ? I think it’s one of the major innovations of the last decade. And it’ useful, even when you’re in the same room ! No need to gather around the same computer screen anymore.

All those apps work the same way. They use a server to centralize and merge the data. And that server is located at the other end of the country, if it’s not half way around the world.

A centralized system

This way of working has a few flaws. First of all, you absolutely need an internet connection. And a steady one. Because at each smallest disconnection you will be abruptly stopped in the middle of a task. And God, that’s annoying and counter-productive. If your bandwidth is not broad enough, every action you make will take time and slow you down a lot. Because the server will have to take your action into account, validate that you can do that, and execute the consequences of that action before giving you back the right to do something else. Needless to say that using those software whilst traveling is a bad idea.

But one other bad side effect I see in this, is that the data do not belong to the user anymore. I mean, legally it may, but really, where is your data ? If you loose your credentials, if you temporarily don’t have any access to Internet, or I don’t know… what if the server is destroyed ? You don’t really possess your data. You don’t own it.

Local first

This topic is a big concern at Naept. Is there a way to share data, to work collaboratively, without depending on a server thousand of miles away when we are in the same room ? Without felling the flaws in my internet connection ? Having the actual files available at any time, up-to-date, on my computer or my smartphone ?

I’ve encountered the Youtube channel of a Researcher in computer science named Dr. Martin Kleppmann. And in this particular video, he presents the latest research on a technology called CRDT.

CRDT stands for Conflict-free Replicated Data Types. And that is a game changer for the future of collaborative software. It brings a solution for merging data safely. Up until now, the solutions generated too much overhead data to be usable.

A team is working on Y.js, a CRDT javascript library for collaborative solutions. The next generation of tiptap, which we use at Naept, is using this library.


If local-first software, and data ownership is something that interest you, I recommend reading this article : https://www.inkandswitch.com/local-first.html

Related Posts

Leave a Reply