Join the 85,000 open source advocates who receive our giveaway alerts and article roundups.
Coursefork is like a GitHub for course creation, interview with Eric Martindale
Coursefork: a new way to collaborate on open education
Get the newsletter
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.io, OpenDesk), 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.