Making YunoHost a sustainable project

About one year ago, we were giving a talk with ljf at PSES about YunoHost. At
the end of the talk, one question that got asked was along the lines of : « It
is now recognized that YunoHost is an important project for Internet’s
decentralization. What is YunoHost’s model to make it a sustainable project ? ».

At that time, my reaction was to see someone telling us that YunoHost needed
money to be a serious project. And I was pretty much convinced that we didn’t
have to. My position was that we had the most ethical model, which is to be
based entirely on volunteers. Money come and go (and “corrupts”), so in that
sense it not more sustainable than volunteers’s time and energy. Considering
this, all we had to do to make YunoHost a sustainable project was to attract
more volunteers.

Nowadays, my opinion on the topic is coming close to the opposite. And this is
because I realized a few things about volunteership.

  • Finding occasionnal volunteers is already a hard task. You need to find people
    who at least known the project, have the skills needed to contribute, and have
    some time available to learn how to contribute, and to pass the barrier of
    thinking you don’t have legitimity to contribute. This also usually involve
    someone else you know IRL introducing you to the contribution process. (c.f.
    also Bram’s study a few months ago)

  • Finding long-term contributors is even harder. In addition to the previous
    things, you need to find people who have a lot of free time, i.e. people who
    don’t have a “regular” job and/or are not already invested in other project
    and/or are willing to invest their remaining free time in the project rather
    than other aspects of life.

  • Then there is the bus factor. Especially for YunoHost which is technically
    speaking a broad project which many different pieces that all need different
    kind of skills / knowledge. Nowadays I expect that it would be a bit of a
    panic if Maniack decided to stop maintaining the whole app CI or app
    ecosystem. I’m also not sure that we have many people aware of the different
    aspects of the stretch migration or the deb build chain. We also have several
    pieces that are essentially only “kept alive” such as the dynette, ssowat or
    the webadmin (c.f. deprecated dependencies which will end up breaking) because
    lack of humanpower. Ultimately people can theoretically be replaced, yes, but
    this also requires new people to take the lead and is a slow process. We have
    an example of this in the Internet Cube with keoma, pitchum and others trying
    to rework the vpnclient and hotspot apps…

  • Which brings me to the last item : boring and important tasks. Those, I think,
    increase over time. Nowadays we have to maintain apps, various infrastructure,
    old code, organizing meetings, handle user support, handle major debian
    version migration, take collective decisions and fix important security
    issues. Those are typically stuff not attractive for newcomers, considering
    that writing new software from scratch is usually more appealing than
    maintaining old software written by other people. Yet they still need to be
    done for the project to be kept alive, and they require a lot of energy from
    all current maintainers.

So overall, it seems to me that building a sustainable project exclusively on
volunteership is a huge bet. In fact, we should consider YunoHost pretty lucky
to have got that far, considering the original devs left, with still a
relatively active community today… This certainly relates to the fact that
there is demand for what YunoHost provides, in addition to decisive technical
choices (e.g. keeping app packaging relatively simple, or having a good-looking
webadmin/SSO). Yet, similar important projects were not as lucky. The Internet
Cube project struggled a bit for ~one year and half and still is(?). ArchOS died because
it was a single contributor. And there are tons of example of “popular FOSS”
that are getting really few contributions compared to their usefulness (c.f.
Thunderbird for instance).

The other alternative is to find money to pay existing contributors or bring new
ones. This has been discussed a few times so far, but only from the perspective
of “if we happened to have the money, would we be okay to do so”. But that’s
also biaising the answer by assuming that’s an option of the project, and not a
need for it to be kept alive and active. The question we should ask ourselves is
precisely the one that got asked one year ago : if we care about YunoHost, what
is our plan to make it a sustainable project. And contrarily to what I was
thinking a year ago, and for the reasons I exposed, I now think that “we rely
exclusively on volunteers and will attract new ones” is not an anwer.

