by Michael D. Johnson

Introducing the Open Source for Good Directory: Help Nonprofits with Code

A few months ago, we asked 20,000 people why they were learning to code. More than half of them said one reason was to help nonprofits.

It makes sense. Writing code used by nonprofits is one key way that members of the freeCodeCamp community get practical experience doing real world work.

I began managing open source projects in December of 2014, and have been improving the process ever since. We initially built and delivered 24 projects the “old way” — custom built and delivered to one nonprofit at a time. Most of these projects consisted of basic websites and customized JavaScript-based CMS work.

These projects did a lot of good for a lot of nonprofits, and helped dozens of campers get their first developer jobs. I also realized pretty early on that I was destined to get to know a ton of talented coders.

But there were still ways to do more good.

With the creation of Open Source for Good last September, I used our past experience running these projects to take it up a notch.

After just ten months, Open Source for Good already contains 7 new robust open source tools that any number nonprofits can deploy and benefit from. (For comparison, Atlassian — a publicly traded software company — offers 12 products total.)

Most of these tools are already deployed, and are being used to help amazing people do amazing things. Two more are nearly completed.

It’s working. We’re doing more good. And each and every time we’ve faced a hurdle in this program, we’ve pushed through and solved it.

“Success is not final, failure is not fatal: it is the courage to continue that counts.” — Winston Churchill

There’s more to be done.

Problem: Not enough hours in the day for me to manage every nonprofit project.

Solution: Recruit volunteer project managers to help us while helping them build experience to qualify for the PMI-ACP exam.

Problem: Build something that an organization ends up not using due to internal bureaucracy.

Solution: Build tools that can benefit more than one organization, and hedge this risk. Portfolio items being used by real people and organizations are inherently more valuable when job hunting than projects that aren’t being used at all. This self-interest is the main reason we have so many kick ass volunteers.

Problem: More campers wanting to volunteer than we had good new project ideas to start from scratch.

Solution: Start campers out contributing to existing open source projects. This is the best way for them to practice the critical developer skill of working with legacy code.

For every problem, I’ve aimed to find a solution where everyone wins.

Today’s problem: The tightness of our growing community can be partly attributed to coding for a cause together. Yet only a small subset of the community has actually ever had the chance to do good with us.

Until now.

Solution: Today I’m thrilled to share with you the launch our new Open Source for Good Directory.

Now, if you visit the directory while you’re logged into freeCodeCamp, you’ll see a list of projects in the directory that you can contribute to right away — with or without all of your certificates.

If you can submit a meaningful pull request without someone holding your hand, you’re ready to contribute to these projects. You can use this experience to help you on your path to a developer job. You can code for a cause as part of your learning process.

Campers are serving as project maintainers, and are here to help. Working alongside you will be part of their learning process, too.

Keep an eye on the issues tab in the repos of any of these projects and help us tackle them. Consider forking the project and running it locally to see if you can find bugs to report or enhancements to suggest by creating an issue.

We’ll keep building new projects with small, assembled teams of the most prolific contributors who’ve earned their certificates. After these tools have reached a stable release, I’ll list them in the directory. This will open them up to community contributions that will make the tools better.

If you don’t feel ready to contribute quite yet, That’s totally OK. There will always be more bugs to fix and more feature requests.

Keep working through the challenges, build your practice projects, and earn your certificates. It’s a proven way to learn how to code some amazing things, and you’ll join the thousands of other campers who have done this before you and secured their first developer job.

We’ll still be here when you’re ready to contribute.

As I’ve said time and time again: All nonprofits should benefit from our pro bono code, and all campers should contribute to open source projects.

Now it’s easier than ever to do so.

The directory itself is open source, and is amazing in its automated features and ease of use. Special thanks to Juan David Acosta for his help getting this project to the finish line. Feel free to take a look and see if there’s any way that you can help us make it better, too.

Need some motivation to get started? Here are some amazing results from our volunteerism over the past 10 months:

  • In what was by far one of my proudest moments at the helm of this program, an education-focused nonprofit paying $10,000/year for enterprise software canceled their contract and focused their operations around our new open source student data tool. We haven’t always had an easy time quantifying just how much we’re saving nonprofits in software costs. Well there you go — and that’s just one nonprofit.
  • I have half a mind to start a food bank on the side, here in DC, just so I can manage its inventory and deliveries using Pantry for Good. First we built it to help run one food bank in Toronto, and now we’ve turned it into a general open source tool. If your local food bank wants to save money and operate more efficiently, you should mention it to them.
  • Have you received any emails from Quincy Larson in the past 7 months? He’s sending those emails inexpensively through AWS ($1 for 10,000 emails) using the camper-built Mail for Good tool. If you have a mailing list of your own, you can starting using this today to save loads of money. We sure did.
  • We’re developing an open source tool called League for Good to manage youth and charity sports leagues for free. Sports league management software is forecast to reach $5.9 billion market cap by 2022. (Does anyone else remember selling candy bars in order to afford jerseys and equipment as a kid? Imagine trying to sell $5.9 billion worth of those.)
  • Child First Authority made it through their first school year using our open source absenteeism tracking and outreach app. This replaced several unwieldy excel spreadsheets.
  • One end user of Conference for Good has volunteered to jump in and improve that conference management tool with us. Soon even more nonprofits will be able to use this tool to plan and organize their conferences.
  • We stopped struggling to schedule calls across multiple timezones with the launch of Meeting for Good. We had over a thousand people create accounts in the few days after I announced its launch. And the project maintainer, Jean Philip de Rogatis, just added Google Calendar support last week.
  • Campers keep getting jobs mid-project. It’s a nice problem to have, and I don’t think it’s a problem that needs a solution.

Happy Coding!

Michael D. Johnson, nonprofit guy at freeCodeCamp.

Follow me on Medium, Twitter or Facebook to read more about coding for a cause. If you liked this, click the? below so other people will see this here on Medium.