One of the very first side projects I ever developed was an elaborate system for aggregating and displaying RSS feeds. I built a whole network of surprisingly successful sites with that setup over the years and several of them are still operational to this day.
Of course, new technology makes old obsolete and thanks to the power of WordPress and the WP RSS Aggregator plugin you can now build in a few hours what took me much, much longer to create by hand.
Mark Zahra, from developer RebelCode, answered my questions about the origins of the company and WP RSS Aggregator. We also talk about its development challenges (with a guest appearance from Mark’s co-worker), the plugin’s revenue model and the company’s approach to marketing.
This clocks in as one of the longer interviews on the site so I want to thank Mark for taking the time to answer these questions so thoroughly.
Let’s start with a little background on RebelCode. How did the company start and what all do you do related to WordPress?
Everything started back in November 2010 with the launch of the WP Mayor blog. At this time it was Jean Galea who ran the site and produced the content, and over the years he grew it into the invaluable resource it is today.
2012 then saw the public release of the first plugin, WP RSS Aggregator. This was once again Jean’s work. As the plugin grew it eventually led to the team growing to include two PHP developers, Anton and Miguel, who are still with us today, myself as a content writer and support engineer (later taking on the role of Project Manager), as well as other support engineers.
In late 2015 we began looking into a bookings solution for the Easy Digital Downloads plugin. We needed something for ourselves and saw there was nothing available, so we took the opportunity to build something small ourselves. This eventually led to EDD Bookings being sold on the EDD marketplace, and once that was closed down late last year, we took over full responsibility for its development, support and sales, and decided to re-write the plugin from scratch. It’s now close to release.
What inspired the creation of WP RSS Aggregator initially?
It began as a personal project for Jean to be used on his own site. After putting it to use he received a number of requests to grab a copy of the plugin, so he decided to offer it as a free plugin on the WordPress plugin repo. As feature requests came in month after month, it was decided to start developing premium add-ons in order to support its growth.
What are some regular challenges you experience building the plugin that might be interesting to other WordPress plugin developers?
Since this question is aimed at other WordPress plugin developers and I’m not a developer by trade, I had our lead developer Anton take a crack at this one:
“In order to make the modules of the plugin portable and interoperable, we often have to create abstractions, such as standard interfaces, that are not available in WordPress. Furthermore, due to the often legacy approach of WordPress, it is very hard to write some abstractions, because not all standards that make sense in general can normalize parameters into a format usable by WordPress. One such example is the DBAL that we have written with much diligence and consideration. This format allows querying for data by supplying an arbitrary tree of logical expressions, such as an equals expression to indicate `==` comparison. In theory, it should be possible to query for posts using various conditions, including comparison of post meta and taxonomy fields. However, an arbitrary condition tree cannot be cleanly converted to conditions used by `WP_Query`, `WP_Meta_Query`, and the `tax_query` section – because they are separate, and it is impossible to determine the correct comparison method in some cases.
“Another challenge that we have to frequently address is elimination of global variable usage. We take IoC very seriously, and make it a requirement to inject all dependencies into consumer code – whenever possible. This also requires standard interfaces. An example of this is how we avoid using `add_filter()`/`add_action()` global functions by using an adapter implementation of the PSR-14 standard. This implementation provides encapsulation and abstraction of the event mechanism, wrapping around it, and even providing some features that do not originally exist in the WordPress event implementation – such as prevention of further propagation of the event. Another problem that this effectively solves is the necessity of explicitly specifying the number of args to the event handlers – the 4th parameter to `add_action()`. All events handlers thus receive only one parameter – the `EventInterface` instance, which automatically allows the consumer to modify *any* data passed in the event. Needless to say, this is a much more flexible and portable approach.
“All standards are PHP platform independent, require only PHP 5.3, and are available to all those wishing to consume or provide compatible implementations. This allows developers to write portable modules that can work on many systems, including but not limited to WordPress. Coupled with our extensive DI container usage, it creates the possibility of writing standards-compliant extensions that can alter almost anything in the behaviour of the software without modifying that software’s code.
“In our approach, we are in solidarity with companies like Yoast, who push the boundaries of WordPress development. Our developers adhere to strict standards, and sometimes work in collaboration with PHP FIG, as part of a work group, or by providing complementary standards to extend the interoperability of all components. We hope that our example will inspire other developers and make software more flexible, maintainable, and interoperable than ever before.”
You guys talk a lot on WP Mayor and elsewhere about the quality of your support. Can you summarize your position on how important support is to a growing WordPress plugin business?
Instrumental. You can offer the best product on the market, but if your customer support isn’t up to scratch and you’re not treating your customers well, they’re either not going to come back next time or just leave without purchasing in the first place (apart from the negative online reviews). Often times your product is a critical part of someone’s website, so being able to find help when it’s needed is vital.
As WP RSS Aggregator grew into a mature plugin we realised that we needed to make sure we’re supporting this growth by offering our customers top notch support. We put a lot of time and effort into growing our documentation and enhancing our email support system, even introducing live chat support on our website. We’re now working on even more improvements to come in the next few weeks.
If you are aiming to start with one plugin and grow it into a multi-plugin business, having a support system and guidelines in place would make the process of setting it up for the new projects a lot smoother, both for you and for your customers.
What are some of the best ways you’ve found to help market WP RSS Aggregator? On the flip side of that, what have been some ineffective marketing strategies you’ve tried that have failed?
Content marketing has been important for us. Resources such as WP Mayor allow us to create tutorials on how to use WP RSS Aggregator for various use-cases and reach a large audience. For instance, just through WP Mayor we know we have over 32k Twitter followers that we can reach out to, apart from the email subscribers and other social media channels. Even the oldest of the posts and tutorials we are featured on still bring in traffic till today, so content marketing and showing how the plugins can solve certain problems have proven to be a good marketing strategy.
Seeing the plugin used on some interesting sites such as WP Clipboard, and using it ourselves to build demonstration websites such as WP News Desk and Crypto Headlines, allows us to show first-hand how powerful it is. Those sites bring in customers by themselves as they would want to create something similar for their own niches (or those same ones).
As for failures, there haven’t been too many just because we weren’t too adventurous. We did try Google Adsense for a while. In the end we were making enough revenue to cover our expenses, so we ended it. For those in small niches like ours, I’d advise against this idea.
WP RSS Aggregator is using the add-on model for earning revenue. Why did you settle on that approach and how do you determine what add-ons to develop next?
The freemium model, which means having a free version with premium add-ons, allowed us to maintain the development and support of the plugin while keeping the exposure that comes with it being on the WordPress plugin repo.
As for add-ons, at the moment we don’t have plans in place to develop any new ones, however, there are improvements that are being discussed. In the past we determined which add-ons to develop based on customer feedback. As we learnt about our users, what they needed, and the challenges they faced, we did our research and found the best approach possible, eventually expanding on each idea to implement new features and enhance existing ones.
Along those lines, which add-ons have proven to be the most successful and why do you think they performed so well?
Feed to Post is our best performing add-on, and for good reason – it’s the most powerful one. It allows anyone to take an RSS feed and import its feed items as WordPress posts or any other custom post type. This gives the user a lot of flexibility with regards to which content to import, how to import it, and most importantly how to display it. The user is able to use their theme, a page builder, or their own dev skills to display the content as needed. This is all down to the various options it offers and the other add-ons that integrate with it (Keyword Filtering, Full Text RSS Feeds, SpinnerChief, and WordAi).
It can be used for anything from a personal site to gather one’s articles from across the web to websites about cryptocurrency news, you know, given all the hype around that right now. Using it with email plugins, for example, even allows you to automate newsletters with content of your choice, and you can even create a mobile app to share the content from your site. It has been allowing many website owners to automate certain parts of their personal and business sites. This range of use-cases and its wide array of features are definitely the reasons behind its success.
What’s next for RebelCode and WP RSS Aggregator?
RebelCode is growing its repertoire with the rewrite of EDD Bookings, a bookings add-on for the Easy Digital Downloads plugin. We are over a year into its development and getting closer to release. Given that this was all done with a team of two full-time developers and three part-time hires for a few weeks each (UI/UX designer and JS developers), it’s been no easy task. There are big plans to continue developing this plugin and to grow it into a more complete bookings solution for WordPress over the coming years.
WP RSS Aggregator is continuing to be supported and developed throughout the year. We keep seeing new use-cases and ideas for niches that it can be used for, so it’s very satisfying for us to see it grow and continue to be used in so many different ways.
On both fronts, the future is bright. As a team we’re very much looking forward to an exciting 2018!