This also calls the question of which ambition the project has. Right now,
YunoHost remains a niche solution and we estimate to have around ~2k instances
in the wild. This is both a big and small number. On one hand, this is a lot of
people trusting us, and on the other hand, this is a small number compared to
the energy that goes into the project (c.f. all the tests on the apps to make
them robust), the people that could be interested in such a solution and don’t
know about, and the general goal of democratizing self-hosting to have an impact
on internet decentralization. From my point of view, a mid-term goal for the
project should be to grow to ~10k users. I don’t have a magic recipe for this,
but imho it involves being a more known project (especially outside of France)
and being robust enough and documented enough such that we don’t get crushed by
the pressure of user support.

So if we were to pay contributor time, what solution do we have to fund this ? As
far as I know there isn’t a ton of options :

  1. Rely on donations, or on a larger scale, crowdfunding ;
  2. Get funding / grants from public entities ;
  3. Sell premium service / support / features to private entities.
  4. ???

Option 1 is for me the most ethical one and is already implemented by several
actors such as Wikipedia, Framasoft, LQDN, Mastodon for instance - but it also
requires to invest energy in communication, and a large community to be able to
raise a significant amount of money.

Option 2 is probably not sustainable or will require energy to find new entities
to get new funds. But it might also be useful to make a relatively small project
like YunoHost to grow in size to then be able to rely on option 1.

Option 3 is in my opinion the least ethical option as it tends to bias the
development of the project towards “what the private sector wants” especially if
we’re talking about big or medium-sized entities… ljf’s project aims at
providing support / coaching to relatively small entities but so far, afaik, the
success is only partial, and imho also depends of the project being well-known
such that there is a demand for it.

If I was to draft something, personally I think we should go for something like
this : We should aim at finding public funding, typically from the EU, for
something like 2 or 3 full-time contributors (or 4 to 6 part-time contributors)
to work on YunoHost core, apps and the Internet Cube over the course of 1~1.5
year. A rough estimate is that this corresponds to 50~100k€. That’s certainly a
lot of money, yet not impossible to get from the EU when we see things like the
Next Generation Internet call. Part of this should be invested in making the
community grow, especially outside of France, such that we are then able to
raise money from crowdfundings the following years.

So that’s a big wall of text with a lot of ideas, and the goal ain’t to say that
YunoHost will collapse if we don’t do anything, but rather to open the “boring”
question of what’s the long term goal and strategy of the project.

Last but not least, this is of course related to my personal situation and stuff
I have been wondering about for ~9 months. My situation is currently a bit
precarious, yet I invest something around ~35 hours / week on YunoHost (though
I’m not counting hours so I don’t really know) and I regularly have to decide
between getting a stable job/situation or being able to keep working on the
project. To be a bit more concrete : a few months ago it was pretty much “do I
answer this very appealing astronomy computing job offer, or do I keep the
precarious situation to work on this boring-as-fuck stretch migration”, and a
few weeks ago it was more like “do I look for a real job or do I use my savings
and hope I get a mission soon”. The situation isn’t too dramatic, and there are
other factors besides YunoHost in my life choices, but it also tells me that I
won’t be able to keep contributing like I do on the long term. I’m not aware of
everybody’s situation but some of you might have similar concerns, and we also
saw with kload, jerome and others that people tend to not put volunteer-energy
in a project more than a few years, because there are other things in life :stuck_out_tongue:.

12 Likes

I am agree with those conclusions, I think we should create a non profit organization for yunohost and grab some public fund or donations.

We should take care to continue to encourage volunteers contributions too. I hope introduce paid contributors will not create problems between volunteers and paid contributors. I think currently we already have contributors more or less invested in this project. So there are already some part of our code known just by one or 2 persons.

I agree too that the current situation isn’t sustainable at middle/long term.
We can’t rely only on volunteers if we want to have a strong base which is not going to topple on lack of time of some of us.

We all know that currently some of us have very important knowledge on some parts of YunoHost, and it could be very difficult to go forward without them.
I believe that YunoHost could be either the future of self-hosting or show the way to it. In both case, I believe that YunoHost should be able to survive us.
So that I think have people who can work only on YunoHost, without having to struggle to have a real life could be a good way to build a strong base.
Otherwise, we all have something else to do, and it’s always more important because that what feed us.

