Creating elementary OS: a design-first linux-based operating system

Who are you and what are you working on?

My name is Daniel Foré and I’m founder and CEO at elementary. We’re a small open source software company that produces the Linux-based elementary OS. Our goal is to increase the market share of open source software among average consumers. About 70% of elementary OS downloads are happening from computers running closed source operating systems, so we’re making pretty good progress there!

Why did you start working on elementary OS?

When we first started out, elementary OS was a platform to showcase the apps we had built. I had been working purely on the design side, trying to improve the usability and attractiveness of desktop Linux, and after a while, we had a volunteer community of likeminded folks writing new apps from a design-first perspective, which at that time was a pretty unique thing to be doing in open source software.

What were the early days like?

There was a lot of stumbling around and figuring things out as we went at first. One of the biggest transformation moments was actually being sat down by a good friend and being told that our code quality was very poor. So we did a complete 180 very quickly and went all-in on code reviews and a style guide and settled on writing all of our apps in a single standard language. I think that’s kind of indicative of how a lot of things went. At first, we weren’t very good at things and we made lots of mistakes, but over the years we’ve really strived to hold ourselves to strict standards and do things “the right way”.

How have grown elementary OS's usage?

One thing we’ve been pretty adamant about from the beginning is not to use advertising. Instead, we’ve relied on word of mouth and engaged with bloggers, podcasters and journalists and let our work speak for us. I think the key thing with growth is to constantly communicate. The world won’t know what you’ve been up to unless you tell them. Something we receive a lot of compliments about now is how frequently we publish updates on our blog and the amount of time we put into showing off our design process and letting people know the “why” in addition to the “what”.

How have you managed the workload and the community?

It can be difficult at times to prioritize work and manage workloads. I guess I would just have to say that we do our best. There’s always more to do and you’ll always be short of someone’s expectations. It’s also hard with a mostly volunteer community because contributors tend to want to work on things that interest them. So we’ve made use of things like bounties and sprints to direct contributors' energies. We’ve also been trying to be more disciplined about milestoning issues and that sort of thing. We’ve recently started a weekly standup-meeting-style call and that seems to be working well so far. But I’m not sure I have lots of answers here. This is one I’m still figuring out!

How much time do you devote to elementary OS?

I work full time on elementary OS. Oftentimes I work into the weekends and it’s not irregular for me to be at least available on Slack at just about all hours. It’s tough because like I mentioned there’s always more work to be done, but I think it’s important to really manage burnout as well and take a step back when you need to. So sometimes I can spend a 12 hour day just really hammering stuff out, but then maybe I take the next day off or just make minimal contributions. You need to balance things out so you can stay productive in the long run.

What are the biggest obstacles you've had to overcome?

You know, I think one of the hardest things to overcome with open source software is the turnover. You have to be really careful with giving too much ownership over something to one person because next month they could lose interest and you have to spend a lot of time catching up on how that piece works. So I’d say it’s really important to document processes and democratize everything as much as possible.

Another big one is public relations. It can be really hard to communicate effectively sometimes and it seems like there’s always a group of people that want to put their own spin on things. It’s easy to get frustrated or discouraged when something doesn’t land or you end up in some controversy because of a misunderstanding and it can take a long time to rebuild your brand after any kind of mishap. So I’d just say to network with other creators and get people’s feedback on things first. Ask people what they think your communications material is saying and then go back and rewrite it until it conveys what you actually mean to say.

What are your hopes for the future of elementary OS?

I think at this point my two biggest long term goals are hardware and multiple platforms. It seems like to reach average consumers you need to sell devices, and in some cases even ecosystems. It’s hard to argue a case for an open source OS that doesn’t fit into a smart home or won’t sync with a customer’s phone and TV. We need to be more connected to more devices and much easier to get and set up.

What advice do you have for other open source maintainers?

My biggest piece of advice is to stick to your principles and do counterintuitive things. Lots of times, critics and even customers will push you to give up a founding principle because they want you to be more like a competitor. But the key to success is doing something non-obvious because you know something your competitors don’t.

Linux-based operating systems generally don't get the same kind of plaudits for design that macOS does, elementary OS is trying to change that by being a design-first operating system that's also open source. You can check out the website to find out more or try it out, or else you can support the elementary OS team on Patreon.

You can find out more about Daniel on his website, where you can also buy him a coffee.