The Changelog: Software Development, Open Source - From open core to open source (Interview)
Episode Date: March 2, 2020Frank 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)
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.
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.
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
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.
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.
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.
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
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
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
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
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
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.
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
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.
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
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?
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
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.
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
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.
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
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.
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?
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?
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
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
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
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.
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?
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
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.
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
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,
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
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
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?
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.
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
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?
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?
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
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,
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.
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
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?
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
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.
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.
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
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
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.
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
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
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.
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
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
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
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
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,
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.
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,
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
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
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.
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
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
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
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
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
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?
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.
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?
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
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.
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
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.
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
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
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
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
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.
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
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,
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
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.
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
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
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.
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.
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,
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
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.
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,
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.
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,
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.
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.
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
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.
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
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,
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
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
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,
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
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,
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
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.
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,
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
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.
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
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
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.
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
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,
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,
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.
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.
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.
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.
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
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
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,
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?
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
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,
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
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,
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
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
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.
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,
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.
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
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
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.
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
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
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.
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
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.
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.
We'll see you next week. Thank you.