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)
  • Authentication
  • …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.

Category:
Articles
Tags:

Join the conversation! 7 Comments

  1. To be perfectly honest, I had never thought of using WordPress as a base for building a website, until my Uncle inquired if I would help him develop a website using WordPress. My experience in building websites has been with the CodeIgnitor and YII PHP Frameworks. I remember designing/developing the user roles for my team’s Senior Capstone website, and it was quite a bit of coding to develop the storing and retrieving of data relative to the set of features of a user in a particular role. Having the ability to manage users through the WordPress Dashboard or API as well as give users the ability to set up an account out of the box is a huge boon. I can’t wait to take advantage of this. However getting up to speed on modifying, creating, and interfacing with themes and plugins, hasn’t been as smooth due to the structure and breadth of the documentation. In the past, I was able to easily create a new custom page involving a Model, View, and Controller in CodeIgnitor/YII relatively quickly when I first started out. WordPress has it’s own pattern/nuances for overriding logic and integrating your own custom logic that I’m still attempting to grasp and understand. I can definitely however see the benefit of using WordPress, due to the readily available Themes and Plugins that can be used and modified for almost any purpose. It’s just a matter of getting to the point where the light bulb clicks on in my head. Then I’ll be able to start to making headway towards achieving the needs of the website that my Uncle wants developed. Having better branding for WordPress in terms of what it’s meant to do and beyond, would certainly help the adoption of using WordPress for custom development. Plus having a better organization of the documentation would help in getting people up to speed with custom development using WordPress.

    • I had never thought of using WordPress as a base for building a website, until my Uncle inquired if I would help him develop a website using WordPress.

      That’s kind of like the gateway drug, isn’t it? You start with something like that and, if you have other coding experience or want more experience, then you go from there.

      I remember designing/developing the user roles for my team’s Senior Capstone website, and it was quite a bit of coding to develop the storing and retrieving of data relative to the set of features of a user in a particular role

      Oh cool! Where did you do the project? I had a similar capstone project that was a largely data-driven web application that we built on rails that did similar things to what you’ve described. 

      Though it was for one specific client and his team so it’s not like something you’d point out on the web and say “See that – yeah, that’s what we did.” ;)

      WordPress has it’s own pattern/nuances for overriding logic and integrating your own custom logic that I’m still attempting to grasp and understand.

      Lookup the Event-Driven Design Pattern and it should click for you much faster. That’s all the hook system really is in its simplest form.

      On December 31, 2014 at 1:35:29 AM, David Fall (hello@email.gopostmatic.com) wrote:

      David Fall added a comment.

      In reply to: Using WordPress as a Backend.

      David Fall

      December 31, 2014 at 1:35 am

      To be perfectly honest, I had never thought of using WordPress as a base for building a website, until my Uncle inquired if I would help him develop a website using WordPress. My experience in building websites has been with the CodeIgnitor and YII PHP Frameworks. I remember designing/developing the user roles for my team’s Senior Capstone website, and it was quite a bit of coding to develop the storing and retrieving of data relative to the set of features of a user in a particular role. Having the ability to manage users through the WordPress Dashboard or API as well as give users the ability to set up an account out of the box is a huge boon. I can’t wait to take advantage of this. However getting up to speed on modifying, creating, and interfacing with themes and plugins, hasn’t been as smooth due to the structure and breadth of the documentation. In the past, I was able to easily create a new custom page involving a Model, View, and Controller in CodeIgnitor/YII relatively quickly when I first started out. WordPress has it’s own pattern/nuances for overriding logic and integrating your own custom logic that I’m still attempting to grasp and understand. I can definitely however see the benefit of using WordPress, due to the readily available Themes and Plugins that can be used and modified for almost any purpose. It’s just a matter of getting to the point where the light bulb clicks on in my head. Then I’ll be able to start to making headway towards achieving the needs of the website that my Uncle wants developed. Having better branding for WordPress in terms of what it’s meant to do and beyond, would certainly help the adoption of using WordPress for custom development. Plus having a better organization of the documentation would help in getting people up to speed with custom development using WordPress.

      Reply to this email to reply to David Fall.

      Please note: Your reply will be published publicly and immediately on Using WordPress as a Backend.

      Leave this conversation

      To no longer receive other comments on this thread to reply with the word ‘unsubscribe’.

      Sent from Tom McFarlin. Delivered by Postmatic.

      About Postmatic (Beta)

      Postmatic sends your posts to your readers where they’re comfortable: their inbox. They can send comments back by hitting the reply button. Just like you can with this very email. We’re currently in public beta. Sign Up Thanks for being a willing test pilot! Share your thoughts in this short survey.

      • Oh cool! Where did you do the project? I had a similar capstone project that was a largely data-driven web application that we built on rails that did similar things to what you’ve described.

        The Senior Capstone project that my team did was for Eastern Washington University’s Computer Science Department. They wanted to switch from using paper course evaluation forms to an online system for filling out course evaluations and producing faculty evaluation reports. There were Student, Teacher, and Admin roles. Students could anonymously fill out evaluation forms and then either save or submit the form. Teachers could extend the course evaluation form for any one of the courses they were teaching by adding/modifying/deleting a question pool that was separate from the core question set. The Teacher could also decide which questions from the pool they wanted to be a part of their form. As for Admins, they could manage the Admin accounts, moderate the questions added by the Teachers, add/update/delete core questions, and generate the faculty evaluation reports as PDFs.

        Event-Driven Design Pattern

        Now that I’ve read more into Filters in Actions, they are very similar to Action Listeners in Java and Events in C-Sharp. Thanks for the tip!

  2. Sadly I’ve seen WordPress come under fire by some aggressive trolls on social media stating it is too bloated, insecure and rigid. I disagree. I do understand poor third party code can compromise it. The delivery of their message is more hurtful than the actual message. Web Developers can be very opinionated and egotistic (but not all and I hope I’m not perceived as such).

    One thing I will say, I’ve been a little spoiled by it and as a result; my SQL skills have suffered lol.

    • Sadly I’ve seen WordPress come under fire by some aggressive trolls on social media stating it is too bloated, insecure and rigid.

      Same story, different day. I don’t know if I can name one popular application or framework that doesn’t have an audience doing this at some point.

      Web Developers can be very opinionated and egotistic (but not all and I hope I’m not perceived as such).

      Yes they can be. Sadly, it appears that it’s becoming a defining trait :(.

      One thing I will say, I’ve been a little spoiled by it and as a result; my SQL skills have suffered lol.

      No excuses! Get back to the database :).

  3. Recently used WordPress as a backend for my mobile and webapp. I wrote a custom rest api provider and added a redis layer for completely decoupling WordPress from the frontend. I also blogged about the process here http://snypd.com/wordpress-angular-redis-double-happiness/ [pretty new to blogging world]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.