Player profile trophy list.

Reviewing 2021 – The Year of REST

Last year was another stellar year for Tournamatch development. We paid off quite a bit of technical debt and finished building asynchronous user interfaces for just about every front end user action we support. Asynchronous user interfaces are quick, sexy, mobile friendly, and modern. They’re what allows a page to react to your button clicks and data without page reloads and navigation. For all the changes we made to front facing pages, the majority of the work necessary required building out a RESTful back end. A REST API endpoint now exists for every component of the software you may interact with. Adding REST API endpoints was an important step required for making the asynchronous usability changes, and it will pay huge dividends moving forward into 2022 and beyond.

In all, we published 15 updates in 2021. Besides making Tournamatch more RESTful, those updates added support for PHP 8, team social icons, team social fields, tournament bracket headers, 10 new shortcodes, added the ability to reward trophies, updated all list pages to be asynchronous, updated the entire backend to appear consistent with WordPress, and eliminated a lot of technical debt. We didn’t hit our goal of migrating to Custom Post Types (our goal from 2020 for 2021); however, that was a result of pivoting to other priorities.

For 2022, I expect we will continue to add your most requested new features. There are big improvements to the challenges system already in progress as well as work on Battle Royale tournaments and Best of X match support. In addition to those new features, my mission for Tournamatch this year is to focus on reducing the templating/skinning work necessary once you download the plugin. Tournamatch works out of the box well with most BootStrap templates; however, you have some CSS work to do if you venture outside of that scope. I aim to reduce or eliminate that as much as possible.

Of course, our title has a duel meaning. We didn’t just focus on making Tournamatch more RESTful this year – we also took time off for personal rest and recovery in the 4th quarter. A change in office location, preparation for a new child, and the stresses of life necessitated a break. I’m happy to share that my wife and I added another member to the Tournamatch family on December 29th. She is a happy, healthy, beautiful little girl named Abigail.

Thank you for your support in 2021, get some REST, and have a great day.

Version 3.26 Released

Version 3.26 is now available.


  • Bug fixes
  • Multisite

Bug fixes

We resolved most of the outstanding bugs in the software in this release. These included a mix of very minor issues affecting few users, and one major issue affecting anyone using backup utilities such as All in One. All tables have been renamed to use the correct WordPress database prefix.


Tournamatch should now work as expected with multisite installations.

Version 3.25 Released

Version 3.25 is now available.


  • New table shortcodes
  • Better competitor match history
  • Team Roster table improvements

New table shortcodes

In this update, we introduced many new table shortcodes. There is now a shortcode for the player list table, teams list table, player teams table, player and team ladder competitions, player and team tournament competitions, match list, challenge list, ladder standings, team roster, player and team match history, ladder match history, and tournament match history. I expect these shortcodes will get additional attributes to control the display in a future update.

Better competitor match history

The competitor match history table now displays the full match history instead of just the last 10. This table is searchable, paginated, and may be sorted by various columns. These changes apply to both player and team match history.

Team Roster table improvements

The team roster table has additional asynchronous behavior. You may make changes to membership levels drop players, add players, etc. without waiting for the page to reload.

Version 3.24 Released

Version 3.24 is now available.


  • Admin styling update
  • Bug fixes

Admin styling update

Each Tournamatch backend page has been updated to remove the custom styling. Those pages now use the standard default backend appearance. In addition, each list table now supports searching, pagination, filtering, and ordering. The backend menus have also been updated to be more consistent with other WordPress backend resources.

Bug fixes

This update contains numerous bug fixes including: resolving the second competitor’s avatar in specific scenarios on the match details page, a improved behavior to game thumbnail upload, a bug fix to ladder standings remove, and more.

Version 3.23 Released


  • Asynchronous ladder standings
  • Hall of Fame toggle

Asynchronous Ladder Standings

The ladder standings page is also now asynchronous. It supports server side search, pagination, and ordering. We simplified the display by removing he unranked standings page.

Hall of Fame Toggle

A new option exists to toggle the Hall of Fame/Shame displayed at the top of the ladder standings page.

Version 3.22 Released

Tournamatch version 3.22 is now available.


  • New team custom fields and custom icons
  • Bracket round headers

New team custom fields and custom icons

This release includes two new WordPress filters which may be used to add custom team text fields and custom team social icons. These works identical to the custom player fields and social icons, except for teams. You can find out how to add your own from our online documentation.

Bracket Round Headers

Tournament brackets now include headers in each column to indicate which round the matches belong.

Bracket round headers.

Bracket round headers.

Version 3.21 Released

Tournamatch version 3.21 is now available.


  • New option to permit multiple player teams per ladder
  • Completely revamped email messaging and styling
  • Faster loading list pages
  • Compatible with PHP 8

New option to permit multiple player teams per ladder

We added a new option to allow players to participate on multiple teams per ladder. This setting is disabled by default and can be found in the WordPress Tournamatch Admin -> Settings, under Ladder Match Settings.

Completely revamped email messaging and styling

Tournamatch is not an email styling plugin. We removed the settings to adjust the various colors as well as the custom Tournamatch email templates. Email messages are now plain text. You should instead use an actual email styling and template plugin which will allow you to customize much more than we previously supported, including adding a logo the the message header, adding a footer message, colors, font sizes, and more!