Of course, having people getting paid will (probably) bring also some difficulties with volunteers. But, we’re not the first FOSS project to do so, answers and advice could probably be find.

Regarding how to get money, I don’t have any opinion, except making premium features of any kind, which is, for me, the opposite of FOSS spirit.

I can understand your situation Aleks, and personally, I’ve nothing against the idea of you getting paid to work on YunoHost.
But, because it isn’t my job, and I would never get paid to do that everyday. I’m not really neutral about that.

1 Like

OK. I agree with @Maniack_Crudelis. If we enable premium feature, for me, it’s the opposite to the goal of FOSS.

For the second point, it’s a bit what we decided to do with @Bram about the argumentation strategy/promoting strategy. https://forum.yunohost.org/t/promouvoir-yunohost/4342

For the first point (about donation and Crowfunding) it seems to be very good.

BUT : I think I was not enough time in the project or I didn’t contribute enough to say anything.

frju365

1 Like

Someone is kind of asking here why this post aint public. I was also thinking about making this a public discussion in Community. What do you think ?

Ok, let’s publish it.

I’m not against the idea of making this post public too.

Alrighty, moved it to Community :+1:

For me option 3 because :

  1. All our friendly competitor here: https://yunohost.org/#/selfhosting(talking about projects out of beta) do it. https://cloudron.io/pricing.html,https://cozy.io/en/pricing,https://sandstorm.io/get,https://indie.host/shop/ and we can’t say they are not ethical or least ethical.
  2. My personal experience. I was on a vacation and told about YunoHost to my friend. Fascinated by the concept of self hosting he said to help him host. I created a YunoHost server for him and another friend and end up maintaining the server till date because they are least interested in updating the apps and server and just want the end services integrated all together. This is a pain in ass to maintain and now soon migrated them to stretch.(why should I do it for them? Just because I did a commitment and love for the project)

Main point is that, there are people who want a solution like YunoHost but problem is people will never get over the psychological wall of touching the command-line initially who have never heard of Linux and terms like ssh, scrips etc. They have to spoon fed initially to get started.

  1. It gives satisfaction to people if they pay for it and have a team to help them.(Buying a sense of trust from money,I guess)
  2. Its good way to promote and come into limelight.
  3. As a community we are doing what we feel good for us. For eg. we package app which interest us rather then someone else, give priority to goals which are more important for our usability. But with the premium support we can focus what people actually want as new features.
  4. Its a continuous source of funds for the project. In adverse times(though I know it will never come) the project can be kept running.For eg, Website,documents,forums etc.
  5. For a skilled person or community of skilled people providing good things with there skills is ethical and nice. But promoting and having funds from the people willing to pay for the service knowing that the funds will be used for improving the project is not unethical either. Take an example of a painter who wants to teach free painting skills And paints on special request for people to promote and have funds for your free teaching is not unethical.
  6. It will attract more people to join and help for eg. in translation,development etc.

I can go on and on with many more points :stuck_out_tongue:
But they are just my views. Don’t feel offensive or bad if your view is different to mine.

Its the greed and personal motives which are unethical.

3 Likes

An important point is, the third option is

We’re not talking only about premium support service, we’re talking here about specific features and specific services for whom is going to paid for it. That means proprietary code, code that we’re not going to show to others people to keep that feature / service only accessible to those will paid.

Also

Because someone is going to jump off a bridge you’re about to do the same thing ? If some around us are ready to sell their soul to make money and forget what makes that we’re trusting them, that their problem. I’m not ready to do that. If YunoHost has to succeed and become more popular, it has to be by staying free and open source.
How could people trust us otherwise !?


Aside of that, doing premium support is another matter. And everyone here can do that without even asking us. YunoHost is free to use, and also to exploit.
My opinion about that is if someone want to give extra time for support and want to get paid for it, he should do it ! It would be great for YunoHost to have some people making a business of that. It could help people using YunoHost, giving a way to people who don’t want to bother with a real server to have one without all the problems getting around, and it could let people making money and live with a good job. All fine for me.
Regarding the YunoHost community making premium support to get money, the answer is quite simple. Right now, we don’t have enough time to bring a sufficient support to users. How could we ask to people to paid for a support that we don’t have time to bring them.

