Coursefork: a new way to collaborate on open education

No readers like this yet.
Freer than free, opener than open: The fight for the learning management systems

What if teachers could fork educational materials just like software developers fork code? Imagine if educators far and wide could collaborate on curriculums beyond their school, district, or university. Imagine a revolutionized education system by way of the open source model. Well, the future is now.

Eric Martindale, Cofounder and CTO of Coursefork, is replacing closed education systems with open ones with a new development tool for educators. It's not a MOOC, it's not Moodle, and it's not edX. It's a GitHub for course creation. It's about building a community.

Coursefork was born at an event called Triangle Startup Weekend in March 2013, and it's well on it's way. Find out more in this interview with Eric.

Tell us about Coursefork. What is it and what does it do?

Coursefork is a platform for open-sourcing and collaborating on educational material. We've built a way to upload course material, allow others to create copies, modify them for their own use, and share their improvements both back "upstream" and to the community at large.

We obviously take a lot of cues from the open source software development model. We recognize that the process adopted by open source software maintainers is analogous to the process that would be necessary to enable collaboration in education, so we're applying many of these lessons to the platform we're building while expanding on them in ways that make sense for the education community: modular components, built-in annotations, and resource libraries.

We're creating the "pull request" for courses, and the process of getting there means creating the tools necessary to support the community of a new open future for education.

You describe Coursefork as a "GitHub for course creation." What's the grand vision? Is this just about education?

Coursefork's immediate goal is to replace closed systems with open systems in the world of education.

It's pretty clear to us that the open source model continues to transform the way software is built and is beginning to permeate other areas in ways that we think are exciting, but more importantly, are wildly improving the quality of products and services. You can see the "open" philosophy in practice in fields like hardware design (Circuits.ioOpenDesk), architecture, and even governmental open data initiatives (at the city, state, and federal levels!). We believe that just like in the software world, the years to come will be filled with a myriad of tools and services built around the new open economy, and our long-term vision aims to be at the heart of this global revolution.

Education is a huge space to be in, and it is even larger when you consider that it's a fundamental component of modern life that spans far beyond the industry into areas like professional training and personal fulfilment. While education is ripe for disruption, the cycle is long and it's going to be difficult to effect change at the scale we're hoping for, so we're buckling in for a long journey. At the same time, the problems we're solving in the education space are the very same problems that exist in all these other fields, just as they existed in the admittedly more esoteric world of software.  What we're building at Coursefork is portable to all of these other fields.

Tell us about the backend. What language is Coursefork written in and what are some other technical details you're proud of?

We've got quite a few different technologies being utilized, each applied where it makes sense, and all designed following the guidelines of the Unix Philosophy so that improvements and iterations on each component of our stack is as seamless as possible, with minimum impact to the rest of the system. Our focus is to maintain the flexibility of a small company, even as we scale, by keeping our systems atomic. As such, we've focused on speed of iteration during these first few months, with the full understanding that no single technology can be a magic bullet for performance and every system will likely be replaced in the future.

Our current core stack is built on Node.js, MongoDB, and a distributed system built on redis. We're experimenting with Go for our reverse-proxy / load balancer, but Nginx is currently fulfilling the majority of requests for us until we're satisfied with Go in production. We're using (and heavily extending) Mongoose (an ORM for MongoDB developed by Aaron Heckmann at LearnBoost), and we're utilizing the Express framework for our web layer for the rapidity at which it allows us to develop.

One of the most interesting things we've built is an extensible distributed version control system that will form what we hope will become the new backbone of collaboration around the world. Our first implementation is built on a document database that keeps track of the changes that've been made to the documents (in this case, course material), both major and minor, and then allows a visual comparison of the "change trees" that result from an environment where timelines can diverge and converge.

Coursefork was the winner of a Startup Weekend, what was that experience like?

We won the education-focused Triangle Startup Weekend in March of 2013, and the Startup Weekend experience was utterly instrumental in our formation. When I first signed up, I was looking for a vacation from the stretch of consulting I'd taken on after leaving my last startup, but when I got there, I was completely swept away by the convergence of so much talent and energy.  The education-targeted guidance and mentorship we received in the process was invaluable, and was truly formative in nature—immediately convincing me that the time was right to wholeheartedly commit to an education-focused endeavor.

