Content Management Platform

ON AIR
Industry:
Media Distribution
Location:
United States
Collaboration
2014-Ongoing

Customer

We got to know the owner of the project in 2014. He is a digital marketing and SEO specialist with a solid technical background. He owns a digital marketing analytics agency and always has many interesting ideas and projects to work on.

The project in question - a platform for managing Christian podcasts and radio stations - was his main child at the moment. Already launched to the public, it was raw and needed upgrades and improvements.

Challenge

The platform was conceived as a place where the admin could set up accounts of various content providers. A content provider could be a podcaster or a radio station - all of those would go with a Christian background and subjects.

Content providers did not have to manage their content on the system. They could do that on their favorite websites - YouTube, Vimeo, or any other video/audio streaming platform. We were to let the platform grab the updates from the third parties via RSS feeds or an API.

This way, the idea was to collect the data from multiple services, store them in one place, and serve the user. Then the users could subscribe to their favorite authors, be notified about updates, get recommendations, and use search to find more information about the subject they were interested in.

This way, the main challenges lay in the admin area (how to manage podcasters and their feeds), scheduled background jobs (how to upload data from various feeds on time), and in the user area - users needed good experience watching and listening to the authors.

Apart from that, the customer wanted to manage SEO-related content, customize the whole platform, and use it as a white-label solution for other tenants.

For the customer, it was not just a podcast streaming platform. Rather, he wanted it to be a place where he could aggregate and produce content of various kinds and serve it to end users in multiple ways.

Solution

After working on these business requirements, we produced a significant number of features, all of which are hard to remember. Let’s just mention some of the aspects we released.

Key App Features

Admin Area

The set of podcasts and radio stations was managed by the admin along with some other content.

The admin area got tools for creating and editing podcasts. These podcasts were supposed to be updated automatically several times a day - for that, we implemented a special scheduler that would run in the background and perform a thought-through daily routine.

Background Scheduler

It is worth saying a few words about the background scheduler separately. It was one of the core features of the platform - like a solid foundation that made the whole process move and work together.

Every day the scheduler would pull data from various sources, get them through certain procedures, restructure the sitemap, and form a new reality in up-to-date content.

Automatic Data Upload

Most of the content was pulled from third-party services. Before being presented to end users, they had to go through data normalization and conversion, including speech recognition.

Podcast episodes would go through speech-to-text processing - and then the text would be saved in the same episode along with the audio track. After this update, users were not only able to listen to podcasts, but also search for specific keywords or sentences in the episodes.

Search and Sorting Engine

We implemented a non-trivial search engine allowing the users to find podcasts and episodes by content and sort them by relevance.

White-Labeling and Customization

The customer wanted the project to be customizable so that he could set up copies of it for his clients.

The admin tools got the ability to customize the website appearance, static pages, logos, stylesheets, etc. - all that was required for a new tenant setup. A few copies of the platform were actually launched under different names - and of course with different content.

Tools for SEO Management

Since the customer’s main specialization was SEO and digital marketing, he needed ways to manage the structure of the public part of the platform.

The admin area got tools for SEO management where one could take care of the meta tags and keywords. It was also possible to edit public pages, URLs, and everything needed for a good SEO.

Part of the optimization was done for Google bots, so that platform pages would appear in Google search results as quickly as possible. Also, the website regenerated the sitemap based on the new content multiple times per day.

WordPress Integration

SEO specialists often have good knowledge of WordPress. WordPress is one of their favorite tools because it gives them all the possibilities they need to promote content.

So, we set up a WordPress instance and made it seamlessly integrated with the custom part of the platform.

Some of the routes would be processed by WordPress, the others would go to the custom Rails backend. The admin could manage the main blog in WordPress, but the rest of the content was stored in the Postgres database.

End User Experience and Interface

The end users also needed special care. The public part of the website had a handy responsive interface for the users with social network logins, audio and video players, recommendations, subscriptions, favorite content, and other useful features.

Users could easily browse the website, consume content, and save certain pages for later.

Technical Side of the Project

Apart from the business requirements, there was the technical side to the project. We inherited the original stack of technologies which we upgraded a bit and supported over the years.

Currently, the technologies are:

  • Ruby on Rails
  • PostgreSQL relational database
  • Redis / Resque / Resque Scheduler - the most stable background processor
  • Angular.js which was converted into React.js since Angular 1.1 became outdated and went out of the market
  • Heavily customized ActiveAdmin for the admin area
  • Google Cloud Storage and other Google Cloud tools
  • OAuth 2.0 and Devise for user login
  • Selenium / Capybara for automated acceptance testing
  • Dokku for deployment

The stack of technologies is constantly supported and upgraded to match the software market state.

Results

All the challenges our team faced in the process of designing the project were successfully solved: we took charge of the project while it was raw, upgraded it, and drove it to the point where it became a multi-tenant content management platform.

The content management platform has been in production for more than a decade giving people access to favorite Christian materials.

The owner returned with several other projects that we were happy to design and release to the world.

Services Provided

Technologies Used

  • Ruby on Rails
  • ActiveAdmin
  • RSpec / Capybara / Selenium
  • PostgreSQL
  • Prerender.io
  • Redis
  • Resque and Resque Scheduler
  • HTML / SASS
  • Angular.js and React.js
  • Docker / Dokku
  • DigitalOcean