berto.com

We have become too dependent on a centralized internet to power our online work and fun.

A slow death.

Large outages of important business services are common enough to harm us. Google, Facebook, Notion, Slack have had severe outages about once a year, give or take. During those incidents we feel helpless and improductive, but secretely we welcome the strangeness of offlineness. We herd to non-affected apps to laugh at the memes and comment excitedly as the experts among us share news from formerly exotic news sites. Outages are exceptions in our monotonous software lives: countless accounts, frequent logins, browser tabs, social over-sharing, incremental releases, and subscriptions.

More relevant than outages, though, is the sloweness of it all. The services we use nowadays are wholy dependent on internet connections, so the tasks we perform on our software are limited by the speed of the internet. Which is fast, but never fast enough. This is especially prevalent in business tools, which have transitioned en masse to the browser, with few exceptions. Browsing documents and reports is slow. Each search and filter forces our brain to wait another couple of hundred miliseconds. Even when they offer desktop and mobile apps, the experiences are slow. Notion is super cool, but search and navigation are slow; Google Calendar takes ages to load and update new events; GSheets files take many seconds to load as well, and often to compute too.

Our patience is slowly spent at the alter of cloud convenience. Magic moments disappear.

Hardware keeps you young.

Yet we also interface with all this cloud software via fast devices. Our brains trust the speed of those devices, where at least some of the tasks we do are instantaneous. Some are even pretty complex, like browsing an iPhone library with 50 thousand high-resolution photos; or playing a 3D game.

The truth is that smartphones have come out every year for more than a decade, and each is quite litteraly better than the previous. Meanwhile, it feels like Gmail and Google Calendar haven’t been updated in 10 years.. Even software that was shiny and new two years ago, has become old and saggy. (Yes, again I’m thinking of Notion.)

There will be lag.

Of the issues mentioned above, just one challenge isn’t solvable by a single software engineer or team: the internet. Because the internet is distributed, if you want to connect people or services in multiple locations in the globe, you will suffer slowness from lag. You can minimize lag by moving closer to the recipients; technologies such as CDNs, edge computing, geo-distributed clusters, tunneling help. But for use cases with real-time live streaming, optimizations are still limited.

CELFEEs

It’s possible to reduce lag to the blink of an eye, and it’s also possible to become sort of immune to outages. My favorite approach is with CELFEEs.

  1. Cloud-Enabled: we want to collaborate with colleagues and clients and friends; we want to interface with machines (via APIs) to store and retrieve our data. We need the cloud for that. But “the cloud” we use shouldn’t be slow or proprietary, rather invisible and open. Invisible means that the cloud should work in the background, one step ahead of you whenever possible (downloading new data), and just a step behind otherwise (saving your data). Open means that the cloud layer software should be an option (pick a provider) or be owned by the community, either as a technology (opensource) or as a solution (blockchain).
  2. Local-First: our data and files should be born and stored locally, and available for direct and fast manipulation from the first moment. The commitment to keep data locally will force us to prioritize the user experience over a centralized, uniform database (if only). Our apps will render our data, not loading animations. Freed from the loading constrains, we can utilize local computing power from processors and graphics cards to build experiences that are more engaging and more powerful, like interactive visualizations and smart recommendations.
  3. End2End encryped: we want everything encrypted. We will authorize some services to act on our behalf, sometimes automatically and for continued period of time. But files will be born locally, and carry the rights that are born off locality (ownership, privacy) over to the cloud.

I believe we will see more and more of these. At Rows.com we believe in this future, and we will try and make it true.

References