There has been a move for some time now, which continues to gather pace where people don’t want their data in the cloud on some large companies servers where they have no idea who might be looking at it or profiting from it.
My background was developing Windows Desktop software where everything was stored on your PC and you copied files around from PC to PC as needed. Cumbersome and fraught with missteps which could easily leave you in a pickle.
After many years of doing Desktop software I moved to Web Application development where data was stored on servers under my control and could be accessed from any device effortlessly.
For Knowledge Base applications like our original Clibu App this meant users could access and update information anywhere they had access to a Web Browser and the Internet.
So far so good. However obstacles still remain. First some folks don’t want their data stored in the cloud, second cloud only applications are useless if you don’t have an Internet connection or the cloud server is down and third is what happens if the company hosting your app and cloud data goes out of business.
For Clibu we tackled these issues by releasing Clibu On Premise, a version that you install locally. However this meant the ability to access your data from anywhere on the planet was lost, unless you had the wherewithal to setup and configure secure remote access. Another downside is we needed to keep our cloud version and on-premise versions in step, which created more work for us and meant on-premise sometimes fell behind.
So what’s the solution. Well we’ve learnt an awful lot developing Clibu, which was our first serious Web Application. Over that time Browser capabilities have improved a lot, often quite dramatically.
This has led us to rethink Clibu from the ground up, how it could function to deliver the best possible end user experience. One where all data is kept on your local device, where it can be accessed without any Internet connection, where the application continues to work should we go out of business or stop development, where data is automatically shared and synchronized across all devices on your local Network and where you can optionally access it from any Browser anywhere if you enable your data to be kept on a central server.
Given we can meet all of these objectives I think you’ll agree this paints a very good picture. You own your data, it is kept on your devices and optionally on a central server either run by us in the cloud or on PC of your own (on the roadmap).
This is all very timely as others are on this same journey. I can recommend reading Local-First Software: You Own Your Data, in spite of the Cloud and a shorter easier to read related article by Adrian Colyer – Local-first software: you own your data, in spite of the cloud from his daily newsletter.
To quote the articles above:
Great local-first software should have seven key properties.
It should be fast.
It should work across multiple devices.
It should work without a network.
It should support collaboration.
It should support data access for all time.
It should be secure and private by default.
It should give the user full ownership and control of their data.
So how does the new Clibu Notes app rate on these criteria. The good news is we tick all of these boxes.
I could be that I’m overly optimistic as:
… we speculate that web apps will never be able to provide all the local-first properties we are looking for, due to the fundamental thin-client nature of the platform. By choosing to build a web app, you are choosing the path of data belonging to you and your company, not to your users.
I don’t see the issue here. The data for a web app that can run entirely locally belongs to the users.
What is a real issue with offline use where you still want online access from any device anywhere, is the accumulation of changes made to your data over time. To be precise in order for users to collaborate and work offline, every change to every bit of data must be retained, potentially for ever.
Performance and memory/disk usage quickly became a problem because CRDTs store all history, including character-by-character text edits. These pile up, but can’t be easily truncated because it’s impossible to know when someone might reconnect to your shared document after six months away and need to merge changes from that point forward.
To handle this ever increasing memory/disk usage some sensible controls can be put in place. For example if you know that worst case any one user maybe offline for a month, then when they come back online you can cleanup up the accumulated data for all users. Or if you know who all the users are and all of the devices they use, then you can cleanup when they are all online or you can notify them they might lose their local changes if they don’t get back online within a certain time. Best practices here will evolve over time.
So where are we now
Clibu Notes can and does work entirely offline. You can use Clibu Notes in your Web Browser or Install it as an application on Desktop, Tablet and Smartphone.
When you are online, all updates are synchronized in real time with all instances of Clibu Notes you have open and online. When an offline instance of Clibu Notes goes Online it will synchronize all of its offline changes with all changes made by other online instances. These changes are fine grained down to the character level in notes. In other words edits to a note in multiple copies of Clibu Notes whether online or offline will merge and resolve the changes so the note is identical on all devices.
Just as edited notes are eventually consistent so are changes to the shape of the Notes Tree, note icons and colors. And finally Work Spaces are also kept consistent. Simply put it doesn’t get any better than this.
As stated on the Clibu Notes website. knowing that your notes and associated data is automagically kept up to date across all of your devices is Magically liberating.