In a recent episode of Apply Filters, Pippin and Brad were speaking with Frankie Jarrett and Japh Thomson, developers from X-Team and they were discussing their latest project, Stream which, up until now, I was unaware of.
I have worked with activity logging plugins before, but they usually target a specific set of actions (such as logins), or aren’t too well-thought out, or are really cluttered.
Stream is a fresh and exciting new plugin in this arena. It tracks everything that happens on your WordPress site and records it. This can be useful for many reasons, the main one in my opinion being that you can troubleshoot how issues arise, particularly on client’s sites.
For example, (and this may be very familiar to other WordPress developers), you may get an email from a client saying that something has gone wrong with their site and they don’t know happened. They’re probably being truthful in that, either they did something and aren’t aware that it broke something, or another user on their site did something, malicious or benign, that caused the problem.
Nonetheless, you’re now faced with the task of trying to figure out what might be causing the problem. That could include a bit of Q&A with the client to establish what was done recently, what plugins might have been installed, and what they may have been trying to change lately. Then it might require looking at the site and using your expertise to interpret what you’re seeing with what might be causing it.
This is all well and good, and for good developers, it should be enough to solve the issue, but a lot of this trouble can be bypassed with the help of Stream. As I alluded to, Stream logs everything that happens on your site, whether by a logged-in user or by a plugin, so at a quick glance, you can see exactly what has changed recently (or further into the past if the problem has existed for a while). Here’s a rundown of the kinds of things that Stream tracks:
- Custom Post Types
- Custom Taxonomies
- Custom Backgrounds
- Custom Headers
- Media Library
- Theme Editor
- WordPress Core Updates
So, everything then!
Now that you know all the useful information that it can track, you might want to know how it stores and presents that information. Luckily, the UI is gorgeous: one of the best I’ve seen.
Stream provides both a dashboard widget for a quick glance at what’s been happening recently, and its own admin screen, where you can dig in a little deeper. In the admin screen, you have the ability to filter by time, user, and the category, or specific action performed. In this manner, you can quickly see what’s been happening during a particular timeframe, by a particular user, or who’s been taking specific actions, like modifying widgets, or creating deleting pages.
In the plugin’s settings, there’s a few useful tools, like the ability to exclude certain items from being recorded. For instance, I may want to ignore everything that my user account does (because I know me and I trust what I do). Or you may want to ignore information that doesn’t matter to you, like logins and logouts.
Another handy feature is the ability to restrict how long Stream keeps its data for. The default setting is 90 days, which is perfect in my opinion: long enough to keep a record of potentially relevant information, but not too long that you’ll have massive database bloat by keeping unnecessary information around.
Stream Plugin Extensions
This extension allows you to go through all of your Stream records and delete ones that are not important, either individually, or in bulk.
If you need to export your data to a CSV, JSON or XML file, you’re in luck. Just narrow down which dates, authors, connectors, contexts or actions you want data from, or go nuts and export everything!
You know that pesky user who keeps messing around with your widgets? With this extension, you can set up extremely customizable rules that will send you a notification when something specific occurs on your site. Better yet, you can get the notifications by email, or as a push notification to your smartphone (Android and iOS supported, through the free Pushover application).
Create responsive and interactive reports that let you analyze your data in an easy-to-read format. Great for seeing who’s been writing the most, or who’s been responding to comments.
This extension joins Stream with the popular e-commerce platform, WooCommerce, enabling you to track all activity related to orders, coupons, products or settings.
I think that the extensions are really reasonably priced: for 1 site, you get all of the extensions for just $5, and if you’re a developer, you can have up to 25 sites for just $49.
It’s nice to know that the plugin has been developed with the best in coding standards. The developers at X-Team are extremely competent, and Pippin mentioned in the Apply Filters episode that he had tried it on a larger site, and it had zero impact on performance. And so long as plugins and themes are using the right hooks and filters to make changes to your site, Stream can record everything that they do, without a performance hit. Awesome!