The Changelog: Software Development, Open Source - From open core to open source (Interview)

Episode Date: March 2, 2020

Frank Karlitschek joined us to talk about Nextcloud - a self-hosted free & open source community-driven productivity platform that's safe home for all your data. We talk about how Nextcloud was forked... from ownCloud, successful ways to run community-driven open source projects, open core vs open source, aligned incentives, and the challenges Nextcloud is facing to increase adoption and grow.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at rollbar.com. And we're hosted on Linode cloud servers. Head to linode.com slash changelog. Do not underestimate the power of the independent open cloud for developers. Yes, I'm talking about Linode. Linode is our cloud of choice, and it's the home of changelog.com. What we love most about Linode is their independence and their commitment to open cloud. Open cloud means being unencumbered by outside investment and maximizing value for the community, not shareholders. And that's exactly what Linode represents. No vendor lock-in, open at every layer.
Starting point is 00:00:45 If you want to learn more, head to linode.com slash open. Again, linode.com slash open. What's up? Welcome back, everyone. You are listening to the ChangeLog, a podcast featuring the hackers, the leaders, and the innovators in the world of software development. I'm Adam Stachowiak, Editor-in-Chief here at ChangeLog. On today's show, we're talking with Frank Karliczek about NextCloud. NextCloud is a self-hosted, free, open-source, community-driven platform that's a safe home for all of your data.
Starting point is 00:01:18 We talk about how NextCloud was forged from own cloud, successful ways to run community-driven open-source projects, open-core versus open open source, aligned incentives, and the challenges NextCloud is facing to increase adoption and grow. So Frank, we're happy to finally have you on the show. And I say finally, because we've had a few requests out there since 2016 to do a show on next cloud and we never pulled the trigger until now when we received an email from a friend of both of ours now andre jainich i hope that's how you pronounce your last name andre who said hey uh he knows frank he listened to the show about re-licensing
Starting point is 00:02:05 Sentry that Adam did late last year and suggested we have you on the show to talk about NextCloud and your story in open source. Thanks, Andre, for this recommendation. Thank you, Frank, for being here with us.
Starting point is 00:02:21 Thanks a lot for having me. As I said, ChangeBlock is one of my favorite podcasts, so it's really awesome to be here. Glad to have you. Absolutely, and we love hearing that. So let's start off with your forking story, because that seems to be a great place to start. You had a project called OwnCloud, and now you have NextCloud, and somewhere in the middle you forked yourself. Yeah, exactly. And we'd love to hear that. Yeah, it's always the first question.
Starting point is 00:02:48 I think one of the more interesting stories, of course, and just to be clear, I didn't fork myself. I still have to work on that. You forked somebody else? Yeah, I forked the software and the community and the company.
Starting point is 00:03:05 So that's interesting enough for my taste, I have to say. Why did you do that? Yeah, so I have to give you a little bit of the backstory here. So OwnCloud, the project before, was something I founded 10 years ago. So last month was actually the 10 years anniversary when I started OwnCloud. And it was a free software open source project. At the very beginning, it was actually part of the KDE project
Starting point is 00:03:34 of the KDE community. And I did this in my spare time in parallel to some other activities. It was a pure hobby volunteer project i picked the hpl as a license and the community was like it was coming together and we released the first version second version third version and so on and then one and a half years later it became clear that there's an opportunity to actually found a real company around this and uh yeah i i founded a company together with two other co-founders so i i looked for two other two other people to found the company together um and that's what we did based in boston and the u.s actually this is also where i lived in the US for two years and yeah this is was the was the
Starting point is 00:04:26 own cloud company it was quite successful at the beginning but then over time it became clear that some things didn't really work out that well so there was some some issues with yeah and to be honest with my co-founders I I picked the wrong people, to be honest. There was also a little bit of a misunderstanding how an actually real open source business should work. Yeah, we decided to do an open core business model, which means there was a community version, which was open source, but didn't have all the features. And to get all the features, you had all the features you had to get the enterprise version and the enterprise version is proprietary or was proprietary and yeah we also did dual licensing so we asked all the community contributors to sign a cla and then the company did dual licensing so the software was available under the agpl and then also the proprietary license
Starting point is 00:05:25 and many many other i would say creative things that uh yeah sounded good at the time but at the end actually um had the effect that the company was not working um and this was actually sad because the software was quite good the team was was good, companies tried to buy it, and there were a lot of successful parts in it. And this is what basically triggered the fork. So 12 people, including me, the core 12 people, actually decided to start over. And like four years ago, we founded Nextcloud
Starting point is 00:06:03 as a fork of my own project and fork of my own company. And we actually try to do some things or a lot of things differently and better this time. For example, we are pure open source. We don't have proprietary extensions. We work better together with the community. We actually don't have external investors anymore so it's completely self-funded and sustainable and yeah we actually try to do this
Starting point is 00:06:31 like nicer together with our contributing community because we have a really good and big community of over 2000 volunteer coders and it's very important to do this in a fair way for everybody. And yeah, that's what we're doing with Nextcloud now. So what was it about OpenCore that you didn't like or that you decided to move away from? So I gave a talk about that like a year ago at FOSDEM, I think.
Starting point is 00:06:59 This talk has more information, but I can give you the rough summary. I think if you really want to do a real successful open source free software community project, then it's really important that you attract as many people as possible and that everybody is as happy in the community as possible. This is, I think, the success factor of a really working free software open source community and for that it's very important that everybody is like on the same like on the same level that everybody has the same rights that's not everything is dominated by by a company who has like special rights and the community are only like cheap developers somehow like it has to be fair and this is something that's usually not the case with open core because we had several interesting
Starting point is 00:07:51 issues for example the enterprise edition had more features than the community edition as mentioned before but then sometimes a community person comes along and implements the enterprise feature in the community version that's an interesting situation. And then the company actually had to say, no, we can't accept this pull request because this is going against our own business model. Misaligned incentives. Yes, exactly.
Starting point is 00:08:17 And that's, of course, stupid because the community should be your friend. It shouldn't be your enemy somehow. And yeah, many other things i mean like roadmap planning product management doesn't really work if you if you not really have the exact same product in the community and the fact that everybody who contributes actually has to give um the ownership of the code to the company i mean mean, this is also something, I mean, most volunteers on GitHub or someone else that just want to
Starting point is 00:08:47 send a pull request and help, they don't really want to sign a contract and check, oh, what I'm doing here, is this like, who has the right on my code now? Is someone getting rich with my contribution? It's just not very fair, not very equal, in my opinion. It comes down to creating a win-win, right?
Starting point is 00:09:10 The company wants to succeed and the community wants great software. The win-win is the hard part, right? The win-win is absolutely the hard part, yes. But I think it is possible if you have the right business model. That's also an interesting thing because the question is, what does the company sell? If the company tries to sell software, then there is a conflict of interest
Starting point is 00:09:35 because if the same software is then available to the community for free and for companies for money, then this doesn't really work, especially not with free software licenses. This is why these companies like MongoDB and Redis and others actually changing their licenses at the moment because there's a conflict of interest. But we have a different business model.
Starting point is 00:09:58 We have the business model similar to Red Hat and SUSE, which means the software is available for free to everybody, but we sell support subscriptions to the companies. If you run Nextcloud in a mission critical way, then you can come to us and we give you support and security patches and we help
Starting point is 00:10:18 you with scalability and with upgrading and many, many other things. Similar things you get if you buy a Red Hat Enterprise subscription instead of just using CentOS. And you have this business model. I think it's a lot fairer to other contributors. And then you don't really need to sell the software.
Starting point is 00:10:38 The software is available for everybody, also for the contributors. We just sell these enterprise services to companies and home users don't really need it. Support's one way to say that, but I think if you phrased it, it could be said that you sell successful usage of the software. Right? Support's one
Starting point is 00:10:58 thing, of course, right? But like, you want people to use the software because it has value to the community. And if Jared and I decided to use NextCloud tomorrow, we might have some problems, but what you would actually sell us wouldn't be support, it would be successful usage of it, scaling it, security patching it, making sure that we have success using it.
Starting point is 00:11:16 That's actually funny because you described it better than me. So this is exactly how it is. This is actually exactly how i usually describe it what we sell is basically some kind of insurance that you can run next cloud in a mission critical way yeah and this is what you need if you have if you're a big organization and part of it is support yes part of it is like like long-term support that you have guarantees that you get security fixes in time, that you can call someone if there's a scalability issue, that there's maybe certifications, maybe you need to be HIPAA compliant or whatever, all those things. And this is what you want if you run it in a mission-critical way and you don't really care if you're a home user or just a volunteer developer. So you're definitely going that route would definitely be on our side, right?
Starting point is 00:12:09 Like you're not trying to sell us software, you're trying to sell us successful uses of that software. Right. Is there enough meat in that business model? In every open source business opportunity, there may not be. So how do you ensure, as you said, self-funded, profitable, sustainable company? How do you ensure that with that sort of win-win scenario? Is that the extremely difficult part?
Starting point is 00:12:35 Yeah, that's the main question, right? So there's so many things to say. I mean, some business people, they look at the conversion rate. They say like, look how many people use the software without paying and how many people use the software with paying us. But this is, in my opinion, the totally wrong metric
Starting point is 00:12:58 because we focus on growing the cake instead of fighting with our own community users at the moment. So I think there are lots of people on this planet and 99.9% never heard of Nextcloud before. And we think we want to become more popular. This is why we give the software away for free for many other reasons too for our contributing community but actually make Nextcloud more popular and make Nextcloud more usable and so on is the highest priority
Starting point is 00:13:31 for us. At the end of the day if someone is like paying us or not, I mean of course I prefer if companies pay us and to be honest the big ones usually do because they have a service level agreement and other things that we can give to them but I mean the bigger honestly the bigger challenge for us is to
Starting point is 00:13:52 get more and more users it's not really to force our community users to pay us I think this is the wrong strategy a real positive way to look at it is just to focus on what sales people would refer to as the top of your funnel right like we can just right that she there's a real positive way to look at it is just to focus on what you know what sales people would refer to as the top of your funnel right like if we could just we don't have to optimize the conversion if we realize like you said most people never heard of this if we could just get more and more and more people to hear about it and then start to use it then the bot the conversion maybe is low but it's still enough There's enough meat on the bones, as Adam was saying.
Starting point is 00:14:27 So, I mean, NextCloud, own cloud became NextCloud. This is mission-critical software for a business or for a family or whoever's running it, right? This is your data on your own cloud at your business or at a service provider, wherever it happens to be. And so it makes sense that you're selling basically success or risk mitigation if you look at it that way. Like, well, what are the risks here?
Starting point is 00:14:58 Can we throw money at the risk problem and that'll allow us to adopt this thing? Does this model work mostly or only for mission critical things such as you know hosting and your data and you know the kind of stuff that nest cloud provides or is it do you think it's generalizable to other types of open source software excellent question you're really asking so many excellent questions it's not honestly it's it's really good so so sometimes other open source projects or companies come to me and ask for advice hey can we like adopt the next cloud model what's your recommendation and and to be honest in a lot of
Starting point is 00:15:38 cases i have to say no this probably would not work for you because software is different i mean what's special about next cloud is that it runs from very tiny to very big so you can run a next cloud serve on a raspberry pi for your family at home but you can also run it on a big linux cluster for 10 000 of people and the biggest instance we have has 20 million users, actually, on one cloud. And this is the same software, bit by bit, the same software. And this is a nice success factor for us because we attract our contributors by being useful at home, but at the end of the day, then selling support subscription to the huge guys. So this is something you want.
Starting point is 00:16:26 Another challenge is that this is something open source projects that are more in the middleware somewhere, like the Mongos and the Redis and others, they're facing at the moment with the cloud services like Amazon, of course, where they just take the software and offer it as a service. And that's a challenge. We don't really have this challenge too much because, first of all, we are more user-facing
Starting point is 00:16:53 because if someone like Amazon takes, like, whatever MongoDB offers hosting and they rename it to, I don't know, Amazon DB. Most developers probably don't care because they know, well, it's the same API, it's working, I can use it, all good. But we are user-facing. And if you want to offer this for your company and then you say, well, you can choose between xCloud and, I don't know, SuperCloud 2000,
Starting point is 00:17:29 then people would be irritated. So what is that? I mean, I want to have the real thing. So for us, it's a bit easier to actually sell to basically not being exploited by the big cloud companies. Another thing is that our mission is, of course, to provide security and privacy to our users. So our store is usually
Starting point is 00:17:50 an on-premise store. Lots of our users run NextCloud on-premise. It is possible to deploy it with one click on Amazon or Microsoft or Google Cloud, but people usually don't do this because if they run NextCloud on Amazon amazon they can run like
Starting point is 00:18:07 dropbox in the first place what's the difference so this is why the big cloud providers are for us not a big threat but there are threats for many other open source businesses that's a challenge that's interesting you are kind of uniquely positioned in that way. And that because Nest Cloud is your own private cloud, running it on a public cloud or a big provider, like if you're going to use Azure, you might as well just use Microsoft's Live 365. Or if you're going to use GCP, you might as well just use Google App Suite or something, right?
Starting point is 00:18:41 Because you're kind of wanting to keep your data off of those clouds for the most part. I mean, maybe an individual is happy to just run it on Linode or something, but for a large corporation, I think on-premise is the value proposition, isn't it, to a large extent, is they can own their own data? Yep, that's exactly the thing.
Starting point is 00:18:59 So if you look at our biggest customer from a company perspective, lots of them have it on their own infrastructure somewhere. For example, the German government or the French government, they are using Nextcloud for their ministries for hundreds of thousands of people. And they run it on private cloud infrastructure that is not even connected to the Internet. It's completely on internal infrastructure. And this is where Nextcloud
Starting point is 00:19:27 shines. So we are not really in direct competition to the big public clouds here. How often is the user type not wanting to use the public cloud and using on-premise?
Starting point is 00:19:43 That seems like a specific use. I don't think we could use on-premise. We're not an on-premise company. We're a distributed company. So we'd have to leverage a Linode, a DigitalOcean, or one of the big clouds, Azure and such. Is that common for an on-premise customer to be? Is that commonplace, I suppose?
Starting point is 00:20:05 I mean, the value proposition is in a lot of, I would say in 80% of the case, it is something around security and privacy. And this is often, it means on-premise, but it doesn't really mean your own server in your basement. It can be in a hosting center that's next door and you have a special contract with them and they are certified and they're in the same country and they are like i don't know you somehow trust them um it can be that um other security things are also that you
Starting point is 00:20:39 can audit the software for example we have some some government users, customers who audited the software. So they actually looked at the code and paid people to check if everything was okay. And they looked for backdoors and other things. And because it's open source, they could check that there are no backdoors in it. That's not really possible with lots of other cloud services with Office 365, G Suite, and so on. So this is important for most of our customers, but there are other benefits too. For example, speed and cost. Usually you say, well, Amazon is affordable and fast and everything,
Starting point is 00:21:18 but if you really have a lot of data, for example, Nextcloud is used by huge universities, particle accelerators research institutions who literally generate petabytes of data a day i mean it's really hard to upload all this data to to amazon or to google cloud because of that they have their own hosting center like in the next in the same building and in this this use case, like Nextcloud can be useful to provide like services to collaborate on this data, to sync it to other machines and so on.
Starting point is 00:21:53 So it's, I mean, Amazon is big, but it becomes really expensive if you upload like petabytes. If you're building out a digital store parts. orders, catalogs, customers, inventories, or even employees painless. With Square, you can build commerce apps that go beyond payments. They support iOS, Android, Flutter, and React Native for in-app mobile payments or to integrate with Square readers from your own app. Square also has payment forms for embedding a checkout experience directly into your website. Check out tutorials and explainers on Square's YouTube channel for developers at youtube.com slash square dev. You can learn about key concepts like item potency, how to take digital wallets in an
Starting point is 00:22:48 online shop, or how to store and charge a card on file. Again, learn more and get started today at youtube.com slash square dev. So I'm a bit curious about the actual forking process since it was open core. Curious about the license interplay or surely there was aspects of the software you had to leave behind because they were proprietary aspects. Did you rewrite large swaths?
Starting point is 00:23:23 Was it inspired by own cloud or is it lots of source code came over? Tell us about the actual fork. Yeah, it was actually faster and easier than expected. So when we planned this, is this possible? Is this realistic or not? We made a little bit of like a plan. I think we planned to do the first next cloud release i don't remember maybe two months after after the announcement of the fork where we thought okay
Starting point is 00:23:51 let's we need to take the software we need to change everything that's trademarked so this was the most work to be honest to replace like the old the old name that's was still owned by the old company with the new name Nextcloud. So, I mean, copy and paste is like a surgery place. It's fast. But there are other places like in pictures and logos used in places and so on. So this was a lot of work.
Starting point is 00:24:18 And then, as you mentioned, the proprietary pieces, of course, we can't use them, obviously. So we had to rewrite proprietary pieces. Of course, we can't use them, obviously. So we had to rewrite those pieces. But because most of the core development team actually moved over to Nextcloud, we really, I mean, from day one, we really had an awesome development team. So it actually was quite fast to replace all the pieces.
Starting point is 00:24:44 So I think, I don't fully remember, but I think we had the first release out after just two or three weeks after we announced the fork because the community was really, I mean, they're really enthusiastic and they really jumped in. And I don't know, pieces like the documentation was something completely done by volunteers. And so it was actually um it was
Starting point is 00:25:07 quite quite fast was the relationship so irreparable that you often think like you know should you collaborate or compete you know and obviously forking you decided to compete i suppose at least on the recognition of the purpose of the software, right? And obviously it's open source now, and there's a different sort of business model spun to it. And you have this idea of like, will own cloud still succeed? Will next clouds compete against it? Yeah, so it's true. I mean, for a long time, I tried to fix and improve things from the inside like in
Starting point is 00:25:47 the old project in the old organization i i failed i mean they were just um yeah i don't want to go in too much into details but it was not possible for me unfortunately and the reason why i asked that question let me frame that so so that it's a little clear there is that often we'll see you know communities sort of have infighting and for lack of better terms it's a little clear there, is that often we'll see communities sort of have infighting. And for lack of better terms, it's some sort of civil war. We've seen it in the Rails ecosystems around, I can't even recall the different things that happened around that. Merb. Was it Merb? Merb.
Starting point is 00:26:18 Ancient history. Yeah, it's ancient history. We've seen it with Node. And so the question always comes like, should you try to repair or replace and you know obviously we know that the route you chose i'm just trying to understand you know i guess your feelings around that somewhat specifically to your situation but then generalized to those listening to say you know should we infight or should we try to collaborate um yeah our situation was a bit different so um there was no real fighting inside the community it was more like a fight between the community and uh company uh people like company product
Starting point is 00:26:55 management and engineering management and so on who didn't really understand how the community works and they didn't really like what are all these people why are they doing stuff i mean there for example lots of the management of the old company was really confused when the community people started to write a calendar and contacts and email integration because for them it's like what are you doing you're working in the wrong market we are file sync and share you're doing group there that's stupid so so i didn't really understand how the community dynamics work so there was more fight between the community and like the management of the old company and then when the fork happened i mean people were really like unchained somehow they were like oh finally i can do what i want i don't
Starting point is 00:27:43 need to ask for permission to do this and that. And you can really see in the GitHub statistics that the productivity doubled and tripled. So it was more this kind of conflict. It was not inside the community in that way. So talk about the community relationship. So NextCloud provides certain aspects of the cloud that are like, you know, the core experience files, photos, mail, contacts, stuff like that. You even have a to-do, which is kind of a Kanban board thing called Deck or On Deck. What is it called, Deck? Deck.
Starting point is 00:28:18 I got logged out of the demo. As I was refreshing, it just logged me out. I think it warned me I was going to get 60 minutes and I think I'm out now and then there's like this whole app store marketplace idea so there's like plugins talk about I mean is that what you're talking about when they felt like they were at odds with the company
Starting point is 00:28:35 is that people were wanting to build out these aspects which are like huge wins for a community is to add this brand new subsection of what you know add a whole new room to your cloud. And I could see where that would butt up against an open core business because that could be like the proprietary
Starting point is 00:28:51 pay for this feature. And so is that what happened? Is with Nest Cloud, that kind of allowed a community to blossom around these plugins or the app store? Tell us about that. Yeah. Yeah, there's so many aspects um like first of all this app ecosystem maybe maybe just to talk about the name first because people think it's sort of plugins and at the very beginning people ask me why it should be
Starting point is 00:29:18 not let's call this plugins but plugins are just small changes or extensions to a software but i see next cloud really as like a platform where you can write all kinds of complex applications on top of it so this is why why we call this apps um and you see this nowadays with this calendar and email and a chat and video calling applications and notes they are not plugins for the file syncing they are complete applications and this is something i always thought that this is like something the community wants and also our users want because you can get more and more features and but this was a bit of a conflict as i mentioned before to the typical like company managers because they'll talk to analysts they talk to gartner and they say yeah you're in the fight so you can share business and this is what you what you should do and this kind
Starting point is 00:30:12 of total creative chaos that you get with an open source community this is like hard to understand for the typical like software manager who never did open source before and and now that we basically opened this up completely i mean you can do everything you want with next cloud even like inside the car everybody can do a pull request and you have to have two other people approve it then the change is in it doesn't even matter if someone is a volunteer is an employee of the company or not it doesn't you don't have any management there. It's just normal community processes. And now it's, I don't know,
Starting point is 00:30:49 I don't really care if we are technically to Gartner in a specific market or not. I don't care. The only thing that's important to me is like if the software is useful for people and well, this is guaranteed with the community because they do what they want. It's usually creative and good.
Starting point is 00:31:08 And to be honest, if I would be the guy who sits in a room alone and thinks about the roadmap and this is what we should do, I mean, this is not a good solution. I really believe in the creativity of the open source community. And this is why by opening this up,
Starting point is 00:31:27 there's so much creativity and so much motivation in the contributor community now. Give us an example of a community-based app for Nest Cloud that has unlocked some feature that either you wouldn't have imagined or that's just really above and beyond what you'd think of a typical plugin. What's a good example um i have so many examples one thing um i can use as example is the maps app so um that was the idea and actually to be honest i heard from people like i don't know one two three
Starting point is 00:32:00 years ago who told me yeah we want to work on a maps app that you can have maps inside Nextcloud. And to be honest, I didn't really look into this idea too much, and I didn't really understand. For myself, I thought, well, that's a weird or stupid idea. I don't want to have maps. I mean, you can go to whatever, some other mapping website, and Google will always be better and then your next lot maps but but i don't i don't whatever people can do what i want
Starting point is 00:32:31 and people worked on it and this is now a super super awesome app i have to say first of all they won the contest of the most uh of the coolest app of the year at our conference last fall. So people really like it, the Maps app. And now that I really understand what people try to build here, I also totally agree that it's super awesome. For example, you can watch, you can look at your photos on a map here.
Starting point is 00:33:01 So if you synchronize your photos to your Nextcloud, the EXIF data is automatically extracted and you can lookize your photos to your next cloud the exif data is automatically extracted and you can look at the photos on your map and that's obviously very useful to be able to do that without uploading your data to Dropbox or Google or Apple or whatever it's completely running on your on your own machine and your own infrastructure and you can also look where your contacts are based on a map. Yeah, it's true that the map data, I mean, for the maps, we use OpenStreetMap data. They're sometimes not as detailed as the latest maps from Apple or Google, but they're totally good enough. I mean, and you
Starting point is 00:33:37 can really look at your data on a map, and all the algorithm and data is on your machine. So this is something that came out of the community and originally I thought, well, that's a stupid idea. But then after seeing the end result, I totally changed my mind and it's really awesome. And this is something, well, it's the power of community. So Nest Cloud, the service or the product, the enterprise, do you then have to support maps
Starting point is 00:34:06 or do you draw a line in the sand that says we'll give you your success story for pay but we're not going to support things that we don't write because you would be you the company would be basically inheriting the risk of your community if you supported all these apps? As a company, we defined like the core functionality. And these features are part of our product that we support. And these are also the features that are usually useful for companies because, well, I mean, we make our support contracts with companies, right? We don't have a business model for home users. So these are functionalities that
Starting point is 00:34:48 are, I mean, we really look at the code, we really, I mean, either we have very close relations to the community maintainers because, I mean, we need to be able to for example, ship security fixes for this code or
Starting point is 00:35:03 fix bugs with the code. So we need to really have close relations. Or we hire the maintainers and they're on our payroll. And then we can actually guarantee that we support that. But the functionality that's covered by our support contract is only the core product. I mean, all the hundreds of third-party plugins, they are just some stuff on from the App Store. Sometimes customers come
Starting point is 00:35:30 to us and say, hey, I want to use this cool feature. What can we do here? And then we look at the code and talk to the developer and then, hey, then sometimes we do some kind of revenue share where I say, well, look, we have this one company that really wants to have support for your app. Can we do this together somehow?
Starting point is 00:35:46 We split the money, or maybe they give you some money for additional feature development. And yeah, then we come to an agreement. But the usual support contracts are only for the core product, not for the weird community extensions. Makes sense.
Starting point is 00:36:00 So I noticed in your GitHub org, you have 170-something people at this point. How many of those, off the top of your head, just estimate? How many community members have you ended up hiring? Seems like a pretty cool way of getting new hires is having community contributors building apps and then saying, hey, why don't you come work for us? Does that happen often?
Starting point is 00:36:21 Yeah, that happens often, and that's good and bad at the same time. I mean, hiring good developers for us is really easy because if you need someone in a specific area, you can just look at the community and say, hey, what are you doing as a hobby here? That's really nice. Do you want to get paid to do the same so so this is quite uh this is quite easy for us to find really good developers and of course all these people they are they
Starting point is 00:36:53 already believe in the mission they already understand um the software and the framework i mean they are productive on day one because they already work with the code. So hiring good developers is really easy for us. The problem is we have to be careful not like killing our community because like I hire all the good people then we turn the community into a company and that's not what we want. There's a fine line there for sure.
Starting point is 00:37:23 But it is nice to have such a big community that it is available to you you know if you want to exercise that right i suppose or that opportunity not so much a right but more of an opportunity to to grow the offering and provide i suppose a great service it all comes down to like what you're optimizing for and if you're optimizing for great software that's useful to a large portion of the world, maybe even specific sectors like business or homes or families, you know, then you're going to want to not cannibalize your community. And it's a fine line to draw there, though. Totally. Yeah, totally. one of the one of the interesting things because if you read like business or product management 101 textbooks then then the first thing you hear is that you really need to optimize your product
Starting point is 00:38:13 for a specific target group so if i tell people that we are building software that's useful for big governments and at the same time home users well then the reaction is always well that's useful for big governments and at the same time home users, well, then the reaction is always, well, that's stupid. That's not possible. That's stupid. It's really like, I mean, that's a big mistake. I mean, you can't optimize for two target groups that are totally different.
Starting point is 00:38:38 But yeah, at the moment, it's still working. And to be honest, I mean, other software like Office 365 for Microsoft or Google Suite, this is also software that's used by home users and big companies. So it's sort of working. When you say community, do you define that as, is there sort of layers to that, say, community of contributors and say community of interested people i suppose
Starting point is 00:39:07 and what i'm trying to get at is this ratio of team members on the next cloud company team versus say the community and if you define that as like somebody who's contributed do you consider the ratio so you know you're% of the community, for lack of better terms. Your team represents, say, 1%. If that's a rational number, maybe it's half a percent even, considering that the community always grows with the entropy of developers growing. Yeah, first of all, you're totally right. I have to be more precise with the term community
Starting point is 00:39:40 because sometimes when I talk to other companies, they all the time, yeah, we have this community, we community and then yeah and then i realized that they mean their customers they call their customers community or something so there's lots of different ways to define community so for me a community which i mean with community is usually the contributor community that people who are really like help to improve the software and there can be coders and there we have like over 2000 at a moment who really um yeah help to send pull requests to the core functionality and i don't even count like the app ecosystem because there i don't really have numbers because some of them are developed on github and then of course you could do some
Starting point is 00:40:24 statistics but lots of those apps that come from other sources so i don't really have numbers because some of them are developed on GitHub. And then, of course, you could do some statistics, but lots of those apps that come from other sources. So I don't really know. And then we have the translators. I mean, Nextcloud is available in like 96 languages at the moment. I mean, some of them are Klingon and other things. But still, I mean, 96 languages. And and i mean we don't pay a single translator in the company it's all done by the community community again so um and we have lots of
Starting point is 00:40:55 those things we have people who do meet up and events and places so i usually call community the people who really help to push the product forward. But then, of course, we have lots of users and fans. And sometimes they send messages like, hey, I use software for many years and thanks a lot. But it's hard to measure. I can't really say. If you look at people who contribute code with pull requests to the core repositories, then we have a bit over 2,000. And employed developers, I think we have like 25 to 30 people who are really paid to write code and 2,000 volunteers.
Starting point is 00:41:41 Of course, with 2,000 volunteers, they are not doing this full-time usually. We have some full-time volunteers. I don't know how they do it. But they usually just, I don't know, do a fix once a month or something like that. Based on those numbers, back in the napkin math says that you're
Starting point is 00:41:57 about 1.5% ratio. So you employ roughly 1.5% of the developers that contribute to NextCloud. Just to sort of round that off. But on your GitHub, you say community-driven. I do agree that it might make more sense to say, I suppose community-driven is good enough,
Starting point is 00:42:15 but it leaves questions, as we've said here, to say contributing community-driven, potentially. And I guess the hinting question is, if you're optimizing for that kind of business model where you're community driven contributor community driven then how do you enable that community to drive like in what ways what kind of things do you do specifically as a business to enable that thing to enable that yeah good question. I mean, I think the most important thing is what to not do instead of what to do. So I think everything that, I mean, most other companies and open source projects, they should already start with not demotivating people for example that you that you don't have any processes to
Starting point is 00:43:06 follow i mean that's one of the very common thing that if you want to contribute to a software then you somehow have to follow processes and processes are fine if you are an employee then we're sure there are company processes but if you're just a volunteer like send trying to send in a bug fix like at a saturday then you don't want to i don't know follow huge processes so it really should be easy for people to do it they should feel they should feel valued so they really should be treated as like everybody else, even if they're just sent like a one-line bug fix or something. That, as I mentioned before, I think it's a bad idea to require them to sign any contracts so that we can accept the one-line bug fix or something.
Starting point is 00:43:59 That's weird. Like from a business model perspective I mean it should be fair I mean they understand that we sell support but the software should be available for everybody so they should be able to use their own bug fix this sounds obvious but in a lot of cases this is not obvious
Starting point is 00:44:17 maybe they have to like buy the software later they have fixed themselves or something some weird stuff and yeah this is just like make it easy like buy the software later, they'll fix themselves or something, some weird stuff. And yeah, this is just like, make it easy to contribute. Of course, there's also active things that you can do. For example, we are organizing a conference
Starting point is 00:44:34 once a year and some hackathons every few months where we invite people and we sometimes pay for travel. So very active community people we just like invite to hey come to berlin and summer and we pay for the travel this is something we do we have an active mentoring project um where we um if you're a student and you want to get involved and we can give you a mentor to help and we have a diversity program where we help like underrepresented groups to get involved in Nextcloud. We have like sponsoring and internships and other things. So we actively sponsor people and try to bring them into the community.
Starting point is 00:45:19 But of course, at the end of the day, we can only do this with a few people. We don't have the money to to pay flights for a thousand people. So the thousands of volunteers, they have to like it. They have to like the software. They have to like the mission. They have to like the free software license. They have to like what we are doing. Otherwise, it's not possible to pay them to become part of the community.
Starting point is 00:45:48 Maybe let's laser into maybe a core product like files. So how do you lead files in the direction it needs to go in a community-driven way? Is there a product lead that works for Nextcloud that interfaces with sort of like a team, for lack of better terms, in the community that says, hey, I'll be a part of this team. I don't work for you, but I want to contribute because I care enough or I want to develop in these ways. How do you, how does that work? Yeah. So, excellent question. So, we do releases of the software roughly three times a year. And we have on our three times a year. And we have on our website communicated the schedule. For example, at the moment, we are in the development phase of the version 19,
Starting point is 00:46:34 and there will be feature freeze. I don't remember. In a few weeks, we have feature freeze. And then after that, there are only bug fixes allowed, and then there are beta and RCs, and then there's a final. And this is, like, organized by us, but it's not a big miracle. This is just a fixed release cycle. And whatever
Starting point is 00:46:52 pull requests are submitted during the development phase of this release, they go into the product. And we have a review process for these pull requests. So everybody can send the pull request and then two other core people need to approve it.
Starting point is 00:47:11 They need to say, yeah, this is like secure, fine, coding style, fine, UI looks fine, whatever. And then it goes into the product. And those three people, like the one person who submitted the pull request and two others who reviewed it, none of them really have to work for the company. They can be just like other community people. So this is basically, to answer your question, how the files part of Nextcloud looks in 19 is basically purely defined which pull requests are submitted and accepted,
Starting point is 00:47:45 and then this is the product. What we do as a company is, of course, people who are paid to work on xCloud, well, then they have to, with X percent of their time, follow the company roadmap, basically. So we as a company, we also think that, look, we do product management. This is what a competition is doing. This is missing.
Starting point is 00:48:11 This customer is asking for that. This needs refactoring, whatever. And then we as a company, we tell our paid developers to work on those things. By the end of the day, they just submit normal pull requests. And if someone else comes along and submits another pull request,
Starting point is 00:48:29 then that's also part of the product. So this is like there is no real central maintainer who says yes or no to every single feature. It's really who's doing their work decides. how often do you think about internal tooling i'm talking about the back office apps the tool the customer service team uses to access your databases the s3 uploader you built last year for the marketing team that quick firebase admin panel that lets you monitor key kpis and maybe even the tool that your data science team had together so they can provide custom ad spend insights.
Starting point is 00:49:10 Literally every line of business relies upon internal tooling, but if I'm being honest, I don't know many engineers out there who enjoy building internal tools, let alone getting them excited about maintaining or even supporting them. And this is where Retool comes in. Companies like DoorDash, Brex, Plaid, and even Amazon, they use Retool to build internal tooling super fast. Retool gives you a point, click, drag and drop interface that makes it super simple to build these types of interfaces in hours, not days. Retool connects to any database or API, for example, to pull data from Postgres, just write a SQL query and drag and drop a table onto the canvas.
Starting point is 00:49:50 And if you want to search across those fields, add a search input bar and update your query. Save it. Share it. It's too easy. Learn more and try it free at retool.com slash changelog. Again, retool.com. So, Frank, you've described how the community interacts with the company and how it's a community-driven open source project with the next cloud company attached to it. And no doubt you've been successful at building that community. The switch from open core to completely open source undoubtedly was a huge aspect of making
Starting point is 00:50:38 that work. Like you said, you kind of felt like you unlocked the community members to really, you know, do their thing when you switched from OwnCloud to NextCloud. I'm curious how else you had success building this community because many open source projects want an awesome, and we're talking about contributor community, not just users, right? But thousands of contributors are excited and writing software that plugs into or adds on top of NextCloud. And I'm curious how you built that from the ground up. Yeah, so community building is an interesting topic. I think it's a lot of psychology behind it.
Starting point is 00:51:16 You have to think what contributors like and what you can do to make this a fun experience. I mean, there are a lot of things that you should avoid, obviously, and what you can do to make this a fun experience. I mean, there are a lot of things that you should avoid, obviously, like maybe contributing difficult and complicated and intransparent. You need to avoid that. But you also need to have positive incentives. I mean, I think it's very important to understand that a lot of contributors, code contributors, developers, in the current job market i mean they can get very nice jobs to write software proprietary software for companies
Starting point is 00:51:53 so you really need to give them something so that they basically write code in their free time without payment and the big factor here is to have a good vision and mission behind this i mean if you're an open source project and you're just like i don't know your database and i mean maybe it's fun to make the database a little bit faster or something sure this i'm sure this attracts some contributors. But in our case, it's really about providing security and privacy to users. And this is a bigger motivation. There's a bigger mission behind it. And this helps to attract people. Also, to be honest, we picked some companies as our enemies,
Starting point is 00:52:43 like the big cloud providers, like Microsoft and Google and so on. And it's always helpful to be the small guy who is trying to compete. The underdog story. The underdog story, yeah, exactly. So, I mean, we are basically trying to compete with the huge companies that are like a million times
Starting point is 00:53:03 have more people and more money than us. So that's a big motivator. I mean, this motivates like me personally too and motivates like most of the employees, but also motivates the contributor community because we try to together, if we can work together as
Starting point is 00:53:19 an open source team, we try to build an alternative to the big enterprises. I think that's an important success factor. But there's other things like I don't know, being transparent, being honest,
Starting point is 00:53:36 being like I don't know, being, you can meet people in person at a conference and say, yeah, well, there are real people behind the software. It's not just some anonymous people
Starting point is 00:53:50 working in some office building, but there are actually people like you and me and then you can build up the personal relations. So, yeah, community building, there are so many aspects. I don't even know where to start and where to end. At the end of the day,
Starting point is 00:54:06 you need to have a fair human interaction with the people. It's not really about, I don't know, technical stuff like, I don't know, paying people or what Git repository to use. It's really about people and to be friendly and open and welcome a diverse community too. It's another important thing. And yeah, I think if you're nice and transparent and you have a vision
Starting point is 00:54:36 and it's easy to understand and easy to learn, then you attract people, contributors. All too often do we have this uh i guess lack of humanity is the easiest way to say it because so often the easiest solution is just simply connection a relationship respect empathy you know like what seems like to some degree obvious and logical to many in our age, I suppose. Maybe it's something with this era we're in now where you can be born and Facebook's a thing, whereas for probably all of us on this call today, when I was born, Facebook wasn't a thing.
Starting point is 00:55:18 The internet was barely a thing, if it was at all, 1979. So, I mean, that's a long time ago. In an era like today, though, we're so connected to digital and so disconnected from humanity that the obvious answer is just to focus on human beings. I like the mission aspect as well. Giving something that people can really get, can buy into, an idea,
Starting point is 00:55:38 even more so than just a piece of software, an underdog story, and a vision of a life of security and privacy that you can contribute to i think is powerful did you guys do any deliberate community building around the idea of you around these relationships and the transparency like were there meetups or conferences or like a place where people the community gathers yeah we're doing uh we're doing we're doing meetups and conferences and everything but what we don't have is uh i mean we don't have a community management i mean a lot of companies they have like the normal
Starting point is 00:56:17 company and communication and marketing and development and then they have this other department which takes care of the open source community. And you have a community manager who is trying with, and the job is to do this parallel activities and this parallel events and this parallel communication and parallel development process and stuff.
Starting point is 00:56:40 And I find this weird. I mean, for us, it's the same. It's like we are, like our marketing is also targets our community targets also our enterprise customer but also targets like the community in a lot of cases the message is also the same because our companies care about privacy and security and our contributors too and the events are also there's a huge overlap so we trying to integrate that another interesting thing is yeah maybe to explain this a bit better is like in the old days of the
Starting point is 00:57:10 old project we actually had two websites we had a dot-com website and a dot-org website and the dot-com website was like for the big paying customers and the dot-org was for the community and it's always that's a. Nowadays, we have only one website and we balance it for both target groups. And this works out quite well. And to be honest, there are sometimes not two target groups. Like in so many cases
Starting point is 00:57:37 where I have meetings with customers that tell me, yeah, I mean, we try to use Nextcloud in our big company here, but I'm also using Nextcloud at home. I'm also a home user. So it's not that you have the open source community and then you have the serious business community and they're totally different.
Starting point is 00:57:59 I mean, if you're doing a good job, then this is the same. I'll have to say that my spidey sense has gone up on a couple of companies a couple of times with community managers or sometimes it's developer relations where I can see both sides of the coin. If you have a dedicated person that's like, I'm running the community or I'm community manager or something, in one regard, you're like, wow, this company cares so much
Starting point is 00:58:25 that they're going to pay somebody full-time just to participate in this capacity. And that means they care. And then maybe the pessimist in me thinks, is your community a business unit? You know, is it like... Yes, exactly. It's almost like you see right through it,
Starting point is 00:58:41 and you're like, is this a real community, or is this a business unit with KPIs? And it can ring hollow. Exactly. And so that's an interesting point that you make there. I haven't really put it into words before, but I definitely had that feeling where I was just like, this feels not actually like a real community,
Starting point is 00:58:57 but kind of like a facade of what a community is supposed to look like. And sometimes that turns me off. Yeah, we had this in the past like in the old and the old company where there was the the real marketing and then part of the real marketing was then the community manager for the community marketing and then we had the real uh engineering vice president of engineering and then you have the community manager who is trying to translate this stuff into community processes. And the same for other areas too.
Starting point is 00:59:31 And it's a bit weird. I mean, yeah, with Nextcloud, it's of course a special situation because it basically was founded with the core group who really did this years before. So we really have this special understanding and focus on the community and the product and everything. So we are able to, I think, combine those two worlds in maybe a unique way.
Starting point is 01:00:01 Because if you... Normal companies, you have your managers and if you tell them well we also have this community and they say well i don't really understand it in most cases like yeah you have this other this weird volunteers there's this weird developers that sit in the basement and they work for free i don't really understand and it's like so it's like i don't know it's you don't see a lot of companies who really really like understand the power of open source for a lot of cases just yeah open source is a weird license or open source is just like yeah we, we have this freemium model where other people use our product without paying us.
Starting point is 01:00:47 That's open source. But the real social humanistic aspect of it, you don't see it that often. What would you say the biggest challenges you're facing is right now? You specifically and then, you know the company at large um so me me specifically i mean my job is to um yeah to to grow next cloud i mean to make sure that we have get more customers hire more developers like doing more marketing, basically make the next cloud story more successful. That's my personal job.
Starting point is 01:01:30 And I mean, we are doing quite good at the moment because there's a lot of awareness, especially in Europe and in other areas, that it's good to have alternatives to the big three cloud companies so yeah the challenge at the moment for me personally
Starting point is 01:01:51 is to grow the team and just to grow the company because it's well in a way like the 50 people we have is not so big but of course it's Nextcloud is only like three and a half four years old so it's also not that small and yeah we will grow more and it's a challenge to find the right people and to
Starting point is 01:02:12 build up the processes but not too much processes and to position ourselves in the right way um yeah and of course we also we are we are stupid enough to compete with the huge companies here. So yeah, yeah, yeah. Yeah. It's stupid that we try to offer a software that's comparable to Office 365 and Google suite. And that's of course a big,
Starting point is 01:02:36 big challenge. I mean, at the moment we are doing a good job because of our open source strategy. So next lot is, is, is okay. It has like most of the features we need. But of course, it's not standing still, right?
Starting point is 01:02:50 It's like this is not a product, which is, it won't look the same in 10 years or five years. It's constantly changing. And so we also have to change and have to evolve and be competitive from the user experience perspective and the feature perspective and at the back end still being open source and easy to run and easy to upgrade
Starting point is 01:03:15 and everything you want from on-premise software. Over the next month, let's say you can wave a magic wand, maybe next quarter, and your job is growth specifically your your job what would happen you know what kind of things would have to happen successfully for you to say okay now it's okay to grow the team like is it a revenue thing like what certain what certain metrics what levers get pulled or change what variables change to say okay we can grow we're, we can grow. We're safe. We can grow. So, I mean, we have a few challenges. I mean, one of the bigger ones is, of course,
Starting point is 01:03:49 on the marketing side to make Nextcloud more well-known because, well, we don't have a real marketing budget. We are a tiny organization. So if more and more people would know the Nextcloud exists and it's easy for people to use it. For example, we are trying to work with some of the bigger service providers all over the world in different countries to offer Nextcloud services. And then if you somehow became, I don't know, maybe get the next Super Bowl ad for free or something. I don't know. That we really see, okay, well, now we know a lot more people know that Nextcloud exists
Starting point is 01:04:33 and it's a good solution and so on. I think this would really help us to grow more and then I can hire more people. And basically this would help us to reach the next, the next level here. I mean, there's a lot of things to do on the software too. I mean,
Starting point is 01:04:50 to improve, I mean, there's always features to do and bugs to fix and performance to improve, obviously always. But I think the marketing, the marketing is something that where we really could use the next, next reach, next milestone somehow yeah well there's two things that uh there's two questions essentially you ask yourself when it comes to to marketing you want to know who your customer is and you want to know where they're at those
Starting point is 01:05:18 are the two things to solve for once you know those two things it's pretty easy to make an attack in terms of like finding them and sharing your message and sharing your vision your dream that's the hard part though who are they and where are they yeah i agree i agree i mean in a way the the answer is obvious it's like the decision makers like the it managers of the companies but in reality it's of course more difficult um because who are those people are they like i don't know at the moment we have our strategy is to um to reach those people also with our community products a lot of people use like next cloud at home and then later um bring it to the company um because we can't we don't have the budget to target like the it decision makers directly so
Starting point is 01:06:05 we have to go through the the enthusiasts community um yeah it's it's an interesting interesting challenge and you're completely right you need many to identify the target groups but then of course the question is how to how do you reach them with our small marketing budget we have? Get creative. Get creative is always the answer. Yeah, exactly. Growth hack, get creative. Come on a podcast like this.
Starting point is 01:06:35 Free Super Bowl ad. Yeah, exactly. I mean, breakthrough tomorrow, I'm sure. That's right. You never know. You never know. Yeah, but I mean, at the end of the day, it's grassroots. I mean, we need to have a grassroots strategy somehow,
Starting point is 01:06:49 word-of-mouth strategy. Firefox did it. Yes, and many others too. I mean, Linux, right? I mean, Linux became popular via the enthusiast community, and they have now basically completely killed the commercial Unix systems out there just with their community strategy.
Starting point is 01:07:08 And the same thing with MySQL like 20 years ago and so on. So yeah, it's a working strategy. Another benefit of being open source. Absolutely. Well, Frank, our best of luck as you move forward with Nest Cloud. It looks like really high-quality software. We didn't talk very much about the software itself, but you have so much experience and insights around the open sourcing side
Starting point is 01:07:33 and the community side and the fork and dealing with the transition that we thought we would camp out there. And we definitely recommend, we'll help you do the little grassroots marketing. We recommend our listeners check out NextCloud, especially if you are security focused, privacy focused, and willing to spin up
Starting point is 01:07:53 a server in your house or in a rack nearby or want to run it on a hosting provider, a VPS provider, something like that, definitely check it out. We've heard only good things about NextCloud, so you're doing a great job.
Starting point is 01:08:08 I did check out some of the code. I'll say this. You're trying to keep up with some large companies. You have a lot of software out there. You have a lot of open source. So check out the NextCloud organization on GitHub. We'll have that in the show notes because there are a boatload of repos
Starting point is 01:08:24 in all sorts of different languages and technologies from the server to the Android app to the iOS app. I'm sure there's many places to get involved. And well, we appreciate you sitting down with us. Another shout out to Andre for helping put this episode together and we really appreciate
Starting point is 01:08:40 it. It's a lot of fun. Thanks a lot. It's really awesome to be on the show and yeah. Thanks, lot. It's really awesome to be on the show. And yeah. Thanks, Frank. All right. Let us know your thoughts about NextCloud at changelog.com slash 383.
Starting point is 01:08:52 Comment on this in all our episodes at changelog.com. Head to your show notes and click discuss on ChangeLog News. We'd love to hear from you. Support us by telling
Starting point is 01:09:01 your friends, send a text, tweet, Insta story, whatever. Pick your flavor of influence. We would appreciate it. And this episode was hosted by Jared Santo and myself, Adam Spakowiak.
Starting point is 01:09:10 Our beats are produced by the Beat Free Break Master Cylinder, and we're brought to you by some awesome partners, Fastly, Linode, and Rollbar. Oh, and one more thing. We have a master feed that brings you all of our podcasts in one single feed. It's the easiest way to listen to everything we ship. Head to changelog.com slash master to subscribe or search for ChangeLog Master in your podcast app. You will find us. Thanks for listening.
Starting point is 01:09:33 We'll see you next week. Thank you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.