chromakode / the-rise-of-self-hosted-apps

The rise of self-hosted apps

Here’s a sleeper prediction: a new crop of killer consumer apps are coming: self-hosted PWAs, and they will replace cloud services for many uses.

To name a few:

  • Home Assistant is a universal personal automation system, combining every smart device and data source available into dashboards, plots, and IFTTT-like automations.

  • Frigate monitors security cameras with private realtime AI object recognition.

  • Paperless indexes scanned documents with OCR and neural net based categorization.

  • PhotoPrism is an AI-powered private photo organizer with auto labeling and face recognition.

  • code-server is VSCode, the most popular code editor, with self-hosted remote access.

There’s a buzz building around apps like Home Assistant, which casts a large shadow over the smart home industry. You may not have heard of most of these apps before — that’s not unexpected. The technical knowledge required to set them up mostly relegates them to nerds running homelabs.

Thanks to favorable market conditions, home turf advantages of open source software, and a raft of enabling technologies from the past few years, there’s never been a better time for a few leading self-hosted apps to explode in popularity. Let’s dive into this phenomenon.

Users want to own their data

Recently, Eufy cameras were found to be uploading footage to their cloud. Notably, these cameras were marketed with claims of private, local-only storage. In the same month, home air quality monitor Awair junked their first generation of connected devices by discontinuing the cloud services on short notice. Through unaudited design faults and a business model which treats hosting as a cost center, IoT manufacturers are failing to deliver on privacy or longevity.

In a survey by Cisco in June 2022, 76% of respondents said they would not buy from a company they do not trust with their data. The study classified 32% as “privacy actives”, who identified as: caring about data privacy, willing to invest time and money in it, and had actually switched providers based on their data policies. In a 2021 US survey, KPMG found 86% say data privacy is a growing concern, with 30% responding that under no circumstances would they be willing to share personal info with businesses.

This is the sweet spot for open source self-hosted apps. Self-hosted apps have a home field advantage where data is private and sensitive: the sensors in your home, security cameras, paperwork, passwords, personal photos, and health data. There is latent unserved demand for apps which offer users confidence their data is truly private.

Local = fast

Another major benefit of local apps is latency. This is something you immediately feel when interacting with them. Every operation is nearly instant. The effect is magnified for users with slow or unreliable internet, or those without an always-on connection. Even with the shift towards edge computing to bring servers as close as possible to metro areas, for realtime automation and recognition tasks, you can’t beat physics: local apps will win.

Self-hosted AI has a bright future

Local AI is a notable feature of the majority of apps I listed above. Historically, large firms have had an advantage here. They have larger data sets to work with and off-the-shelf alternatives were generations behind. While LLMs currently require impractically expensive hardware to run, thanks to projects like Whisper, DeepSpeech, and Hugging Face, an increasingly large class of cutting edge AI tools have become accessible to run locally.

An interesting scaling property of machine learning is that while vast amounts of compute are required to train models, the models themselves require orders of magnitude less time and energy to run. As it becomes cheaper to run models locally, inference in private spaces like speech and cameras are seeing a push towards local processing, both for speed and privacy.

Successful communities outcompete big tech

Let’s take another look at Home Assistant. One of its key successes is its massive library of integrations with any device imaginable. The smart home industry faltered when it became a cross product of individual hardware makers supporting Google, Apple, and Amazon’s disparate home automation systems. Product companies are bandwidth-limited by how they form partnerships. Planned two-way handshakes are slow vs. permissionless integrations built on APIs or hacks.

An army of nerds are now using Home Assistant to solve their specific problems and sharing how they did it. If you search for any particular home automation challenge, you’ll probably find one of the first results is on the Home Assistant forum.

Why have products like Google Home plateaued, while Home Assistant has taken off? To its part, Google Home has its own huge list of device integrations, but the controls it provides are too simplistic. An expensive, top-heavy product development team like Google or Apple has to focus on solving bounded problems. This makes them uncompetitive when the problem space is sparse and a community of devs are expanding the space for free.

The web is good enough

The future of apps will not be installed individually on each device. Apps are becoming services you interact with across all your devices. Self-hosted web apps are uniquely well positioned for this, though there’s still a few pieces missing (particularly discovery of available local web-apps).

Progressive Web Apps have been around for a while, but have never had their day in the sun. One reason was the lack of push notifications on Mobile Safari, which was recently announced to be added in iOS 16.4. It’s no coincidence that the apps I listed above are all PWAs: the web is easiest to develop for, works everywhere, and has the largest pool of developers.

A common critique is that web apps yield clunky user experiences. This will be debated endlessly in developer circles, but native feeling UI is not necessary for mass adoption; the bar is “good enough”. Component libraries have closed that gap. MUI, Chakra, and Tailwind make it easy to create a UI which feels cohesive and adapts well to any sized device. Looking back across my 15 year professional history building apps, PWAs + an off the shelf component library are the fastest path to “good enough” that has ever been available.

The last mile is a huge opportunity

It’s never been easier to self-host apps: Let’s Encrypt made securing apps instant and automatic. Docker made them easy to install. Aside from Raspberry Pis becoming unobtanium over the past year, there are many available small low power computers in the $30-50 dollar range.

However, let’s be real: the biggest thing holding self-hosted apps back is they’re still too difficult to install.

A potential user must be able to:

  • Set up Linux on a device and get it onto their network.
  • Follow installation instructions specific to their chosen apps and distro.
  • Configure subtleties like DNS and HTTPS, then open the right address in their browser.

These steps are hindered by there being multiple ways to accomplish them, yet no best way.

For self-hosted apps to succeed, 5 minutes must be all it takes to get up and running. It must be trivial to discover and install new apps, and the apps themselves must be immediately locatable on all of your devices.

One promising approach would be a physical device which tunnels to the internet for external access. Such a tunnel could simplify user setup greatly by providing an easy to remember URL and automated certificate management. This is what Home Assistant Yellow is doing, complete with an add-on browser where you can install containers packaging other apps.

The future of self-hosted apps looks bright, but to have a shot at disrupting the past decade’s markets dominated by cloud hosting, they must solve this adoption problem. There is a chicken-and-egg problem here, but all that’s remaining is a foot in the door. As more awesome self-hosted apps appear, the incentive to ease adoption grows. Once you’ve solved it for one app, you’ve opened the door for others.

I think it will take vision and creative thinking, but eventually this dam will break. We’ve seen this story play out many times before in the history of computing. When free apps are trustworthy, solve a problem well, and become easy to adopt, they take off explosively.