PYRO Music: Redesign, Web and Mobile Development

JetRuby Agency LTD
  • Score Awaiting client review
  • Date Published
  • Reading Time 4-Minute Read

– Specifics of the Chinese IT
– Code refactoring and infrastructure optimization
– All-encompassing redesign
– Cost-effectiveness and performance

Case Study: PYRO Music

A platform combining some of the best features from the world’s leading music streaming services, PYRO Music is born to give a generation of Chinese not only access to the biggest record labels and DJs around the world, but also enable you to change your listening experience, create and share your own style of Electronic Dance Music. With PYRO Music, you can discover new music, in HQ formats, and shape your sound to share with your friends and followers.


Specifics and uniqueness of the Chinese IT industry – from the Great Firewall to the very mentality of the target audience.

Major code refactoring and infrastructure optimization. We had to improve the overall performance of the platform and make it equally accessible to all Chinese users.

All-encompassing redesign including PYRO Music website, mobile applications, and the admin panel.

Find the right balance between cost-effectiveness and performance of the available services to use. 

On the Way to the Solution

It’s no revelation that the best way to get an idea about certain things is to experience them yourself. Following this point, our team visited China to see all the technicalities from within.

In a nutshell, the knowledge we gained and the practices we learned during the little time spent in this magnificent Asian country have been truly invaluable. There is no exaggeration saying that neither dedicated forums nor even hundreds of google translated manuals could have given us the full picture of how specific and unique the Chinese IT industry is. However much information the Internet can offer you about The Golden Shield a.k.a. The Great Firewall of China, we can assure you that it’s just a tip of the iceberg. There is a lot more to consider when developing a project meant for the Chinese audience. For example, there are some issues with routing within China. Overall, we had an amazing cultural experience and were able to meet and spend time with lots of interesting people.

Solution Itself

Upon arriving back home, we got down to the full code refactoring of PYRO Music. Luckily, previous developers left quite informative how-tos that gave us better insights into some technical aspects of the project. At the end of the day, we managed to greatly simplify the code making it simpler, better structured and easier to build new functionality on top of it.

After that, we proceeded to implement more drastic improvements. Here is a quick list:

  • We moved PYRO DNS to, i.e. simplified DNS resolving for all the users within China;
  • The project infrastructure was completely assembled  on Aliyun;
  • Solr full-text search engine was replaced with Elasticsearch;
  • Caching was properly configured so there are no more stutters when browsing the website;
  • Pjax was dropped in favor of using Turbolinks. The interface is fast as ever!
  • Finally, we made a complete redesign of PYRO services (its website, and mobile applications) and built the admin panel from the scratch.
  • We’ve implemented monetization via China-based services: WeChat Pay and AliPay.
  • Successfully survived high load when PYRO Music conducted PYRO Top100 China DJs event last August.


The improvements we made has brought PYRO a couple of big steps closer to becoming a consummate global-scale music platform, leaving its Chinese competitors far behind. Further, with all its uniqueness and scale, the project has had a great impact on our team as well. Based on the knowledge gained both in China and throughout the development, we were able to refine our working approaches to increase the quality of deliverables.

Technologies Used

  • Ruby 2.5.0;
  • Ruby on Rails 5.2.0;
  • Haml / BEM / Sass;
  • Turbolinks;
  • Elasticsearch and PostgreSQL;
  • Leaflet with BaiduMaps;
  • Swift / Kotlin.