Keeping the site free

How do we make sure that the site remains free?

A lot of people speculate that some of the major issues which made Stack Overflow/Stack Exchange decline are

  • The focus of the company upon generating more popularity for more funding and ad-views, and

  • Neglecting the core Q&A experience’s development to focus upon the paid services like Teams.

There’s no point in considering the addition of premium paid features for the site we’re presently working on, but we should have a vague plan about keeping finances up.

The Wikipedia foundation is pretty big and well-known, so it’s fairly easy (or at least possible) for them to pull in donations. SE has ads. What will we have? I don’t have the best understanding of how databases for sites work, but I’m pretty sure that if we start building a large repository of content, it will not be free.


TL;DR We’ll get there soon enough

There are plenty of costs in a web site. But the basic hosting (web server and database server) will not actually cost us very much initially. The big cost is usually labor and right now we are entirely volunteers. As we get closer to a finished product, we will need to do some fundraising (e.g., GoFundMe or a donate button on the Codidact development site or something). For legal reasons, we need to get some structure (varies by country and there are a bunch of options, but essentially a sanctioned non-profit group of some sort) before we can take any money (otherwise it is taxable to the recipient and not of any tax benefit to the giver) and the legal process itself takes some money. Since the development is itself taking a while (hopefully it will speed up soon, but the reality is that planning a big system takes time) and we will get to the legal → fundraising part soon enough.


One funding source that hasn’t been mentioned yet is grants. A lot of organizations provide grants to new organizations to help get them started. For example, the Wikimedia Foundation offers grants, although it’s severely unclear whether Codidact qualifies for any of them.


A good enough website should be able to be kept free with donations and other financial support.

(it is just that commercial companies want to make more money and spoil their websites with advertising and are willing to take every other possible detrimental step as long as it maximizes their profit).

When Wikipedia started their costs were only several 10k dollars ( ). Their expenses are currently around a stable 80% of the income and they are comfortable enough to spend >15% of the expenses on donations and grants. The organization net worth of assets currently grows 20% per year. They do not really need donations that much to remain alive (they get much more than necessary to survive), but what donations do to them is determine how big their crew of professional support can be and how much they can spend on donations. The majority of a donation to wikipedia goes into that.


Having brought my attention to this thread, I’d vote for doing a fund raising campaign to pay the hosting coss for now, as @manassehkatz suggested.


To move forward we need at least two things:

  • Some sort of entity that can receive the funds. This means figuring out which jurisdiction makes the most sense and setting it up. I mean, it could be anywhere in the world, so let’s not just default to a US non-profit. We need someone to lead investigations here, as I suspect most of us know almost nothing about setting up non-profits.

  • Some cost projections. How much money do we expect to need in the first 6 months, first year, first three years, longer? This means figuring out what realistic costs are and also involves some guessing about community growth.


If you’re going to ask for donations, it’d be nice to have something to show for it first. E.g. at least a roadmap, timeline, and some idea of the progress thus far.

At this stage there’s still MVP debates. I wouldn’t even be sure what I am donating to.

It seems too risky to donate now and not even know if I’d like the result.


I expect that the initial launch can be funded by donations from core people here, the ones who are already sold on the vision and are very motivated to make it happen. I know I’m prepared to kick in a decent amount.


As an educational charity it may be that some organisations could find it easier to donate equipment rather than money. Perhaps an Amazon-like Wish List could contribute to easing the actual cash requirement. A discrete “Donated by” mention could be valuable advertising for the donor without intruding on user experience.

Some actual hard numbers as context here

For my own experiments, I’ve been running an a C# webapp + PostGreSQL DB on Azure since November or so. Everything runs on the lowest tier (slower & costs less). Now, of course I have no traffic to speak of, but for a starting app that wouldn’t be a huge difference. It costs me around 25,- per month (in Euro, but it’s not a huge difference).

A 1st world professional programmer donating 2 hours of their time to work on this project has already given more than somebody who pays for that hosting.

In the beginning, we won’t have much traffic. Also, the core people won’t be bothered that much if a page takes 2 seconds to open. The bigger we get, the greater the potential to get money and increase the service quality.


@cellio I actually have a fair amount of experience setting up non-profits in the USA. I helped found (and sit on the board of) four non-profits currently, and have assisted four others in getting going. Although I’m not a lawyer myself, I’ve consulted with lawyers on these non-profits eight times now so I have a general feel for the legal advice.

I’m 100% on-board with setting up the non-profit outside the states, but just mentioning that I have a pretty good understanding on creating and starting a non-profit entity in the US if that’s something people were interested in.

For funding - start small, move slow. I like the idea of initial launch funding being donations from core people on the forum/discord. We should wait until we have something shiny to do a big public ask. Trust me, doing a big public push before you have a working product is very difficult and can backfire.


I just want to cross-link this to a post in another thread — it’s probably more relevant here then where I initially posted…


Random ex-SO user input: I’d gladly toss, say, $10/month to defray operational costs, and any user should have easy means to do so I imagine. The below are my thoughts related to funding models, but also to tiering of all sorts (which I dislike).

