If you hadn’t guessed it already, I really, really love WordPress plugins. I love writing them, using them, reviewing them, and everything else involved with plugins. There is just something about them that really excites me; I always love writing new plugins. I’d like to explore a few of the reasons why I have so much passion for plugins.
The very first time I wrote a plugin, which was the first iteration of Font Uploader, I felt as though I was high on some really powerful drug. When I activated my first plugin and realized it worked, it was practically euphoria. I remember almost literally jumping out of my chair in excitement. It was amazing!
My development skills and understanding of how the plugin system works has grown tremendously since my first plugin, but I still get a deep sense of satisfaction every time I activate a new plugin, even the simple ones.
Over the last three years—the time frame that I’ve been building plugins—I’ve come to a realization: there is no limit to the kinds of plugins that can be built or the types of tasks you can achieve with plugins.
Some people will disagree with me, but in my mind there is a definite limit to the variations you can use to build themes. Every theme (or nearly) starts with the essentials:
- blog page
- single post / page views
The exact layout and appearance of these elements can change of course, but these elements will always be used in much the same way (with a few exceptions), which means that nearly every theme shares a large percentage of what makes it up with all other themes. This isn’t to say that the designs of the themes aren’t unique, but what the theme accomplishes in terms of functionality is not unique at all. Due to this, there is a defined limit to the different themes you can build, at least until you start repeating yourself.
Note: I’m purposely leaving app themes out of this discussion.
Plugins do not have this limitation, not even remotely. There is no limit whatsoever on the kinds of plugins that one can build (except for limits imposed by the WordPress platform). A plugin can do anything, anything at all.
I believe the fact that there are over 30,000 plugins in the WordPress.org repository is testament to this nature that plugins possess.
Why do I bring up this limitation of themes and this lack of limitation with plugins? It’s because of passion.
Creative people (and all others) get tired of repetition. If you are in the theme industry, I highly suspect that you have noticed a sense of repetition. It could be in your own work or in the work of your peers.
I see repetition in the plugin world every day: ever noticed how many social plugins there are?
Both industries have repetition, but it is much easier to avoid when writing plugins, simply because there isn’t an inherent limit on plugins.
Not only can plugins be built for just about every task under the sun, plugins can be written for other plugins that already do something. Today, for example, I wrote a plugin to extend the bbPress plugin. Plugins within plugins!
I’ve written a lot of plugins. Several of the plugins are very large and require nearly constant maintenance; when you (at least for me) work on the same plugin for a long time, you eventually get really tired of it, no matter how much you love the code or idea behind it.
By writing small one-off plugins every week or so, I keep myself from getting burned out by working on the same project for days, weeks, even years. I don’t quit the large plugins, I just take short breaks from them.
Jason Schuller put this really well in his recent article:
Maintain what you’ve created while it makes sense, but create things you are passionate about in order to grow and be happy.
Having an infinite number of possibilities for small one-off plugins makes me really, really happy. I was on the train to Chicago today (still am at the time of writing this), and I was able to whip up a quick add-on plugin for bbPress that lets users mark their replies as private so that only themselves and admins can see the reply content.
I love plugins because there are no restraints on what a plugin must do. A plugin could be 3 lines of code or 300,000 lines of code. The only requirement (and yes, I mean the only requirement) for a plugin is that it have the header comments that makes WordPress recognize it as a plugin.
After having written 100+ plugins, I still don’t feel as though I’m even close to running out of possible plugins to write. Even with 30,000+ free plugins available, there are always more options.