May 05, 2014

What Is a WordPress Gallery Platform?

With last week’s release of MaxGalleria 2.0, we’ve been asked quite a bit about what we mean in terms of it being a “gallery platform”. It’s an important question, especially because we’re sort of breaking new ground for WordPress gallery plugins, so allow me to explain.

What Is a Platform?

Let’s first start by taking the word “gallery” out of the equation so we can focus on just the word “platform”. When it comes to software, a platform is quite simply something you can build on top of; it’s the core piece from which everything derives. Some common examples include the .NET Framework, the Java Runtime, an operating system, a database, and even WordPress itself.

They key part about a platform is that it’s open, usually with some sort of API, allowing anyone to extend the platform for their own needs. Those needs might simply be intercepting a call to the database or something larger, like an entire app that provides additional functionality. Compare this with an application, which is typically closed (no API), thus creating self-contained features that you simply use to accomplish various tasks.

WordPress as a Platform

Way back when WordPress 3.0 was released with full support for custom post types, it instantly changed from a blogging platform into an application platform. That’s an important distinction because custom post types allow developers to use WordPress as the foundation to build just about anything they can think of, blogging related or not. They don’t have to worry about all the CMS, publish-y stuff because WordPress already takes care of it. Developers can focus on extending WordPress however they see fit.

Platforms On Top of Platforms

The thing about a platform is that it breeds new platforms being created on top of itself. For example, there are two well-known, highly successful platforms built on top of WordPress: WooCommerce and Gravity Forms.

When WooCommerce launched, it quickly set the bar for what was possible with WordPress ecommerce plugins. They released a free core plugin that allowed for basic ecommerce functionality, then got other developers involved to help create a slew of paid extensions, which now number over 200.

Gravity Forms is the standard-bearer with regard to WordPress form plugins, and while there isn’t anything free about it, it also has a core plugin that provides the base from which all their addons are built.

WooCommerce and Gravity Forms can do this because they both provide an extensive set of actions and filters (essentially, their API) that developers can hook into to do just about anything they need.  WordPress provides loads of actions and filters to extend its platform, then WooCommerce and Gravity Forms provide their own hooks, thus, platforms are created on top of a platform.

Back to Our Gallery Platform

This model has proven to be a good one. Gravity Forms does extremely well and WooCommerce completely changed WooThemes’ business so much that it now accounts for 80% of their business.

And this is the model MaxGalleria is following. There is a free core plugin that handles the standard, basic functionality you’d expect from a gallery plugin, while at the same time providing many actions and filters for developers (including ourselves) to create addons that provide extra features and functionality. This approach allows us to keep the free core plugin lean while at the same time providing additional value through paid addons.

For instance, we heard from many people that MaxGalleria must have albums before it can be considered a serious alternative to the NextGEN gallery plugin, but at the same time, we had an equal number of people tell us that albums weren’t that useful. This split is the reason why albums is a separate addon from the core instead of bloating the core with functionality many people don’t want.

Over 100 Hooks and Counting

And speaking of hooks, there are well over 100 actions and filters in the MaxGalleria core plugin that allowed us to build addons for it. One example is the maxgalleria_video_attachment_post_meta action, which saves post meta for an attachment when a video is added to a gallery. This is used by the Vimeo addon to save various bits of data about a Vimeo video when its added to a video gallery.

Another example is the maxgalleria_video_embed_code, which is a filter that returns the embed code for a video, usually in the form of an <iframe>, <object>, or <embed> element, depending on the video provider. This is another hook that the Vimeo addon utilizes.

Our Challenge

We understand the challenge we face. While this model has been successful for WordPress ecommerce platforms (WooCommerce, Easy Digital Downloads, Shopp), we’re the first to walk this path for WordPress galleries.

We know we have to reset people’s expectations for managing galleries in WordPress, especially all those frustrated NextGEN users, but we’re confident we’ve laid down a solid foundation to build on.