We've continued to stay engaged with the mentors who helped us through the weekend, and wouldn't be as far along as we are now without their continued help and support. Startup Weekend provided a fantastic platform for our formation and continues to provide momentum as we move forward, so I'd encourage others to take advantage of the same opportunity.

How can someone get involved with the project?

The easiest way to get involved is to join the site and start sharing your knowledge! We've been building a great library of programming and engineering related material, and would love to have more contributions and iterations on the content we have.

You might also want to help with some of the open source projects we're using, like Mongoose, Express, and Node.js. You can see a list of tools we're using internally on Coursefork's GitHub profile.  We'll be iterating on these existing projects internally as well as releasing our own tools for public consumption.

If the idea seems compelling to you, take a look at the Coursefork Careers page. We're hiring world-class talent to help us lead the way in applying the open source philosophy to education.


Jason Hibbets is a Community Director at Red Hat with the Digital Communities team. He works with the Enable Architect, Enable Sysadmin, Enterprisers Project, and community publications.


Excellent Jason! An open source is the the future for education and will revolutionize it across the globe.

Thanks, Carolyn! We really believe the open source future will build a much better education, and will be the foundation of many things to come.

Open source will build a much better education. I totally agree.

The corporate conglomerates have been dominating the k-12 market for many years. Pearson, McGraw-Hill and other textbook publishing houses have really blocked any educational alternatives to printed/av materials in k-12 for years and years.

In time, there will be a tipping point with open source in education, but the road to the tipping point will not be smooth and there will be many barriers (local, state, and other policies and regulations, for instance) to bringing open source to the k-12 market. But the k-12 market is ripe for disruption as you say and for an open global education revolution.

The political landscape of the publishers and the institutions is a challenge, but I think you're right; we've reached a point where the system simply cannot sustain this level of systematic incompetence any longer. Something has to break, and open source is going to rush to fill the void.

Wonderful! How exciting is this?!

I do have a few questions though:
1.) Is this just for k-12 or is it for post-secondary education as well?
2.) You stated that: "we've built is an extensible distributed version control system " - Why not just use Git? Why write a new one (please forgive my ignorance)
Thank you for all of your contributions to this critical project!

Thanks, Don! We're all extremely excited about Coursefork as well.

1) all of the above; we're even trying to expand the definition of "education" to include coworkers and industry peers. We have a narrow focus initially, but will expand outward in concentric circles as we gain traction.

2) Our first prototype was based on Git, but we found that the system wasn't quite designed for the same type of content that would be included in an educational syllabus, which are often [large] rich media and interactive exercises that need to be treated as a single unit. We had to spend some time thinking about the problem space and made the decision to implement a more robust system--which notably, we're planning on exposing a subset thereof as a git-speaking endpoint.

Thanks for your questions!

Hi Eric -- will CC license options for content/courses be supported?

That's a great question, Jane -- we're having that conversation internally right now. If we formally support licensed content, CC will almost certainly be among the supported licenses.

On the other hand, we may want to abstain from delving into the licensing morass altogether, and instead focus simply on the simple mechanics of open-sourcing educational material. GitHub for example doesn't formally support licensed code (as a feature), but provides a reference site for those wanting to include explicit licenses and even makes the process of including a license _file_ very simple. This means the license lives with the code itself, rather than with GitHub (as a feature / attribute on the data), which may be preferable.

What would you like to see?

Hey Eric -- that's a good point about GitHub.

I was thinking that if Coursefork is about creating and hosting content, then options for licensing that content could be included, eg. via an integrated license chooser. We provide support (somewhat outdated) for that at This would also encourage the open education community to make use of Coursefork, as OER creators and users are all about the content licensing -- and prefer that process to be made easy for them. Especially if educators are a potential audience of yours.

Over at School of Open (, our volunteer course organizers use whatever tools they find the most useful for their specific course. This could be a WP site, a Wikipedia page, or the P2PU UX. I could imagine Coursefork also being a potential tool for them, but as you can see we're all about "open" and would want the ability to clearly indicate the CC BY-SA (or more liberal content license) license on the course to encourage others reuse and remix of it.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.