I’ve been considering publishing the music4dance source code as open source for some time now. I finally pulled the trigger!
You can find the source code for music4dance on GitHub, located at music4dance / music4dance; I’ve published the code under the MIT License. Note that this covers the code; I haven’t published the database.
I’ve documented the new ways (and some pre-existing ways) of contributing to music4dance in the contribution guide, and you can get an idea of what I (hopefully soon we) are working on by looking at the issues database. If you’re not a programmer, you can probably stop reading now. But, before you go, I would like to remind you that if you use music4dance there are plenty of ways to contribute to music4dance, including voting on which dance you would dance to a song or upgrading to a paid subscription.
Why Open Source?
My primary motivation for considering open source is that several people have reached out to me over the years, offering to help in general or implement a specific feature that they’re particularly interested in seeing. Making the project Open Source would be much easier than giving them access to a closed-source project.
I’ve also spent the last few years leading college students in contributing to other open-source projects as their capstone projects. While I’m not necessarily going to put music4dance features up for student projects, that experience combined with my contributions to BootstrapVueNext (the front-end framework I use for music4dance) has given me enough background in open-source projects to be more comfortable opening up my own codebase.
Another benefit of creating a GitHub project for music4dance is that I automatically get a reasonably well-designed issues database to manage code bugs, data bugs, and features that is visible to everyone. While you need a GitHub account to add issues, you don’t need an account to view them and get some idea of where I’m going with music4dance. Once more people start entering bugs, you’ll be able to see if others have run into the same issue you’ve discovered.
To top off my list of reasons to move to open source, I’ve been using some of the problems I’ve worked on with music4dance as fodder for technical articles on Medium. Since the source code for music4dance wasn’t publicly available, I built small projects to demonstrate the issues. While having small, isolated projects to demonstrate technical issues is useful – in at least one case, I’m maintaining the sample project as a means of testing updates to the affected systems in isolation – I’d also like to be able to show the solutions in the context of the real-world project that inspired them. Now I can.
What took so long?
I’ve been working on music4dance for over fifteen years. Why haven’t I made this move earlier? One reason is that by the time it occurred to me to move to open source, the codebase was well over a decade old. Much of the code was dated, there were many things I’d rewrite given time, and test coverage was abysmal. My impulse was to clean things up before publishing. I even started doing so with some of the oldest code. But I concluded that it would take approximately forever to get the code into shape, especially if I spent some of my time on new features and contributing to the song database.
I didn’t initially create music4dance as an open-source project because I hoped it would be the seed of a profitable business. I’ve pulled back that expectation to the hope that I can generate enough revenue from referrals, ad revenues, and subscription fees to cover the server fees and other expenses, making this passion project a revenue-neutral proposition.
In conclusion: For better or worse, the code is now out in the wild. Please take a look and let me know your thoughts.
Please let me know if you have any thoughts about the subject of this post or the site by commenting below or using other feedback mechanisms listed here. And if you enjoy the site or the blog (or both), please consider contributing in whatever way makes sense for you.