My No-Gos

  1. Wikipedia-style begging

    It is just a turn-off. This is entirely a personal dislike and thus may be irrational, and I may be a total nutso outlier here, and moreso it didn’t make me use wikipedia any less. Yet I just roll my eyes and I think the more I see their beg-messages, the less likely I’ll be to toss any money their way. They surely have analytics they could use to see if they can predict users who’d fall in this category (and whether it’s a worthwhile category to even worry about).

  2. «Imma paid user look at meeee!»-style tiering

    Anything that publicly displays paid support will induce some sort of tiering mindset. An argument can be made that it “promotes” financial contributions, but I wouldn’t want my name used to promote any such thing. I’d go as far as saying that publicly exported data should have the paying status anonymized to the extent possible. Perhaps even completely removed until development resources are available to somehow expose this to allow data analytics without making it possible to correlate with a particular username.

  3. Official sponsorship

    Anything like “This site sponsored by FooCorp. Get great deals on Foo Widgets!” - even just text - is meh. Even if this was just one or two corporate sponsors.

  4. Paid job ads

    It’s probably too early to tell whether those would make sense, and I’m clearly ambivalent on these. They do seem to be way too close to just selling random ads outright. Yes, job ads do have some benefits to the users of the site.

My Yes-Pleases

  1. Even more de-tiering: The ability to hide my reputation above a certain level

    I’m sure that A/B testing would need to be done to see the impacts of this, but high reputation users shouldn’t need to toss their weight around, and I certainly rather wouldn’t. Let the content stand for itself and so on. A YouTuber I hold in high esteem - AvE - had turned off either the subscriber count or the view counters under his videos, and I find it an exceedingly positive and endearing gesture. No need to toss millions in people’s faces, potentially discouraging budding content creators liable to think “no way I’m gonna beat that dude’s popularity”.

  2. Direct payment processing as a long-term goal

    I have no gripes against Patreon, and it may be very useful to allow running costs contributions via that platform, but I’d gladly see codidact eventually get an incorporated entity like “Codidact Infrastructure Management”, that would be isolated and fulfill the sole purpose of collecting such payments directly using an actual merchant account and forwarding the proceeds to Azure, etc.

  3. Arms-length separation of infrastructure funding and everything-else funding

    Since the reputation of such infrastructure-cost-receiving would be extremely valuable, it should not be involved in any other type of payments. E.g. if codidact wanted to get money to pay for developers or any other resources, it should be a separate entity. Why? Because no matter how well thought out such activities are, they will always generate some long tail of controversy and dissatisfied users. If someone wants to do a chargeback, let it not affect recurring payments that keep the servers running. Even if an hour of first-world progammer’s time is worth more than a $10 donation, the infrastructure bills will be there, and they won’t get paid by people contributing code and expertise! I’d consider infrastructure funding to be so essential to continued viability of any site, and “pleas for help” to be so detrimental to the image of a stable operation, that the continued recurring donation stream that pays the monthly bills must be viable on its own, and must be treated with due care. A sudden plea for help is OK for budding operations, but not after the site gets some credence and momentum. It leaves doubts and speculation in people’s mind about the viability of a project.


As I mentioned in passing on Discord, I’m currently between jobs right now. As the government of Oz is currently stuffing around processing my unemployment benefits claim, I can’t afford to donate anything but my time, and probably not much of that right now.

However, if there was some way that I could be paid, I would be able to dedicate my expertise full-time… or at least as much time as I could be paid for. It wouldn’t even have to be market rate for a senior dev right now… any income and experience to put on my resume would be worth the effort.

Sorry to be making a plug for money… but money is what feeds my kids, and it will make this idea a reality much faster.

If necessary, I could even bring a temporary, starter hosting service to the table… I have a Win 2012 server with plenty of free capacity that I could throw in… if I was being paid for my work. As a side-benefit providing use of my personal equipment to an employer is tax deductible for me.

As for funding… once we have a product, since this will be open-source, anyone could set up their own server and copy our code.

However, what we will have that they will not, is expertise. We sell support and hosting, but the code is free, or donationware.

1 Like

Start with setting up a Patreon / Liberapay / Github support to have some predictable income. That’s how Matrix pulled through when the initial funder abandoned them. If there is a trusted project lead, I wouldn’t worry about setting up a foundation initially, it might sap the energy. Or maybe you can find an established organization willing to provide a legal framework without much bureaucracy.

Hosting costs are going to be trivial initially, you won’t have a problem covering them. If you want to support someone working on it full time, that’s a different matter. You might want to see if there’s anyone in your core community living in a cheap part of the world.

Wikimedia grants are in theory available to people working on non-Wikimedia-related projects (although I don’t think it happens much), but from the point of view of a grantmaker, why would they support a group making a FLOSS Q&A web app, when several such exist already?

A hundredfold, pretty much. Literally.
A cheap server would be around 25/month, a skilled programmer in a first world country, 2500/month is on the lower end.

On this note; what will happen with multiple communities? Will we be hosting the servers for them? If so, will we require that site to donate? Will there be traffic thresholds for new sites, before they’re hosted by us?

If not, what repercussions could there be from inconsistent servers or extremely slow loading times on the Codidact organisation as a whole?

The current plan (subject to change) is that any community listed in the Codidact primary instance (i.e., you can get to it from a list of sites on the Home page) will be hosted by the Codidact organization. IMHO, that is necessary to provide the control we need to keep things in shape. That being said, if a community starts with the Codidact primary instance and wants to leave (e.g., in order to have a different Code of Conduct or some other “philosophical” difference), they will be 100% free to do so - and they can leave by taking their database and starting their own Codidact instance - no need for them to reinvent the wheel.

Traffic threshholds? Server load times? etc. TBD. If we have (as is currently being discussed, but not yet determined) web servers where some of the servers handle multiple communities, then adding new small communities would be easy & inexpensive (no additional server instances needed, though depending on implementation details might need a separate (but small) DB instance) and as communities grow we can figure out how to split the load across servers as needed.