The only way I see would be to do like Nextcloud who’s offering a specific enterprise service with high availability support and (probably) a dedicated team to answer to them.
But we do not have this team, available only to work on support, the cash to start such a business nor that we have all the users they have.

As I can see from our “friendly competitors”

  • Cloudron add specific services, like ldap, only to users will paid for it.
    Unacceptable for me.
  • Cozy is selling storage.
    That something I agree with. They’re selling a service which cost them money. But anyone can use the same service with his own server without paying anything (at least not to cozy).
  • Sandstorm limit the number of services (apps I guess) you can add to your server.
    I disagree with that as well as with Cloudron, it’s against the liberty of the users, without real reasons except making more money.

Maybe the way cozy is making money (Or at least what they show), could be a good idea for YunoHost. I think about a partnership with a VPS provider to rent VPS with preinstalled YunoHost.

3 Likes

Hi, I fully agree. Solely relying on volunteers is not sustainable for the reasons you mention, but also because it can make volunteers lives less sustainable (less work life balance, refusing job offers etc.). If there is “free” and ethical money out there to grab (eg UE funding), then why not? Some people could even make their passion for YNH a job then.
Also having volunteers contributing along employees is quite common in nonprofit associations.

The administrative barriers to running as an association, applying for EU funds, being accountable for that money and becoming an employer are quite high though… The scale of YNH is also likely to be much increased.

If we just want to get some money to hire devs for specific tasks, there may be easier ways. But then, could these tasks really be done by freelance devs with no knowledge of yunohost?

1 Like

There could be premium services like bundling the VPS+domain+SMS verification check. There may be some other things where the admin task can be automated. What I have realized that people are willing to have the standardized integrated system like YunoHost,but are afraid of doing administration stuff because of the fear of doing something wrong. Configuration of personal domain to YunoHost is not as easy for end user as we think(if it was,he would already had his own server running,why would he require project for self-hosting). Our goal is to not only to provide a good self-hosting system,but also to bring people into the system without making them frustrated of things they don’t know off.

Someone jumped so it became inspiration for others to invent wing suit, parachute and high jumping. :stuck_out_tongue:

Its not about getting paid or having a living out premium service. Lets not call it even a premium service but a part of model to have a sustainable project. We can sell the storage(like cozy,it can be just a promoting strategy ) and bring end user into the project and then make this new community to participate in for crowdfunding new features and apps. For eg. people can vote and sponsor requests for new apps, request to sponsor profile picture,etc.

We have to promote and push the new people to a point where they have option to either sponsor the new features they want or give there time to the project,learn and help in development. You have to have the people to pay for the developers time on development if they are not willing to contribute to the project by coding or don’t have time to learn the skills(we are talking in regards to sustainable project).

We can have a message for the paid service “We provide paid service to get you started with YunoHost, if you really want to help we encourage you to have your own server and sponsor new features and apps.”

This is very good idea to start with,along with the DNS setup so that people can bind there bought domains with YunoHost hassle free.

1 Like

First of all, thanks for having opened this thread to community. This is a key subject for the future of YunoHost and even if “only consumers” or “very tiny contributors” like me do not have any legitimacy in choosing one or other option, it’s still good to have an idea on where the project goes, especially when - like me - you rely on this project to host your emails, personal documents, family pictures, calendars, contacts, tasks and so on.

It is also good for us to know to which levels the dedication of some contributors goes, and I have to say I was impressed by Aleks’ initial post. Obviously he spends a lot of time in the project, but I could never imagine it could go up to such amount of hours. I’m very fond of FOSS, but I’m also fond of some basic humanity rules, amongst which such a work has to be fairly paid.

Therefore, I believe it is part of the community’s duties to find some ways to make this happen. It seems to me that not only the sustainability of the project is at stake, but also its capacity to have an an internal organization in line with the human values it claims.

That being said, I have to admit that this is a difficult turn to negociate and ways to do it properly are quite subtile.

Here are the three options I like much :

Rely on public donations

