Year in WP Creates a Personalized Review of WordPress Contributions in 2016

Year In WP is a new site by Jesper van Engelen that creates a personalized review of a user’s contributions to WordPress in 2016. Entering the WordPress.org username of a plugin or theme author or a WordPress core contributor into the field generates a list of statistics that includes:

Profile information

Number of times their plugins and themes were downloaded

Most downloaded plugins and themes

Average number of downloads per week

Plugin and theme review rating average

Percentage of five-star ratings

A selection of five-star reviews

Number of commits, changes, and comments to WordPress core

Number of WordPress releases contributed to

Engelen got the idea to create the site in 2014 after Spotify launched its ‘Year in Music‘ that highlighted trends based on what 50 million users listened too.

“I’d been active in the WordPress plugin market for about four years at that point, and I figured it would be really cool to get some year-over-year insight into your WordPress plugins,” Engelen said.

“Having become a partner at Admin Columns (a freemium WordPress plugin) in 2014, I found out that I really liked analyzing statistics of downloads, sales and other data, and that, properly grouped and reported, they could have a pretty big influence on decision-making from a business perspective.”

Engelen started the site by experimenting with fetching data from WordPress.org through its API that would show the change in the number of downloads to a user’s plugins.

“That is basically what lead to the ‘Your most popular plugins’ overview page,” Engelen said. “Spending some free hours each week on working on the project, more and more ideas of data to include popped up.”

The site displays a lot of data, but it doesn’t include everything. Engelen would like to eventually display sections for contributions to WordPress translations, plugins, themes, core, design, etc.

The Technical Details

The data displayed on Year in WordPress is gathered using the WordPress.org API, subversion, and web scraping. Engelen would have used the WordPress REST API but it was not available at the time, “Fetching the reviews and support topics yielded quite a bit of annoyance, as they’re done by scraping,” he said.

He uses a Python framework to fetch relevant data in parallel. The data is stored in an SQL database, which is accessed by a front-end tool. The front-end of the site features a design that was reused from AdminColumns.com.

“jQuery, combined with Chart.js and Fullpage.js power the interactive portion of Year in WordPress. I’ve also written some simple sentiment analysis code for filtering out the most popular reviews to show for each plugin/theme developer,” Engelen said.

Fun Facts about Year in WordPress

Engelen provided the Tavern with these fun facts related to Year in WordPress:

There’s a Year in Review for about 100,000 users on WordPress.org — or all users who have contributed to a plugin or theme, created a review or a support ticket, or contributed to WordPress core.

The full database takes about 500MB of space.

There were 364,763,308 plugin/theme downloads in 2015, and 434,865,745 in 2016. That’s 19.2% growth!

2016 was the first year where the number of new core Trac tickets shrunk (4,044 in 2014; 4,392 in 2015; 4,028 in 2016)

73% of all plugins received zero reviews in 2016

Year in WordPress 2017 Is Not Guaranteed

Engelen is not making any promises for continued development in 2017 as it’s contingent on his free time. However, the main thing he would like to change is to include a wider spectrum of data.

“When I pitched the idea of Year in WordPress to a core committer and showed the beta version, he said ‘there’s so much more than core itself’ and that stuck with me,” he said.

“The perfect ‘Year in WordPress’ would feature cool statistics about all types of contributions people make to WordPress — whether it’s creating plugins and themes, writing code for core, translating or testing. Furthermore, I’m really looking forward to making use of all of the REST API’s that I can use this time around.”