WordPress was originally built for blogging. Eventually it evolved into a content management system. Now, many say its future is an application framework. It’s now quick and easy to assemble rich functionality using structured data, user management, and integrations with other platforms.
There have been many discussions about using WordPress for consumer targeted applications, but little about internal tools for business which begs the question, “is WordPress not a suitable fit”? Or is the topic infrequently discussed? I have my own thoughts about it, but first let’s see if it’s worth building an internal application at all.
Why build a business application at all?
Before considering if WordPress is a good fit we must consider if you need a custom application for your business in the first place. After ten years of working with all shapes and sizes of businesses, I’ve learned that everyone has a unique approach to what they do. Two companies providing the same type of product or service might have commonalities in outcome but their process leading up to the end result is dramatically different.
There is a myriad of existing tools that handle core business tasks, like accounting, project management, and customer relations. The problem is these tools all are often based around a specific, predefined methodology. Rarely (if ever) does that predefined methodology perfectly align with a businesses internal process. So rather than having a tool conform to how a business operates, businesses conform to how the tool operates. This is less than ideal.
Every Monday at 3.7 DESIGNS we have a meeting to set our weekly priorities. We’re old-school so we use Basecamp (ha!) for project management. Basecamp, however, doesn’t support prioritizing of tasks. To compensate for this missing feature we have a Dropbox Paper document to track weekly priorities. This adds unnecessary complexity–we now have to manage multiple tools to essentially figure out the same thing: what do I need to do next?
This isn’t Basecamp’s fault. They can’t add a feature to accommodate a business that operates slightly differently (which is every business). What we really need is a custom tool built around the way we manage projects that integrates with Basecamp. This would save us time, effort, and accuracy. This is just one example. If you consider your internal workflow I’m sure you can find a need for a custom tool for just about every core area of your business.
So if we can agree that there are massive benefits to custom business applications that match internal workflows, the question becomes is WordPress the right tool for the job?
Can you use WordPress as a business application framework?
If I were to think about what components would be necessary for an effective application framework the ones that come to mind are:
- A way to manage access and permissions
- The ability to create and manage structured data
- The ability to communicate with outside APIs and applications
Obviously there are more less-critical features you’d want, but it’s pretty clear WordPress has the necessary capabilities. With an extendable role and permissions system, custom post types, taxonomies and meta data and the REST API (and tools like Zapier) you have everything you need to quickly assemble a rich, custom tool. You have granular control over access, the ability to store, retrieve and manipulate structured data and can integrate with external applications.
So by these standards WordPress certainly could be used as a business application framework. But, should it?
Should you use WordPress as a business application framework?
You might be thinking “There are a lot of actual frameworks that have the same, if not more capabilities.” True, there are plenty of language frameworks that are stripped down, more flexible, and don’t have the “baggage” that WordPress does. Rails, Node, React, and Larvel to name a few. Yes, there are numerous advantages from using a true application framework over an extendable CMS, but there are advantages to the CMS approach as well. Let’s look through them:
You can put together a prototype extremely quickly
I’d wager that most business applications fail not because they didn’t use the trendiest language, but because they provide enough value to be adopted. The time required to get a functioning prototype means less time testing and more time building. With WordPress you have tools like Custom Post Types UI and Advance Custom Fields to setup and display structured data within minutes. The quicker you get people using the application the more time you’ll have to adjust and improve.
WordPress already has an interface
If your application runs off the back end then you can reuse the bundled markup and selectors to mimic the same interface. No sense spending time and money designing your own interface or buying and adapting a template. If you’re using a front end there are tens of thousands of themes to get started with.
You’re already running WordPress
If you’re already using WordPress it could simplify things to keep everything running off a single instance. This could reduce the number of integrations required for some workflows. Managing contact form leads are a good example. Rather than going from Gravity Forms to Salesforce, everything could be managed right within WordPress.
You Can Take Advantage of the WordPress Ecosystem
There are tens of thousands of plugins and products that already interface with WordPress. No need to create a Zapier integration because it already exists. You might find an invoicing plugin that fits your needs perfectly–no need to build that piece of functionality from scratch. Worried about security, backups, etc…? Well you have a whole range of options to choose from.
You’re already familiar with WordPress
If you’re more familiar and faster in WordPress then your chance of developing a useful, working product is significantly higher. I’m not making the argument you should use a hammer to saw a plank in half… obviously WordPress is not the best fit for all situations; however, based on the previous criteria it can be a great fit in many situations.
Real world examples
Our first foray into a custom business application was Project Panorama, a plugin we developed to solve communication struggles with clients regarding project progress. Later, we built a design-strategy tool that let us quickly record our findings during design discovery so they could be presented and approved later.
More recently we’ve built a tool that helps us manage client maintenance plans. We’ve changed what plans we offer over time making it difficult to keep track of what services clients were paying for, when we should perform those services, and when they were up for renewal. We tried spreadsheets, milestones, and to-do’s in Basecamp, and even using a shared Google Calendar. It always ended up significantly more cumbersome than it should have.
To solve the problem we built our own tool in WordPress using the methods described above (a couple custom post types, custom taxonomies, and meta fields). We now have the ability to define service plans and assign them to client accounts, determine what services will be rendered and at what frequency. Because we have legacy clients that only want assistance once or twice per quarter we’ve added an indication when maintenance was last performed and when it should be performed next.
Now at a glance we can see who is due for website maintenance this month and what exact services we’ve committed to doing all inside a system we’re already using regularly. While we haven’t tied this into any external services yet, there are dozens of possibilities to make this simple tool more effective. For example, we could integrate with existing plugins to send a new invoice when maintenance is performed, store e-mail responses in a comment thread, etc…
So is WordPress ready?
Absolutely. Obviously I’m biased, but I always advocate practicality in tool selection so this isn’t shooting from the hip. WordPress is a great fit for simple to moderately complicated workflows. It might not be the final solution for complicated workflows, but it’s still a great tool for a prototype. If you have a winning solution you can always rebuild it in something trendy. (That way you can brag to your friends.)