Faster loading list pages

We updated the backend REST API extensively so that now all of our list pages are displayed asynchronously. The result is less code, faster page loads, and future extendibility.

Compatible with PHP 8

Tournamatch has been updated to be compatible with PHP 8. This required renaming a few classes which used reserved keywords. Enjoy!

Version 3.20 Released

Tournamatch version 3.20 is now available.


  • Massive rewrite of the data access layer.
  • Removed several legacy and proprietary classes from our source code

Data Access Layer Rewrite

If there was an award for “Least Sexy Update”, this release would be the Tom Brady of Tournamatch updates (Go Bucs!). Kicking off the major highlights for version 3.20 is a complete rewrite of our data access layer. Tournamatch no longer uses the proprietary MySQLi proprietary adapter classes for database access. Every call has been replaced with the native WordPress database access abstraction.

Why is this relevant? For quite a few reasons, actually. Security is the biggest reason. Every applicable query is now sanitized using the methods vetted by the WordPress community. Using the WordPress database access abstraction also causes Tournamatch queries to show up in debugging and performance analysis plugins. It supports more code features which should reduce code in the software (less is more), has caching mechanisms, and this moves us one step further to supporting multisite setups.

Legacy Code Scrub

To piggy back off of the above change, this release removed several legacy proprietary solutions for things like file uploads, script hooks, and data access. As much as we love to write code, writing proprietary code is generally a bad thing. Using native code that has been vetted by the WordPress means Tournamatch is more secure, easier to extend, and easier to develop moving forward.

Reviewing 2020

The year 2020 was like no other for a lot of us. When I look back, I can’t help but think about the World of Warcraft achievement, What a Long, Strange Trip it’s Been. This is one of my favorite WoW achievements. Each special event has to be completed for an entire year to earn it; so, you not only have to invest a lot of time, but also consistently. This year-long journey of unique challenges could also describe this past year. Whether it was adjusting to a work from home atmosphere, publishing new updates, or working in uncharted development territory; the year was a long consistent grind.

I’m quite pleased with what we were able to accomplish in 2020. We released 16 updates covering: privacy, security, better appearance for BootStrap, many new shortcodes, 6 new widgets, new team management options and tools for admins, new tournament management features, an entirely new player dashboard, completely reworked the match reporting and confirmation screens for consistency, added support for custom player profile and social icon fields, updated FontAwesome to use version 5, updated the database to support MySQL 8, and improved almost ever page with asynchronous behavior. We also hired our first (non-family) employee! And while we didn’t quite get as far as I hoped we would, we kept busy and improved the software significantly.

This year should be exciting for us. I have some ambitious goals again this year for Tournamatch. My primary focus is to replace all of our proprietary database tables with custom post types. The end result is software which may be more easily integrated with other WordPress plugins and the ability to develop new Tournamatch features more quickly. There are quite a bit of indirect advantages of this change – too many to hash out here. Almost all of our work over the last 1.5 years has centered around this ultimate change. I think we’ll get there this year. I sincerely appreciate the patience while we take care of some important backend business.

If I could tweak my achievement for 2020, I’d shorten it to just, “What a Long Trip it’s Been.” And I should emphasize that I am now completely okay with long. This past year has taught me that long is fine. Terrific. I honestly hope for many more long slow-moving years. Time goes by too quick and there isn’t enough time left in the universe for me to spend with Little Tournamatch. Twenty-twenty also marked a tragic year for my family; our second child, Jayden, was born in June and experienced several complications which ultimately led to his passing eight days after birth. Life is a precious gift and much too short.

Thank you for your support in 2020, and take care.

Admins may manually add players to teams.

Version 3.19 Released

Tournamatch version 3.19 is now available.


  • Improved match management
  • Improved security of i18n/i10n translations
  • Added ability for an admin to add players to teams
  • Added ability for admin to add players or teams to tournaments
  • Reduced plugin size

Improved Match Management

Match management for users now requires fewer pages and clicks to save and confirm. In addition, the match report and confirm pages for ladders and tournaments are now identical. Tournaments now also have the ability to rate the opponent, report team match players, report scores, and attach files.

Improved Security for i18n/i10n

All i18n translations have been properly escaped in version 3.19. This security vulnerability is only relevant if you use a Tournamatch language translation file written by another [nefarious] user.

Admin Team Management

This update includes a new ability for admins to manually add players to teams. To do this, you must be logged in as admin and view the team profile page for whichever team you wish to modify. The input box to enter a player name is located below the team roster table.

Admin Tournament Registration

Another new admin feature in this update is the ability for admins to manually add players or teams to an event. This may be done via the backend Tournament Administration screen. Click on the users icon on the line corresponding to the tournament for which you wish to add competitors.

Reduced Plugin Size

One of the primary focuses this year was to remove all third-party source code dependencies. We finally achieved this milestone in version 3.19.0. As a result, the plugin size is approximately 58% smaller than before. This change isn’t just about download size. Removing third party code libraries means less exposure to potential code vulnerabilities in packages not maintained by the WordPress community.