These days, it’s hip to say that you’re either working with a framework or you’re working with a content management system.
And, for one reason or another, Team Frameworks frowns upon using a CMS for building a site because it doesn’t require writing code, and Team CMS laughs at the idea of writing so much code to do the same thing they’re able to do without said code.
This is why, in previous posts and in other discussions, I’ve often referred to WordPress as a foundation off of which to build web applications. By that, I mean that WordPress is a content management system and that it is not a framework like Rails, Laravel, or .NET. Instead, its API gives us the ability to extend the application far beyond what it’s able to do out-of-the-box.
And I know, I know. This is all stuff that someone else has said before, but the point that I want to make in bringing this up is how those who are curious about using WordPress as a solution for their data may be writing it off simply because of its branding.
WordPress as a Backend
When it comes to building web sites (and this includes web services and web applications), I personally think that everything can fall under the umbrella of content management.
That is, we all have content – which is data – that needs to be managed – which means that it should be stored and most likely retrieved. How we go about storing and retrieving the data varies. Sometimes, we write our own applications to do it using very little code; other times, we use existing applications to do it.
This is where the Framework and the CMS guys start to debate. But that’s not what I’m about (at least not right now :).
Instead, I’m more interested in why people may or may not choose WordPress as their solution of choice when working on a custom web application.
To be clear, I don’t think that problems on the Internet are made up of a bunch of nails for which WordPress is a hammer. Hardly. But I do think that WordPress offers a lot of great functionality out-of-the-box that frameworks often include and that make it easy to access via the API.
This includes things like:
- User accounts
- Roles and capabilities
- Storing data
- Storing meta data for various types of data (how meta, ahem)
- …and so on
But because of its nature, WordPress is seen as an application rather than as a tool that developers could pick up to use in order to help solve their problem.
Case in point…
Say that you need to develop some type of application that takes user registrations along with some additional information such as their location, gives them the ability to login to the site to perform some action, and also allows them to do all of them above via their mobile device.
Regardless of how you approach this, it’s relatively simple. I mean, it’s a solved problem, really. You’d be hard pressed not to find a library, a gem, a package, or some other library that doesn’t already offer most of this functionality.
But when it comes to needing to build something simple like this, I highly doubt that WordPress is what comes to the mind for most developers. Instead, we’ll think more inline with other languages, tools, libraries, and so on in order to help us get our work done.
That said, I also think that it’s an exciting time to be a part of working with (or working on) WordPress. There’s a lot of really cool stuff coming one of which is the upcoming REST API that, I think, is going to provide developers with enormous flexibility when it comes to creating applications that use WordPress as their foundation.
To be clear, this isn’t a bad thing or a good thing – it’s just the nature of the application. It provides content management functionality while also supporting extendability through its various APIs.
What do we do with this, though? Do we rebrand WordPress? Leave it as it is? Create some type of fork like for projects that need a foundation without the dashboard? How do upcoming efforts such as the REST API fit into all of this?
All rhetorical questions (unless you want to share your thoughts :), but I still think it’s worth considering – at least every now and again – how we, as developers, posit WordPress as a viable solution for building web applications.