Over the past few months, I’ve spent a lot of time investigating the options for teams that want to work with an entirely open-source, self-hostable ecosystem of applications. Like many other projects that attempted this, I wanted a way for people to work together while still owning our data. Our team had a unique extra need compared to most of these projects, however – we wanted whatever we made to be usable by everyone, even people who are not very comfortable with using software, particularly unfamiliar software. Could we find a solution?
The Problem
I wanted both the setup of server software and use of the clients to be so easy, anyone with basic computing knowledge could do it. The software needed to be secure by default, come with all the features users need, and make updating it as simple as possible. This is what I set out to find, knowing that I would need to settle for “good enough” in a lot of areas.
To be honest: I mostly failed. There is very little software out there that solves even a fraction of a team’s needs “good enough”, let alone as well as paid solutions. As open-source software flourishes in datacenters, it falters on the devices people actually touch. It’s a tale as old as the open-source ecosystem itself, but it was disappointing to see just how little progress has been made in the decades since the Linux kernel took off.
These are my notes from a field exploration of the prospect of running a modern, generalized team with only open source software (The basic things you would expect from Office/G Suite, basically – Email, Calendar, Document editing, file sync, you get the idea).
If you are committed to going open source no matter the cost, you may find some useful information here. If you’re in the walled garden of Google, Microsoft, or Apple, find yourself swearing at their deficiencies and looking for alternatives, I think you’ll find a few reasons to stay.
What is the point of software freedom if only businesses are free to use it?
An illustration of the problem: choosing a Slack replacement
I started by looking at chat programs, wanting a replacement for Slack. I like Slack a lot, and there are a surprising number of robust open-source alternatives. Surely one of them would be a great fit!
I looked at these options:
All except two were non-starters. Here are the apps that didn’t make the cut to Round 2:
Zulip
Zulip was easy to install and the official Zulip client can connect to self-hosted servers, which was a great start. Zulip uses a unique threading system that takes getting used to, but some find very useful and I could see the utility of it. For people unfamiliar with the way it works, it’s not a hindrance to basic use. Zulip is open source and seemed to welcome contributions, but wasn’t a busy repo.
The ultimate issue with Zulip is that it was just too simple. Updating looked like a chore, there was no E2EE (a server admin could very easily export all messages), no federation, no built-in video calls, and the list goes on. Zulip was too restrictive; we would be asking Slack users to give up far too much when switching. The unique UX of Zulip was also a concern. If you’re working with a very technical team, and need something quick or folks like the unique chat model of Zulip, it may be worth a look.
Mattermost
I disqualified Mattermost somewhat quickly, despite its many features and apparent benefits. One look at Mattermosts’s install guide basically ensures that the person I had in mind for installing the software – someone without Linux experience – would fail in the installation process. I was disappointed as Mattermost seemed stable and feature-rich, and I may revisit it later to see if there’s a better way to install and keep all those components updated (I found a bash script to do exactly what I had in mind, but it was two years old), but for now, it was off the list.
The other major problem with Mattermost is that most moderation tools are locked behind paid plans. Other alternatives offer much more robust moderation tools for free.
Twake
Twake was brought to my attention the day it was open-sourced. It’s a newcomer but has many very compelling features, like a built-in calendar, tasks/kanban board, file sharing, and something no other option on this list has – an attractive UI! It seemed to not only solve our chat problem, but several other problems as well, which was very exciting.
Unfortunately, newness comes with some growing pains – docs are almost non-existent, what little docs were there were wrong for installation (which was otherwise easy), and I hit several bugs while using it. Despite these issues, I think Twake is extremely promising. If the bugs can be squashed it will be an extremely compelling option, and the dev team was very responsive to the issue requests I filed. It’s one to keep an eye on as it matures.
Wire
Like Mattermost, Wire is an enterprise-focused chat app. The install process is simply too complicated and onerous for free use. Sorry, Wire.
Matrix
I really wanted to like Matrix. It’s on fire in the open-source world, has a wide ecosystem of tools and support, and being both encryption and federation focused seemed like a fantastic fit. But let’s first establish what we’re talking about in this section, because Matrix is unlike any of the other options
Matrix is an open protocol, meaning it’s a publicly available specification that describes how other pieces of software should talk to each other. To be clear, Matrix is not software. Many people use “Matrix” to refer to the software ecosystem of Matrix-compatible application. The foundation that stewards Matrix produces the most popular (but not only!) server implementation of the Matrix software, called Synapse. They also produce Matrix clients for all major platforms called Element. Element clients connect to the Synapse server, and that’s how you exchange messages.
Unfortunately, the install process for Synapse is not fun. There are multiple methods of installation and I wouldn’t be comfortable trusting a non-techie with any of them. Matrix’s community came to the rescue here though – there are several very affordable hosting options for Matrix servers or 3rd party install methods that are much easier. I decided that Matrix had a compelling enough feature set and enough cheap hosted alternatives to outweigh the installation hump so I continued with testing using the Ansible method. Several hours later, I had a working install. I would not recommend trying to install Synapse manually unless you have significant technical experience.
After the re-branding of the official Matrix.org client from Riot.im to Element, the UX has significantly improved. The plugin ecosystem, security features, and server federation is an extremely compelling trifecta of unique features no other options have, and if (when) it becomes easier to manage these, Matrix will be an extremely compelling option.
Rocket Chat
Rocket Chat is more similar to Mattermost or Zulip than the other options here, but it has several advantages. Installation is easy, their documentation is complete, the desktop and mobile UX is pretty good, it has E2EE and federation on the roadmap, and threaded messaging mostly works.
It ticked all the boxes, and I gave it a spin with another test user to try it out. Rocket Chat is a solid option and I would safely recommend it alongside Matrix, depending on what specifics you’re looking for. Unfortunately, the same quality issues that plagued Matrix and Twake raised their head here as well, but in a less severe manner. Permissions and unlimited admins and custom roles are included and sign-up is easy. I would anticipate much fewer issues for both admins and users with using Rocket Chat than the other alternatives listed here. I feel that Rocket Chat strikes the best balance of a tool that’s open-source, easy enough for non-nerds to install, and functional and attractive enough for users to switch to.
But there’s still a problem. It’s still not quite good enough unless you are ideologically committed to open-source software. Imagine you talk to a team with 500 people on Slack. You want them to move everyone over to a new system that they have to pay for, consistently work to maintain, and learn from scratch. In return, they’re getting is control over their data, a very vague and intangible idea, and a worse product. Rocket Chat has very few compelling features Slack doesn’t have; there’s no compelling reason to use it if you aren’t fully committed to dropping Slack for an open-source option.
This was a common theme as I would later realize.
Want an open source calendar server? You can pick Radical or Nextcloud. Radical is bare bones to a fault, Nextcloud is bloated to a fault.
Nextcloud seemed like it could take care of all our needs with one package, but I realized it does everything sort of OK at best and is barely functional at worst. The UI is complex – as it’s plugin-based, a lot of things are buried in menus upon menus – and the install process is a pain, but it is feature-rich compared to other options and there aren’t many alternatives. If I had to give a “least worst” award, it’s to Nextcloud. But there is one notable exception to the Nextcloud suite – the ability to create documents, presentations, and spreadsheets.
There is no good open source program to create documents, spreadsheets, and presentations. None. Let’s run through our options once more:
Offline Editors
I have respect for the LibreOffice project. Office software is ferociously complex and the two largest software companies on the planet are constantly tweaking and improving theirs. Unfortunately, the LibreOffice software is buggy, ugly, and pales in comparison to the Microsoft Office of ten years ago. I have repeatedly tried to use LibreOffice because I want so badly for it to work, but it has failed every task I’ve thrown at it. LibreOffice touted adding a ribbon to their interface somewhat recently, but the UX is still extremely unintuitive and unattractive compared to Office or the Google Drive editors. Again, it’s the “least worst” option due to there being basically no alternatives, but it’s not good. I would be surprised if many non-technical members of a chapter would be willing to accept the many drawbacks of LibreOffice compared to Docs.
OpenOffice was also big at one point but is basically dead now; it’s a zombie version of LibreOffice for masochists. Is there anything else out there that’s cloud-native and built for the future instead of the past?
Online Editor Suites
LibreOffice Online is a web-based version of LibreOffice, mostly developed by one firm – Collabora (Collabora is the name of the open-source consulting firm and Collabora Online is the name of their fork of LibreOffice Online). It has all the UX problems of LibreOffice, with additional problems that come from a desktop UX being transplanted to the web with little modification. By default, it will nag you if you have more than 20 users. You can compile it yourself to remove this warning, but there are various other features only in the paid version as well, and nobody is going to want to compile this (nor should they – see “make sure other people can use your stack” above).
OnlyOffice built their own open-source business solution, with a full suite of document editors and a lot more, but it also has a 20 user cap on the open-source version. OnlyOffice is more polished, and extremely similar to Microsoft Office, making it an easier transition. If you absolutely must choose an option here, OnlyOffice is the most solid bet – just know what you’re getting into. OnlyOffice, like Nextcloud and Collabora, is a beast to get running, and your users will undoubtedly hit issues with compatibility and missing features.OnlyOffice also has a Groupware program (email, CRM software, other business tools, etc) that integrates nicely but I haven’t tested it yet.
One other option, CryptPad, seemed promising – it has documents, spreadsheets, slides, polls, kanban boards, and whiteboards, all built around a Google Drive-like interface – and everything is encrypted! So what’s the catch? Well, the slides editor is entirely text-based, which is makes it unusable for basically everyone and extremely cumbersome for those who know the HTML-like syntax. Their Spreadsheets appear to be just the embedded version of OnlyOffice – so not very good. The document editor is OK but it’s unpolished and I had issues using it on mobile devices.
Etherpad, Ethercalc, and Hacker Slides are web-based alternatives that also don’t fit what we’re looking for. Etherpad works well as a collaborative Markdown editor, but I wouldn’t touch Ethercalc or Hacker Slides at all.
So What?
You, the reader may be asking: why are you complaining about UX so much? I think it’s fine! You’re just being mean to open source devs for no reason! If you think the UX is so bad, fix it yourself, or pay for real software!
First off, I don’t mean to disparage any of the people who work on these projects. Working on any open source project is usually a difficult and thankless job.
But I think UX matters a lot, and in my experience, open-source devs tend not to prioritize UX, or at least not UX a person who is not tech-savvy would find approachable. At best, they are users of the software, and so they don’t notice it as much or make little changes to reduce their own pain points. At worst, they are the types to actively fight any kind of modernization effort, criticizing modern designs as childish, inefficient, or dumbed-down. Power users generally like information-dense screens, packed with functionality and options, but most people who aren’t power users can be annoyed at best or overwhelmed to the point of quitting immediately at worst.
Great UX design requires a degree of centralization and focus on the end user that many open-source projects don’t have, for a multitude of reasons. I care about open source software, I want to use more of it, but I also don’t want to deal with software that’s ugly and doesn’t make it easy to do what I want. More relevantly to this blog post, I can’t recommend software to people they will struggle to install, struggle to understand, and struggle to use. Software should be making our lives better, not introducing more pain.
There is no solution to this that I can see. To get to the level of polish something like macOS, Stripe, Gmail, Word, Docs, or other well-designed software systems have takes an incredible amount of time and expensive engineering effort. You cannot muster that without financial backing. Most of the chat apps on the list above have VC funding and get significant financial support from companies that use their software. And to be clear, when I say ‘significant’, I mean ‘enough to pay the employee’s salaries’. The Linux kernel, MySQL, Postgres, and many other popular, fantastic open source pieces of software survive and thrive becuase they get donations from large companies that use their software.
As for why only open-source chat apps seem to be getting VC funding and never open-source document editors, I don’t know. My assumption is that building a document editing system from scratch means you need to get compatibility with the last 20 years of Microsoft formats, and that anchor of interoperability suffocates competition, whereas chat apps can start fresh with little to no baggage. The notable exception, OnlyOffice, seems directed primarily at emerging markets and the Eastern European / Asian markets which US companies like Microsoft and Google sometimes struggle to serve well.
Microsoft and Google also have a death grip on the office collaboration space. Even closed-source, VC-funded or otherwise wealthy projects like Notion, Airtable, or Salesforce’s Quip are struggling to break the duopoly. Google has only been able to break Microsoft’s dominance by beating them to punch on cloud computing and collaborate editing, and leveraging their massive cash flows from their ads business to build Google Workspace (and the components of it, like Gmail and Docs) for years before those things became profitable.
This leaves us with a motley crew of also-ran rebels, open-source projects held together by the labor of the rebels and their donations. But back to the wider question – I want to get a team on a fully open-source software stack.
Let’s say I assuage my team’s concerns, force them all on to LibreOffice, Nextcloud, Rocket Chat, and tell them we’re going to make it work. This works in the enterprise – your boss is your boss so you do what they say no matter what anyway, you get paid during training time, you can call IT whenever you have a problem, and you don’t need to set the software up yourself. Not a bad deal! For German universities or French municipalities, I can see how this model works and why it’s beneficial.
But what about a volunteer organization? One with no budget for anything but VPS services, if that? One with no helpdesk, no bosses, no regulations they can really enforce? Do you want to sit people down for 10 hours of LibreOffice training before they can contribute? Do you want to have to explain how every piece of tech in your stack works? Do you have a good explanation for when someone asks “Why can’t we just use Google Drive? It’s free and we don’t have anything super secure and this stuff is too hard!” Are you willing to face the attrition rate your choice of software will cause? What causes matters more, the one you want to fight for, or the one you’re fighting with just to get work done? What will you do if everyone drops the custom stuff and goes back to Slack and Google Docs?
I kept looking for an answer to this – something to fix the problem, some magic piece of software to bridge this gap. There isn’t one. Sandstorm.io made a valiant effort at solving the installation problem, died, and was resurrected in a barely-functional state. Other services are mostly script wrappers and a web UI, not robust enough to handle changes and updates without an involved admin to be there when something inevitably goes wrong. Cloudron is the best solution I’ve found to this problem, as is covered in another article, but again, it only solves the installation problem.
Is there any solution?
The best fully-managed solution I found to this was collective.tools. They host Nextcloud, Rocket Chat, and a kanban board for you for about $23 a month for a smaller server (50 total users, 10 active at a time) or $56 a month for a large one (500 users or 50 active users). If you go above those limits, you are basically out of luck. Even with this solution you’re still using Nextcloud, which as was covered earlier, is not a great experience compared to Drive, Dropbox, OneDrive, Box, etc.
If you don’t mind running a very small piece of software yourself, Cloudron makes installing apps a one-click endeavor and handles mail for you as well. You can install NextCloud and OnlyOffice/Collabora in a few minutes quite easily. I began using Cloudron after finding it after searching to solutions to this issue, and it works very well. For large chapters, with a healthy continent of tech-people, might find this option attractive, perhaps mixed with Google Docs.
However, with either of these options, you still face the constant, challenging issue of user training, bugs, and the other miscellaneous problems you will hit with software like this. That said, if you’re committed to using open-source, I have a guide here that will give you a great head start.
Closing thoughts
There is no money in consumer-oriented open source projects. If a business cannot use you, you go broke or limp along on donations or the sales from techies. It’s just not enough to beat the multibillion-dollar juggernauts at their own game.
Compounding the issue of a lack of money, there is little interest, outside of a select few firms in a handful of European countries, in breaking the Microsoft/Google stranglehold on the office/groupware suite. Most businesses and people, from what I can tell, are not clamoring for an alternative. A lack of funding is a problem that can be fixed with organizing and tech solutions, but I don’t know how you fix a lack of interest in a problem space.
I wish nothing but the best of luck to the people working on Libreoffice, Nextcloud, and the rest – I really do. As much as I’ll criticize them I’m rooting for them to succeed. The world needs more, better open-source projects for regular users and people to build them. I just wish the world wanted them as badly as it needs them.