How we built a complete platform connecting indie musicians with the their fans
Songback is a platform that connects indie music artists with their fans. The platform enables artists to upload their music videos, sell digital tracks (songs and albums), and even live stream events. Fans can follow artists, stay up to date with the latest news and even support their artists with donations.
The client approached me with a simple brief outlining the project idea and major functionality for the Minimum Viable Product (MVP). We spent a week refining the concept together, after which I prepared a functional specification. The spec defined the scope of the project and linked back functionality with the USP (unique selling propositions) of the platform.
Then we set out to define the technology strategy. The product involves on-demand and live video streaming, real-time interaction between musicians and fans, and a two-sided payments/payouts platform.
We decided to use an online video platform provider for the streaming video functionality: video upload, transcoding into multiple bitrates, adaptive multibitrate streaming compatible accross desktop and mobile devices, as well as low-latency live streaming compatible accross desktop and mobile devices on both input (for example, streaming from a mobile phone) and output (viewing on any device) side.
Based on the projected platform growth, taking into account both optimistic and pessimistic estimates, we calculated the storage, bandwidth and compute resource requirements, which helped us establish a cost structure. The final online video platform provider pick was based on the combination of capabilities, ease of integration, platform stability and budget.
For the payment providers, we had a requirement to be able not only to receive payments from fans, but also to pay out to musicians in speedy, transparent and reliable manner. Additionally, we wanted to be able to minimize risk of frauds and chargebacks, and make it easy for musicians and fans to solve any potential disputes.
After setting on the 3rd-party services and cloud providers we would use, I designed a software architecture incorporating the selected providers and supporting the envisioned functionality. As the MVP is a first step on a journey to successful product, subsequent changes, extensions and upgrades are expected, so the architecture design took maintainability and future extensibility into account.
Based on this, I wrote a detailed technical specification. As this was an agile project, we took the technical specification as a starting point, and it was ammended and changed during the project when new opportunities or challenges, both technical and business, were identified.
Based on relative priority of features and the detailed technical specification, I then created a development roadmap and task schedule.
We followed an agile development methodology, loosely based on Kanban, with weekly status updates and work-in-progress (WIP) deploys to test and evaluate functionality built thus far. We took advantage of continuous integration (CI), automated tests and automated deploy procedure for quick turnaround.
This increased visibility the client had into the project development status, raising confidence and allowing faster feedback from the client and end users.
Several people worked on the project in various roles, from UI designers to frontend and backend developers. I worked on video and payments platform integrations, as well as serving as the technical lead on the project. The development took about a year, including multiple changes and revisions based on initial user feedback.
The implementation uses infrastructure provided by Amazon Web Services (managed PostgreSQL and ElasticSearch databases, EC2 computing resources, S3 file storage and SES transactional email service) and DaCast for video-on-demand (VOD) and live streaming (including low-latency streaming). Stripe Connect is used to enable artists to sell digital tracks and access to live streams, and to receive donations. A host of other services is used to provide functionality such as real-time chat during live streams, application health monitoring and analytics.
Video integration included heavy customization of 3rd-party video players, including from-scratch development of a “mini-player” that allows users to seamlessly explore the site without stopping listening to music videos, playlists or live streams.
The platform provides a unique combination of video service, digital sales and social interaction, helping artists and fans alike. I am happy I was involved with the project and can’t wait to see the impact it makes and the improvement it brings to the indie music artist marketplaces!