Exercise has 2M users but no money in the bank
Exercism has two million users but faces financial challenges, leading to staff changes. It relies on 800 monthly donors and is exploring new revenue streams, including a for-profit educational product.
Read original articleExercism, a nonprofit organization that provides coding practice and mentorship, recently celebrated reaching two million users and 45 million exercise submissions. However, the organization is facing financial difficulties, having depleted its funds after paying its final payroll. Despite a growing user base, Exercism struggles to secure funding, as its broad audience does not align with the narrow missions of potential funders. The organization has seen some success with advertising but finds it unsustainable. As a result, Erik, a key team member, will leave his position due to budget constraints but will continue to contribute as a senior maintainer. Exercism currently relies on about 800 monthly donors, which covers server costs but does not provide a financial buffer. The organization is exploring new revenue streams, including a for-profit educational product set to launch in 2025, aimed at teaching coding fundamentals. Additionally, plans for a learn-to-code course and a basic version of Exercism Teams are in the works. The leadership remains optimistic about the community's support and the organization's growth potential, despite the current challenges.
- Exercism has reached two million users but is facing financial difficulties.
- Erik, a key team member, is leaving due to budget constraints but will continue as a maintainer.
- The organization relies on about 800 monthly donors to cover server costs.
- New revenue streams, including a for-profit educational product, are being explored.
- Plans for a learn-to-code course and a basic version of Exercism Teams are underway.
- Many users express their love for Exercism and sadness about its financial struggles, emphasizing its value as a learning platform.
- Several commenters suggest monetization strategies, including charging a small fee, offering paid courses, or creating a job board.
- There is a recurring theme of skepticism regarding the nonprofit model, with many advocating for a shift to a freemium or subscription-based approach.
- Some users propose alternative funding sources, such as partnerships with tech companies or philanthropic donations.
- Concerns are raised about the sustainability of relying solely on donations, with calls for a more robust revenue model.
I love exercism. It's beautiful, works in the browser and from CLI. The lessons are really well designed. It's the perfect coding school environment.
So, I'm sad it isn't viable.
But, I think I am really saddened by the comments here, second guessing all the decisions they made. If I were to second guess the people behind most of the comments, I would assume no one has ever run a business with payroll, or built something with this much reach. The comments ring really hollow for the most part and seem really callous given this person has sunk his life into making the world, and my life, a better place. I'm scared for the moment he is in life and sad there are not more positive comments, and even better, comments from people where they would actually help by making a donation.
I know you mentioned you don't wanna do ads, which makes sense. But if you're getting 1200 sign ups a day thats worth a lot, and id be happy to chat and see if there's a sponsor opportunity thats uninvasive and that could at least keep you going.
anyhow, you can reach me on Twitter @wagslane or via email: lane @ boot dev.
either way, hope things turn around
You've probably thought of this, but it might be easier to charge a very small amount -- say $1/month, which most people even students, could afford, rather than rely on donations. If you get 1% of users paying that, it's still $20K month which is more than you're getting now. (Of course managing the payments themselves costs money).
It can still be non-profit (which is a great thing), so no one is getting rich off of it, and it doesn't poison the mission. But it could pay the bills.
Update: Processing fees are a problem as posters have pointed out, so you'd probably want to make it $10/year, or $5/six months. It's still an easily decision for a very large number of people.
Patreon has $1/month options, not sure how they do it though.
Given the state of every service becoming subscription based, I can definitely see a lot of subscription fatigue. Maybe an alternative route you could try is the annual wikipedia "We want to keep this free. Please help us buy donating". I think a lot of people appreciate the service but a lot of the times it's easy to forget that running a service like exercism can get expensive, and would be willing to donate, given a compelling enough reminder of this.
You already have the sandbox and the support for the most popular languages.
It may take some development to build out the feature but you probably wouldn't need too many to sign on to cover your costs and you could still leave your core offering free.
Have you thought of adding a hiring feature? Where people upload their CVs, and companies search (anonymously) for talent?
There is a hiring model called PPA (Pay Per Application), or monthly fees to search CVs.
Your unique selling point would be companies are not getting hundreds of custom AI CVs flooding their application; they search for what they want, and you're helping both sides.
Good luck!
edit: grammar
If you have an email list of 2 million… a lot of companies will pay $50-100k for a mention.
$7,500 monthly is nothing to a large tech company. It sort of does makes sense for big companies to subsidize this so that the quality and amount of software engineers that join their company increases.
This value prop is intangible, but I feel like at least one big company would go for it.
- Nonprofit business model does not equal "everything is free for the user forever", I'm guessing you already know that, but the wording on why you don't believe in nonprofit business models explicitly mentioned keeping everything free as the reason. You can earn revenue from users in a nonprofit business.
- You have a big audience with good engagement for the segment, there are multiple ways to make money without abandoning the core mission (job boards, screencast upsells for advanced courses, premium content, whatever else, look at how Remoteok.com makes money, copy-paste as the founder is super open on his process)
- Being a for-profit business and fundraising, will temporarily solve your issue of having funds to run a business. It will not solve the issue of not knowing how to/being afraid to charge users or other parties for the value they get out of your product. You could already be solving this problem today, and you have a 2million audience pipeline built in to solve that issue.
I'm not dismissing the challenge of some business segments being extremely difficult to make money in despite the value being meaningful, I work in healthcare, so I know, but since your new business will effectively be in the same segment, do focus on the revenue aspect much sooner and much than you think you'll need to, because you already know what happens if you don't.
And big respect for what you've built in a super crowded space, you obviously have the product and user empathy chops needed, wishing you the best of luck on nailing the business chops!
Some thoughts before I donate:
> I've lost faith in the nonprofit business model
Great! You will find a way to generate revenue streams. This is a good pivot! I would recommend going fully open source and public domain as you add a profit model. IMO public domain for-profit companies are superior to (C) non-profit companies. Profits don't make you evil, closed source and copyright does.
> every PR in a live Exercism repository should get a review before it can be merged
Why? I recommend just merging in. Quickly fixing/undoing problematic commits.
> $7,500 in monthly donations. That covers our server cost
OMG!!! Stop! This money should go to you 3, not cloud providers.
Server costs should be $0. This should be a local first, entirely client side site. Maybe 1 $50 a month droplet if you need some read/write user stuff. With less than 100K active users in a day, 1 server should be more than enough.
Finally, ditch the (c) symbol at bottom. Go public domain!
Here's my user test and authoring of this comment: https://www.loom.com/share/763e480438c4481ba0aa056c6ef0cbbb?...
Y-Combinator says “build something people want”. Two million sounds like a lot of people.
I’ve only glanced over this so I could be missing some critical fact, but superficially it sounds like pmarca or pg should write a check before the rest of us stop believing in the startup lottery.
To me that begs the obvious question... what about trying some automated advertising like Google Ads? Probably not the most theoretically optimum use of their ad space, but minimal effort is involved.
I don't have a solution for you, and you probably tried a lot of prudent things. I assume you have already contacted people that buy into educational software (e.g. Kevin O'Leary of 'Shark Tank' fame)?
I wish you some kind of miracle that turns things around; sometimes once conversation can change everything. Surely this user base deserves that the site finds a way to sustain.
Feels like you've been kickstarting a competitor/pivot on the side.
At my org it’s hard to get justification for donations.
However if this was something like ~100$ a year or whatever per dev, I’d be paying it today for my team.
maybe everything that could have been tried was tried but this comes off like some of the effort spent working on the next company could have been spent keeping this one alive
I used to contribute to Exercism a lot (I'm still technically a maintainer but haven't meaningfully helped in a while), I think it was the first OSS project I contributed a large amount of effort to. I was more or less the sole maintainer for C++ for a while and also helped with the C track.
It's definitely a good service and OSS project, I recommend it a lot. Fundamentally though people don't want to pay for things that they can get for free, or they're used to getting for free.
If people actually want OSS projects to survive, you should be giving a little bit of recurring money. I set aside $XX/month to distribute to projects and I don't even work anymore.
Its bc we are skeptical and frugal.
It seems to me if you can’t get 1 in 500 of your users to give you $10 per year then maybe your product isn’t actually valuable or useful and should just shut down.
I say this without knowing anything whatsoever about this product or its utility; it just seems like a general thing. If you have this many signups and you can’t charge even a tiny tiny fraction of them, it means the signup number is irrelevant.
Get some inexpensive bare metal servers and you maybe can save 80% cost.
Non-profit =/= the product is free. The vast majority of hospitals and universities are non-profit, and their product/service sure as hell isn't free.
Nonprofits operate under a non-distribution constraint, meaning any surplus revenues must be reinvested into the organization's mission rather than distributed to private ownership.
What they've lost faith in is running a business with a free product.
One of the things I learned is that you should never offer even one tiny ounce of added value which the average user is not capable of perceiving.
Literally the entire idea of profit rests on arbitraging between perception and reality. You don't want to pay for surplus value that is beyond your customer's perceptive capabilities.
I would love for this site to continue and thrive.
I also agree with some others here that the hosting at AWS is probably best left to organizations that have a lot of spare cash. It is way overpriced. I self host a fairly busy site. It is mostly hands-off. I have never really fully understood the AWS premium.
Thanks for all the comments, especially those kind supportive ones. I've replied to a few, but I thought it would making a couple of general points for context.
1. I feel something that's missed is that if Exercism just continues to help tens of thousands of people per month and has no-one working full-time on it in the future, that's not the end of the world. Our donations cover server costs (thank you, donors!) so there's not an existential threat. And our wonderful volunteers keep our content growing and up to date (we've added a dozen new languages already this year). For most of Exercism's existence, it has had no paid staff. Me and Erik having to become volunteers again is ok - it just means things will improve slower.
The blog post was written as an update to our community, and our community has been on this journey with me over the last few year. They've seen us go from zero money, to raising over $1M in donations and hiring people, to not having follow-up donations and having to let those people go. They have a lot of context that's maybe not seen by people new to the story. The post is sad, because Erik, who's well loved is leaving, and because the last couple of years haven't financially gone in the direction we'd have liked it to. But the post is not me complaining.
Exercism hasn't been financially successful during the last 18 months, but it's fulfilled the core part of its mission by helping hundreds of thousands of people. And it will continue to help people moving forward.
2. Our aim is to get people to learn a programming language and then to get on with their lives. It's actively not to monetise people. That's important, because it changes the model a little. We don't expect people to stick around month-after-month doing stuff (one person said that having 70k MAU is terrible - but you can also see it as totally expected - you sign up, learn, leave - that's the point). Which means having some recurring Premium offering doesn't massively work. Nearly all the people who donate are also contributors, power-learners (learning multiple languages), or people who feel aligned to a world where something like Exercism exists, and want to ensure it continues to do so.
So the only real end-user model is to charge an upfront fee for using Exercism, which actively goes against the mission and doesn't honour the commitment under which people have contributed.
3. To all the other monetisation ideas, thank you for them. I appreciate you all wanting to help. We've considered and experimented with lots of them over the years. We've not found one that fits well yet but maybe/hopefully that'll change in the future. I have areas I will continue to peruse and am hopeful about.
4. There are numerous threads on server costs, and while I appreciate the opinions there, saving some cost there wouldn't massively shift the needle. Our donations cover our server costs. Hiring good developers and other people costs a lot more money than the ~$3k/month we'd save. I'd also say that there's some general under-appreciation of the complexity of running student's code in 73 programming language sandboxes in real-time. Exercism is a lot more complex than a webserver/database model - we have over 400 GitHub repos. I'm certain some ops gurus would be able to do a better job at building a server infrastructure than I've done for less money, but the one I've built works with basically zero maintenance and not having to be on call 24/7/365 is something I need/value.
As I said in my blog post, I'm going to take a couple of weeks out now, and come back hopefully re-energised to keep building Exercism, and the new project alongside it, which hopefully will help keep Exercism funded. Thank you again for all the support, ideas and well-wishes.
---
Changelog: - Added "For most of Exercism's existence..." to the end of that paragraph.
Shouldn't you be doing this the other way?
If you have 2 million users, then just make something that you can sell to them.
Whenever you have a bunch of customers paying you $X there is a subset of those customers that will pay you $(X+Y).
You don't have to "make them the product" in the sense that you would be selling their eyeballs, but you're teaching people to code, surely some of them will want to get a job as a coder afterwards.
What about creating a paid placement program where you give recruiters at companies hungry for tech talent access to the coders that perform the best on some tests? The coders can voluntarily take the tests, so they know their info is going to recruiters.
You could also offer certifications as a service to companies looking to test proficiency of their existing staff or create a subscription model for use by companies who want to upskill their existing staff.
With 2m users surely you have people using it from all over the world. Companies might pay a premium to hire the best up and coming talent on Upwork because generally their hourly rates are not as high as experienced devs on the platform, but you can tell based on the code they're writing that, despite their relative inexperience, they're an outlier in terms of coding skill.
You could get affiliate revenue or commissions by selling other, paid certifications such as for SAP/ABAP, Cisco, Microsoft and the like.
It just seems like you can take this as the platform product and upsell, rather than trying to create another product that you sell to people who aren't already using Exercism.
I used it [throughout 2023](https://xavd.id/blog/post/12-languages-in-12-months/) to tour new languages and have been on a deep dive of Rust this year in their [48in24 program](https://exercism.org/challenges/48in24). The UI and tooling is great, there are real humans available to mentor and everything is open source and volunteer driven. They make learning fun and that's no small feat.
Of course, things like this cost money to run, especially when there's so much going on behind the scenes. Sad that the current iteration hasn't worked out financially, but I have every faith in the team that there are good things ahead.
One thing that was obvious to me is that if you want to focus on a specific topic the $15/month subscription is too cheap, you can pay, take the course, cancel because you are done with the course, all within the month.
The other thing that is challenging is that the majority of programmer is either too cheap or "too broke", $15 USD is a meaningful amount of money in other countries with weaker currency, and in countries with strong currency I've met people paying thousands for a university diploma, doing a well paid internship that "could not afford exercism". That's though, I hope I never have to build a business for software developers.
All of that shared experience comes from 3-4 years ago, so prices, models might have changed since that, but if they go under it's sad, their UI and their UX was so clean, fun, interactive, pleasant, etc, it was a joy to study using their material.
Without revenue any company will fail regardless of popularity. A firm may acquire the company for the customer/lead list, but I wouldn't count on that kind of valuation matching the work your team put into the projects. =3
It is time investors businesses and started looking at the bottom line again, even non-profits. I mean can you imagine if we based the success of a store with how many people walked in even if they did not buy anything?
Even non-profits need to make money, so their business model was either wrong or they do not have a product worth paying for. On top of that we are probably in economic stagflation so we will be seeing more stories like this as the months go on.
So you need to upcharge. It is 100% free… to start
and then there is a subscription that is paid to finish the language course, shown in monthly cost but charged annually by default
more languages? charge more
You can sell the account data to recruitment firms. Everyone hates this but you know that your users are the product, your users know that they are supposed to be the product. Keep a cut with the recruiters so they have to pay you a little commission when candidates land a job
Business model: "I've lost faith in the nonprofit business model"
Also noting changing in the IT market, tech layoffs, AI revolution, less demand for tech workers.
Hope it will work out for you!
A lot of people will probably tell you to add a paywall, not sure it's breaking the "non-profit business model" if you keep the price really low. But at the same time, even a low price would deter some users (myself included) and it would also devalue your content :/
Have you tried selling access to that data to the usual suspects ?
You created a site that has 2 million users and don't know how to monetize? Just charge people $5 a month to use. It will solve all your problems.
Of the 2M users, guessing the MAU is much lower, which would render the ad model non viable.
Still always sucks to see solid products rendered unsupportable
For only 2M registered (not even monthly) users? Tell me you are using AWS without telling me you are using AWS.
Let's think about their heaviest workload, which is likely running user-submitted code server-side to test those exercise submissions. Say it's really bad performance-wise and costs 1s of single-core CPU time per submission. 45m submission gets us 520 days of CPU time.
I'm going to go out on a limb and claim their entire site could run off a $50/month dedicated server, and it would be unimpressed.
Life takes energy. You need to make some of it back to survive. Asking for money isn't a dirty thing.
your service is loved.
If you have that amount of users and you cant even pay 3(!) people, then your business model is massivly fci*g wrongly configured, Jesus!
You have that much traffic and you are unable to monetiz - i guess, this is because the "founder" is also the lead developer and the product genius.
You need some business guys to tune this!
Jesus, if this product fails, it will be a great example in whatever Stanford Business 101 course :-))
The goal isn’t to get investors! It is to get money from customers. A lot of startups seem to get this wrong.
Huh?
we need a lot more Byung-Chul-Han somehow
I hear the pain-points about the donation-driven model not rising to the task, but I do wonder how prominent that particular call to action is on the site. On one hand you don't want to bombard your users with annoying jimmy-wales-style boo-hoo donation banners. On the other hand you don't want your users to be completely oblivious to the fact that their favourite service is about to be shut down if everybody thinks that "it's ok, they probably have enough money / I wouldn't make a difference anyway".
Have you considered having a discreet yet prominent progress bar on the website, showing your monthly donation needs/goals? This could act as a good prompt for users to consider donating. One suggestion would be to accompany this by an information button, which when clicked takes you to a page explaining the different costs that need to be covered, where your money goes when you donate, and a detailed breakdown of what is currently still required / missing. Optics-wise, I would also try to find a way to differentiate between "large" donors and donation "trickles". E.g. you could color code on that progress bar different "tiers" of donation (or perhaps display this separately as a pie-chart in the breakdown information page). The point of this is to show to people who might be tempted to donate "small" amounts but are sitting on the fence because they don't think it'll make a difference, that it "can" actually make a cumulative difference, and push that kind of user past that threshold and donate "something".
Alternatively / additionally (you may do this already), if and when you see that a user has already extracted value from your service, such as, e.g., when they have submitted their 100th exercise, you could show a "congratulations" banner that says that you hope they're finding the service useful, and politely asks them if they could consider donating (oftentimes worded as "buy us a beer or two"). If they decide to donate, then after their donation, you could also have a tickbox at the bottom of this banner to ask in a respectful manner (i.e. not a dark-pattern-worded / confirmshaming one) if they would like to be reminded again after some time / number of exercises, or if they simply prefer to make a one-off donation and that's fine.
Finally, depending on your resources, if people "do" buy you a "beer", it would also be a nice touch to thank them for it, in an as personalised a manner as possible. Better yet, you could give them some sort of 'reward' / 'recognition' on the site; e.g. I think something silly such as revealing a hidden feature that allows a user to then tick a box to add a silly 'holding a beer' overlay to their avatar icon (in a similar way to how stackoverflow gives 'hats' close to christmas time), would actually go a long way to motivate people, after seeing these beer mugs on other people's avatars. And it's "silly" enough that people might donate to get this just for the fun and silliness of it.
The donation model is an odd one. Obviously, not everyone donates, but I think given some prompting and lack of friction in doing so, there's a significant number of people who would be inclined to donate out of a sense of gratitude, but who don't do so if they haven't been given a reasonable opportunity / visibility to do so, or some sort of confirmation that their donation doesn't just go to greedy shareholders on top of some sort of pre-existing dodgy revenue stream, but makes an actual difference to real people running the service.
There’s your problem right there. Investors want profit. If you want investors then you have to convince them you’ll deliver ROI.
Altruism is not a business model. There is nothing wrong with altruism but it is not compatible (except in short term or insignificant ways) with most of the business world, which is profit driven.