We're excited to be sharing soundtrack.io with you. It's been a labor of love for the past couple years, but as with all great calls for change, this one brings with it a wave of energy and enthusiasm for new progress. It's time for us to move forward and take firm grasp of the future.
soundtrack.io emerged from the Coding Soundtrack community on turntable.fm, which you might recall shut down in a manner not unfamiliar to the recently displaced. We too migrated to plug.dj, in our case when the turntable.fm team made it clear that our efforts to extend and enhance the platform (with useful plugins, automatic queue moderation bots, and statistics tracking tools) were unwanted and even actively discouraged‡. With the migration to plug.dj came the promise of a supportive administration, excited to expose APIs and embrace the things we built with them.
However, after a period of stagnation and the departure of key plug.dj admins, it became clear that this was not the case.
Almost immediately, we decided to hack together an alternative that did exactly what we wanted — a no-frills platform for listening to music with our friends. After a short weekend of experimentation and prototyping, we emerged with a basic skeleton of an application that supported YouTube video synchronization for a single room. It worked! It was sufficient for the most of us.
Over time, we wanted more features. Except this time, rather than having to write bots to add the functionality we wanted, we could simple edit the source code directly, and have it be part of the overall experience for everyone! Ah, the benefits and joys of open source.
soundtrack eventually evolved abilities well beyond the initial scope — sets & playlists, multiple audio sourcing mechanisms (including SoundCloud, BandCamp, and soon BitTorrent), and even the more recent addition of user-created rooms. We are now a strong community who use the platform on a regular basis, a network of friends who've known each other, in some cases, for the better part of a decade. We're generally pretty happy with our quiet-but-music-filled corner of the internet, but we know we can do better.
You might've noticed the rigid design of our prototype. Certain things only half work, and some not at all. Sometimes the audio unmutes randomly. Sometimes the music doesn't play, and when it does, the video has been deleted or otherwise removed! Sometimes, the site gets slow as we try to track down audio sources for obscure remixes...
The cobwebs that develop in the innards of a codebase that was never really intended to be shipped to production are likely familiar to us engineers. We're all too familiar with technical debt, and soundtrack.io is no exception. We've never intended to make money from soundtrack, and so it's simply been a side project with a small number of contributors who participate for one reason — because we love music. The work that's gone into soundtrack has inspired an entire host of other projects, some that've gone on to become funded and successful companies.
In fact, one of those projects is the very platform you're reading this post on. The foundations of soundtrack made their way into a new framework we've affectionately named Maki, a hand-rolled architecture for crafting applications faster than ever before. We have lofty goals for Maki, and soundtrack.io is our first major application that uses the Maki infrastructure design.
We need help, though. Specifically, we're looking for people with experience with technologies like React and RethinkDB, or knowledge on the architecture of distributed systems, to help build out the next layer that will let us take soundtrack.io to the next level. We are and always will be open source, and have some lofty aspirations about the future of the music industry and application infrastructure alike. If you're interested in helping, make sure to join our Slack and our GitHub repository.
We've got a lot of updates to soundtrack.io to share in the coming weeks. Make sure to hang around, and as always, submit feedback if you're feeling constructive.
‡ in our experience, a platform being unwelcoming to developers is an extremely strong indicator to the eventual failure of that platform.