We all argue here that YunoHost has much to offer, and I believe we could find some ways to get public founds to help the project survive. Regarding paperwork, it doesn’t need much more than opening an Association loi 1901.

Rely on private donations

I believe YunoHost could easily get the “Association reconnue d’utilité publique” status, that would help French people get back 66% of their donations on their fiscality.

Sell a “turn-key” solution, 100% based on the same software

This is one of the “make my FOSS make money” solutions that I like the most. I discovered it with Wallabag.
Wallabag developper did want to make some money from his FOSS at some point, considering how much time he was working on it (which sounds perfectly reasonable).
His strategy was to sell some turn-key instances of his Wallabag software.
Unfortunately, it turns out it worked but not as much as needed for him to be able to left his “real job”
https://linuxfr.org/news/un-an-apres-faisons-le-point-sur-wallabag-it
I have to admit that I’m not a client of Wallabag.it, partly because of (or thanks to…) a YunoHost contributor that made possible installing Wallabag on my VPS in one click !
Maybe this is what killed Wallabag.it.

However, I believe Yunohost case is a bit different. Indeed, I’m pretty sure selling turn-key Yunohost instances could seduce even people like me, that are perfectly capable to run their own instances but don’t want to deal with all the details. It could seduce people like Kanhu (or me) that need to take care of friends’ instances.
I’m very fond of YunoHost but if I have for a reasonable price a professionnaly serviced instance (up to date, granted SLA etc…) I’m pretty sure I will migrate quickly !

In addition of that, we could imagine some incentive for FOSS developers to make and maintain YunoHost apps. Let’s take again the Wallabag example. Imagine if YunoHost paid some fees to the developer when his App is installed on a paid turn-key version !

My YunoHost instance (in an OVH VPS + 300GB) costs me around 10€/month. I’m sure the same instance would have a “real cost” of less than 5€/month if it is mutualized in a big server. I’m also sure I will be willing to pay 15€/month for a professional service.

If you manage to migrate 10% of existing YunoHost instances to such a service you could already pay a full time developper.

4 Likes

Its been a while but I already did plenty of maths on that. Last year I had a project of launching an association providing YunoHost VPS (dedicated instances) and mutualized accounts. It was named “makeacloud”.
With some people here and others, we produced plenty of documents already (“statuses”, business plans, details of the infrastructures, and so on).
I also made plenty of scripts to provision yunohost vps through proxmox and also shared accounts through yunohost api and web hosting panels like Boxbilling (open source) and whmcs.

Ultimately my friend and I lacked the time to continue so I abandoned to resume casual contribution to yunohost.

All these scripts and documents are still available in case yunohost wants to officially try this lead.

Also the bottom line of the maths was that although the margin is high (low fixed costs), the total benefit is likely to be quite low unless we get plenty of users. Hiring someone full time would require hundreds of users already. Also, a small market survey revealed that people (normal John Doe’s) just don’t want to pay much money for services they already get free, although they agree with the principles behind.

Cheers

2 Likes

Hi @scith, thanks for this update, looks like you did an awesome bunch of work on the matter !
You are right when you say that full time would require hundreds of users (I believe something like 200 could already pay for a fair amount of money).
Nevertheless, IMHO the good things are :

  • It’s completely scalable thanks to VPS provider’s very flexible offers. You can start with a very small dedicated server (even maybe a big VPS) and start to make money from the first day.
  • Once the initial work investment (scripts, dedicated tools…) is done (let’s call it the CAPEX), the amount of work to put in is nearly linear with the number of users (actually it may even be a decreasing function)
  • As a conesquence, of course it will not pay for a full time job since the begining, but it may pay for each “OPEX” hours passed on it since the begining.
  • It means that for a quite low cost (the CAPEX job), you can build a scalable income business that is perfectly ethical and in line with the FOSS spirit of YunoHost

Then you will have two different outcomes :

  1. Success is there, this turn-key service will help you pay for a full time job
  2. Success is not strong enough to pay for a full time job. The turn-key service will nevertheless pay for the job it requires, even more. It will also allow YunoHost to be used by people that would like but feel they cannot !
1 Like

