4 years ago, we launched the freeCodeCamp Forum so everyone would have a supportive place to get programming help.
At the time, Stack Overflow was notorious for shutting down beginner programmers' questions for being "duplicate" or "off topic".
We made a conscious decision to be different. We chilled out and just let people ask their questions in peace. The only rule people needed to follow was our 200-word Code of Conduct.
Fast forward to 2019, and our approach has worked great. This is now one of the biggest programming forums on the internet, with 5 million views each month. It's all free, and with no ads.
But the developer community is now facing a new challenge. And again, we must rise to the occasion.
Reddit has crowded-out other developer communities on the web
Today, most forums have vanished in favor of Reddit.
For example, if you search for
angular forum on Google, the top result isn't for an Angular forum. Rather, it's a thread right here on the freeCodeCamp forum where someone is asking where they can find a good Angular forum.
It used to be that there were dedicated forums for pretty much every topic. Nowadays, there aren't even forums for tools as popular as Angular.
At the same time, the Angular subreddit is alive and well.
No big deal, you might think. Reddit is a fun website. Subreddits are easy to create and maintain. And somebody else will foot the bill for hosting.
But when you concentrate the entire global developer community into a single website, there are bound to be problems.
First of all, Reddit is owned by a private corporation. It operates with little transparency.
Subreddits are the equivalent of a land run.
Starting a community on Reddit is easy. When Node.js creator Ryan Dahl announced his new Deno project, for example, I went and created a Deno subreddit.
I posted a video of Ryan Dahl's talk, then promptly forgot about the subreddit. Only months later did I come back and realize the community had grown so much. My own leadership of the community didn't make any difference. It grew because people would search "Deno" on Reddit, discover my subreddit because of its name, and start posting.
I imagine this same effect explains how r/programming, r/machinelearning, and the other big software-focused subreddits became the de-facto core of the developer community. The people who control these communities aren't necessarily the best people for the job. They are just the first people to click the "create community" button in Reddit's sidebar.
Whoever registers the subreddit gets to keep it. They can appoint their friends to be moderators.
These moderators have full control over what posts appear (and disappear). They can ban anyone from their subreddit at any time, for any reason.
To make things worse, Reddit accounts are pseudo-anonymous. This means we have no idea who is running these subreddits, or what their agenda is.
A few years ago, r/webdev banned me. I have no idea why. I often see questions on r/webdev about freeCodeCamp - some of which even mention me by name - and I can't respond. I've messaged the subreddit's moderators asking to be reinstated, and none of them have bothered to respond.
Some of these problems are just artifacts of Reddit's original design. Reddit's founders envisioned Reddit as a collaborative filter for online content. Sort of like Digg and SlashDot. Reddit wasn't conceived with substantial discussions in mind. It was more about clicking upvote and downvote arrows.
Reddit's collaborative filtering platform is very good at finding the best cat photos for you to enjoy. It is less good for sustaining global communities.
Oh, and Reddit is also blocked in China and Indonesia. While this isn't Reddit's fault, it does mean that nearly a quarter of the world is unable to participate in these reddit communities.
For developer communities, Reddit is the path of least resistance. But we've seen where that path leads.
You can create a community on Reddit in seconds. Click the "Create Community" button on its sidebar. Reddit will take care of everything for you. All you need is a name for your community and you're good to go.
It was easy to start a community on Yahoo Groups, too. But this month, Yahoo announced that all 10 million of its communities are going into the dustbin of history.
This is just the latest in a long line of community platforms that have died - not because people weren't using them, but because its corporate overlords didn't want to pay for them anymore. With the flick of a switch, millions of communities blink out of existence.
"The internet is not a friendly place. Things that don’t stay relevant don’t even get the luxury of leaving ruins. They disappear." - Mark Zuckerberg wrote this in his "Little Red Book" that he forced every Facebook employee to read back in 2012
At some point in the future, this will happen to Reddit as well. And all of its subreddits will disappear. They won't even leave ruins.
Of course, you could say that for any website. Or any community. Or any thing. Nothing lasts forever.
But I will say this: freeCodeCamp will continue to exist long after Reddit finishes changing hands among private equity funds before winding down its operations.
And I can say this with confidence. For two big reasons.
Reason #1: Ownership
freeCodeCamp is a 501(c)(3) tax-exempt nonprofit. We're a public charity. You own freeCodeCamp. Everyone does. We're a commons.
Reddit, on the other hand, is a $3 billion corporation that has changed ownership several times in its 14 year history.
The moment Reddit's owners view it as dead weight in their portfolio, they will strip out anything of value - including user data. They'll sell this off to the highest bidder, then discard the rest.
Reason #2: Sustainability
freeCodeCamp isn't that expensive to operate. I ran the entire community out of my own savings for years, at a total cost of only about $150,000. (This was a lot of money to me personally, of course. But I am just one person. We are now a community of millions of developers.)
Reddit has hundreds of employees. They are paying for hundreds - maybe thousands - of servers. When Reddit falls on hard times, they will shut these subreddits down.
For some perspective, Digg was once much larger than Reddit was. And in the end, a finance company bought Digg for $500,000.
Reddit probably spends more than $500,000 per day just existing at this point. Though I can't say for sure because, again, Reddit is privately held and there's no transparency.
Why the freeCodeCamp forum works so well: moderators, moderators, moderators
The freeCodeCamp forum is something special. People volunteer their time and their expertise to help one another. We are growing because more and more people want a supportive place to get programming help.
The main reason for this: the moderators are genuinely good people.
I've vetted all of our mods myself. I've observed how they interact with other people, and carefully considered their temperament. Not only have they all read our moderator handbook - many of them have helped write it.
I've met with each moderator over the years to discuss their responsibilities. And in some cases, I even got to hang out in-person with them in cities like New York, Hong Kong, and Dublin.
It takes time to identify community leaders, and help coach them. But it is absolutely worth it.
How freeCodeCamp subforums can become an alternative to subreddits
Traditionally, freeCodeCamp has been divided up into a few subforums:
- Curriculum Help
- Project Feedback
- Career Advice
- And my personal favorite: You Can Do This!
Well today, I am announcing 7 new subforums. Each of these is dedicated to a field of programming that people already discuss on the forum. The difference is: now each of these fields has its own dedicated community.
Here's the full list of new subforums:
- Data Science
- Machine Learning
- Mobile App Development
- Web Development
You can ask questions in these subforums. You can share your projects. You can share related news stories. Essentially, these subforums function just like their equivalent subreddits over on Reddit.
The main difference is that you know who the moderators are. And these are people whom I've specifically chosen because they are supportive and helpful.
The other difference is that everyone is following the same dead-simple 200-word Code of Conduct.
I have already identified dozens of people within the freeCodeCamp forum whom I think would be good people to help lead these new subforums.
But this is a big long-term endeavor. We need all the help we can get.
If you have a passionate interested in one of these subjects, and think you'd make a good moderator for its subforum, I encourage you to apply to become a mod. All you need is a forum account and at least 3 instances of you helping people on the forum.
If I think you're a good fit for our moderator team, I'll schedule a video call with you so I can learn more about you and walk you through these tools.
Also, a quick update about the forum's visual design
You may have noticed that both the freeCodeCamp.org/learn and freeCodeCamp.org/news now have "Command Line Chic" redesigns, based on our new Design Style Guide.
We're almost done with our redesign of the freecCodeCamp forum, too. It should be live soon, and will look especially cool in dark mode.
In the meantime, I encourage you to create threads on these new subforums. Everyone should learn the fundamentals of programming. But where you choose to specialize from there is ultimately up to you.