Catalog and Display Your Favorite Books with Recencio Book Reviews

Recencio Book Reviews

Recencio is a WordPress plugin built specifically for managing book reviews. Avid readers who run their own blogs can use the plugin to quickly and easily build a catalog of reviews right inside their own website.

Kemory Grubb talks about how they got involved with making WordPress plugins, the back story behind Recencio and some of the challenges faced and lessons learned during its development.


Can you tell me a little bit about yourself, your background and how you got involved with making WordPress plugins?

Hello, my name is Kemory Grubb, and I am from Jamaica. I decided I wanted to get familiar with web development after a conversation with my manager at the company I worked for. During our conversation, he casually mentioned how much web development companies in my country were charging to build simple sites for individuals and other companies. The price was quite extraordinary to me, given the quality of the sites they built that I saw. So I got on Google and YouTube for some research on the subject of “web development.”

Through this research I got introduced to Joomla as my first CMS/development platform. So following some online tutorials I was able to install a local development server on my PC and got Joomla up and running. After that, I started getting dozens of errors from just installing a theme. Mind you, I didn’t fully understand what they were saying as I was still new to PHP at that time. I was really off-putting for me, so after more research I found Drupal.

With Drupal, things were friendlier and I was able to get far just by watching some video tutorials and reading articles. So I was building dozen of sites on my PC just to experiment with theming as my main focus.

Long story short… eventually I came across Jeffery Way’s WordPress course on TutsPlus. So I watched and did the code work at the same time. While doing that I realized that everything he was saying clicked and I could keep up as he went along the course. After that I went through some more tutorials and started hanging out in a couple web-dev and WordPress related online forums.

I did some freelance WordPress work here and there. I had the monumental task of transferring my sister’s food blog from Dot Net Nuke to WordPress, with a custom theme and plugin, hosted on a VPS.

What caused you to start building Recencio?

My sister has a relatively popular recipe blog that I handle the development and maintenance for. This involves theme development and any other little functionality the site needs, via simple one file plugins.

One of the harder parts of maintaining the site is keeping the recipe plugin it uses up to date as the developer’s work schedule takes up most of his time. So this involved me submitting multiple pull requests to fix some PHP errors and other things such as adding new features to the plugin’s code base.

So as a means of keeping things agile with my need for immediate fixes and custom work on this plugin I decided to fork that recipe plugin and use my own branch on my sister’s website.

The process of forking that recipe plugin involved me going through each line of code with a fine-toothed comb. The result of this was me realizing that this code base was too messy for me to build on. However, my sister’s website was too important for me to experiment on, as this would be my most complicated plugin yet. So I needed a smaller project to test my skills and ideas out on.

It was at this time that I had a client through my freelancing work that wanted a WordPress site created for her to host her own book reviews. So to get an idea of what other book review sites are doing in terms of design and functionalities I did some research on the “book review” niche.

It was from that research and freelance project that the Recencio book reviews plugin was created.

Recencio Book Reviews Screenshot

In terms of development, what parts of the plugin were the most technically challenging to implement and why?

By far the most challenging aspect of developing this plugin has been wrapping my head around the internationalization aspects of the plugin and the different user controlled options the plugin provides. For a while, RTL languages and the pluralization rules for non-English languages took up most of my development and user support time.

Most of the users of my plugin that have contacted me for support, via the WordPress support forums, are from non-English speaking countries. Most of the support tickets created were for issues such as the auto-pluralization of words in their native language. So I had to implement a system where users could add their own pluralized words per their language, or turn off the auto-pluralization system entirely.

All in all, I think the source of these issues is that I may have provided too many user configurable options to control how the plugin functions on their site.

How are you reaching out to potential users for Recencio to make them aware of the plugin? Have you tried anything in particular that has been successful in generated interest?

Truth be told I haven’t done much outreach in an attempt at increasing awareness of Recencio. It turns out that I was suffering from an undiagnosed case of “Imposter Syndrome”. Even though I kinda knew my code was clean and efficient, I have always had some reticence towards having my code reviewed by my peers.

However, in the coming months I plan to redesign and relaunch Recencio.com in an attempt to present a more professional front for advertising the features and powers of the Recencio plugin.

Recencio Book Reviews Screenshot

Do you have any plans for a premium version of Recencio or is the plan to keep it as only a free plugin?

I have been looking at my install numbers on WordPress.org to gauge if there is enough interest in my plugin to warrant a premium version. So far, I am not certain. There has been some feature requests from users of Recencio, which due to the scale of work needed to implement, has the potential of being a premium feature.

Based on some simple research, the market is there, however for me to fully tap into it would require some serious investment in an advertising campaign. The majority of book reviewers out there are comfortable with what they have now and simply don’t know (or care) about the things they could do to improve their sites/book reviews, e.g. using WordPress and the Recencio book review plugin.

Is there one piece of solid advice you can offer to anyone thinking about making their first WordPress plugin?

I would say knowing how to install, configure and use PHP’s XDebug extension in your IDE of choice.

Knowing how to step-through and debug my code has saved me more times than I can count. I can remember quite distinctly an issue that was very difficult to diagnose and fix until I used XDebug. It involved the way WordPress parses URL parameters in an RTL language such as Hebrew. To fix it I had to step-through and watch how WordPress sees the variables it needs to decide on how to route a HTTP request.

Also, always develop with WP_DEBUG enabled and only enqueue your scripts on pages that need them.

Is there anything coming up for you, or for Recencio in particular, you’d like to talk about?

As things are right now in the WordPress ecosystem, I am in a “wait and see” mode when it comes to full Gutenberg support. The plugin in its current form is compatible with Gutenberg, so all of the custom metaboxes work in deprecated mode that Gutenberg provides. Around 80% of my plugin’s functionality is dependent on the Custom Metabox API, so the need to rewrite the majority of the plugin is not something that I am looking forward to. Plus, I am not a fan of JavaScript development, but I am starting to warm up to it.

Gutenberg aside, I am currently in the process of re-writing most of the widgets in VueJS. The overall plan being to re-write most of the backend and frontend UI in VueJS backed by the WP REST API. I am using this exercise as a means of getting more comfortable with JavaScript development as that is where things seem to be heading with WordPress.