Needless to say, if such a service is to come to light, I will be one of the first clients :wink:

I don’t know what I’m talking about. That being said :

Wouldn’t it be interesting to work closely with framasoft on this matter? Yunohost and self hosting is on their roadmap, they already have a huge community and an infrastructure for the many services they provide. Could there be a framahost, and part of their crowdfunding dedicated to provide a job and the pay that comes along to a developer.

I also have the feeling you suggest the different options as not compatible… but they could be.

An option I think I have not seen yet, is to sell premium option development without closing the code : your company needs 2 factors authentication, pay for it and we’ll develop it for everybody.

This is great to read you’re wanting to move forward and get paid for the work. Long live YNH and its mighty developers !

3 Likes

An other idea: become a registrar (for .fr for example) and link yunohost directly to the management of this domain name system, like for noho.st nohost.me

The price would be higher but you never add to configure the domain name yourself: 20€ instead of 10€ /year for example

2 Likes

I like this idea as I feel the more anti-google warriors are united, the more they will be able to achieve their goals.
However, just like you, I don’t know at all relationships between Framasoft and YunoHost developpers, and I fully understand there might be some issues or concerns on both sides.

This makes sense yet I have never seen such a model in the past. Maybe it has been tried and doesn’t work ?

I really like this idea and would be willing to transfer my .fr to such a registar, even with higher prices. However, it seems to me that (except the “automatic” configuration) the service is quite low compared to the price. As a consequence, you’ll have a few YunoHost enthusiasts (like folks following this post) pay for it but then it will be all !

Of course, a proposal to rent a .fr domain during the post-installation process (which will have to clearly indicate that prices are higher than everywhere else for good reasons) could grab a few new users, but would that be sufficient ?

Nevertheless, it seems to me that this idea can easily be put into action, with very low CAPEX, and each € you get from it will be good to have :wink:

Hello everyone,
It’s my first post and my english can be poor so i hope i’ll be understandable.

First of all i’am a big fan of yunohost. I’ve been using it for years now at home with my family, mostly to share docs, photos, agenda and tasks (very useful to share a shopping list) and on a vps server for my friends, mostly to share photos and to chat.

Yunohost is exactly the solution i was looking for because it’s secure, not too difficult to maintain for me, there’s a directory to manage accounts, a sso solution and because i could install many different softwares.

I don’t contribute because my free time is not regular and i’m not sure i could honor my commitments. However, after reading this thread, i realize how “fragile” the project is. Well it’s not actually but it rely on some volunteers who offer lot’s of free time and i agree that a sustainable solution should be find. I can’t imagine my virtual life without yunohost at this time.

The different ideas here are good and i would be personaly please to contribute but i’m not sure that it will be enough. Maybe i’m wrong but the target of Yunohost is mainly the personal use, personal cloud. I try to promote Yunohost with my friends but i have to admit that few people finally install it. You made uge effort to simplify the installation and the administration of it but it is still quite difficult because of the number of concepts to understand (network, dns, sysadmin…) and the many different configurations that exists (pc, Windows/linux/mac, raspberry…).

I don’t know really much about “la brique internet” but I think for non IT people it’s still quite difficult to install and to maintain. So actually i think it’s mainly geek people. Maybe a solution could be to limit the number of applications and automatic updates for them it could simplify at list the administration (like a package for non IT people).

So i’am not sure that this target could make yunohost a sustainable project (maybe with framasoft it could work).

In my experience, another target of yunohost could be the small companies (PME, craftmen) who don’t really have solutions actually. I’ve lot’s of friend who don’t know how to manage their documents whith their clients, who would like to have a website or an e-commerce solution, some others have an old solution in their enterprise based on an old AD.

All those people want to pay for services, support and features. They just want something which is packaged, secure and that work.

I think this could be a good solution and all the features delivered for those clients could finally be use for personal use (see Tuleap model).

Some use cases :

  • lawyer, craftmens
  • PME
  • online shops
    Some packagings
    yunohost with
  • docs
  • calendar
  • emails
  • accounting
  • project management
  • website
  • secure, backup and restore

Just some ideas, thanks for all

1 Like