In the world of Free Software some of the most treasured values are sharing and cooperation. When an idea emerges it is not uncommon to share it publicly and that’s what Aravinth and myself did a few weeks ago. Our primary motivation was to create a sustainable online service based on Free Software. Although there are not many examples to follow the technical and ethical part of the problem only took us a few hours to crack: this is what we do. But the marketing part of the equation turned out to be well above our paygrade.
And then we had this brilliant idea: let’s not solve this marketing problem and instead work for the benefit of an existing organization, who already has a user base. In the world of startups that would be laughed at: why would anyone in their right mind go into the trouble of creating an online service for the benefit of someone else? But the Free Software world is different and contributing selflessly to an existing non-profit or a cooperative made perfect sense to us, as long as they shared our values.
So, we looked around and prepared a proposal which was essentially this: we both work for free to create an online service within an organization that retains total control over it. We only ask that when and if it turns a profit the money is used to pay us a salary. I’ve been involved in Free Software non-profits and working for companies of various sizes for decades and I’ve never been on the receiving end of an opportunity even remotely as attractive. It is the equivalent of finding money on the pavement. The worst that can happen is that nothing comes out of it.
Much to our surprise, the proposal was not accepted and not for lack of trying. Our first attempt was with the Gitea project, then Codeberg (only visible to members), Chapril and finally Indiehosters which rejected it in a very kind way.
To this day I don’t understand the root of the problem, the core reasons why these proposals were rejected. It was certainly not because of a lack of trust or autonomy. When someone comes to you with an offer that seems too good to be true, it probably is because it is not genuine. I raised 50K€ for the Gitea project a few months ago and will not get any money out of it: that was also very suspiciously selfless in retrospect. It also unambiguously establishes that I’m unlikely to have a hidden agenda. Not everyone has the ability to work autonomously and discreetly: when they ask to join an organization, will they take so much space that their presence alone will be a burden? However, this can be quickly assessed by looking at the forgefriends project monthly reports. In any case, there was no indication in any of the conversations that this was even considered to be potential issues.
Some of the reasons presented to reject the offer were solid: (a) because the funding model is not based on service, it is based on donations, (b) because such a project should stand on its own merit, (c) because it relies on a different technical stack, (d) because offering dedicated hosting is different that shared hosting. I’m not making an exhaustive list, just sampling a few good examples. However, if I put myself in the shoes of someone within the organization, I can request a modified proposal and solve each of them. (a) switch from a service business model to a donation model. (b) impose an incubation period for the project until its quality matures. (c) include GitLab in addition to Gitea. (d) include shared hosting tooling in addition to dedicated instances. And this is why I think these reasons and a few others, however solid, are not the root cause of the rejection.
Instead of banging our heads on a problem which we could not solve, we decided to embrace our failure and move on. This will however keep haunting me for some time and I’ll be sure to write a followup if I find some clarity on the subject.
Update, a month later
It appears this blog post was interpreted as a criticism towards the organizations that did not reply positively to the offer and I now see why. At the time I was trying to understand what I did wrong: there was no doubt in my mind that something I did was the root cause of these failures. Nobody else but me did or said anything wrong.
Bug 0: I started the discussion with the conclusion, asking for a decision. This is an obvious mistake in retrospect and a little embarrassing. What I should have done instead was, at the very least, start a thread on the general topic of forge hosting and explore various path and ideas with people willing to discuss it. This discussion was likely to take weeks if not months but there is no shortcut. This had to be a dialog where everyone reads and writes at a compatible pace. Only then is there a chance to be on the same page. And only after that can a project emerge.
Bug 1: If something very unusual happens before my eyes, there is a good chance I will not notice. Yet I was expecting people in various organizations to immediately understand the exceptionally generous and rare opportunity presented by the offer. It was presumptuous on my part to assume someone would carefully read a message I sent on top of what they already have going on. In the past I also failed to understand the scope of messages sent to me, even when they were important: I should have known better. I should have persisted instead of giving up. I mistook pushback and lack of attention for rejection.