WordPress, a fork from b2/cafelog, was released in May, 2003 by its founders Matt Mullenweg and Mike Little. Since the debut, WordPress has accomplished an incredible journey, evolved from a simple blogging (web-log) platform to a complete CMS (Content Management System) with custom theming and plugin capabilities. It continued to enrich functionalities beyond a mere CMS. Over the years, WordPress became the most popular CMS system on earth.
WordPress is Up and Beyond CMS
Recent development in WordPress includes far more features than required to be a CMS. Inclusion of frontend JavaScript frameworks and libraries like backbone.js, underscore.js, integrated REST API accompanied by World-wide-Web’s most fabulous technology - Ajax, made it a candidate to deploy it in numerous ways other than CMS. People started wondering, whether it’s possible to develop web applications with WordPress, only WordPress.
Some people came up with working examples, prototypes of web application development in WordPress, while others debut complete Web Application System – production ready and commercially successful – all in WordPress. The wait and wondering is over. WordPress Web Application Development is so norms now-a-days.
Web Application Development with WordPress is Different
There is a catch, though. And that’s arguably confusing. Web Application Development requires frameworks like dJango in python; CakePHP, CodeIgniter, Laravel in PHP, .NET Core in C# (See Sharp? Good!), F# and VB.NET; beeGo in go (golang), expressJS for NodeJS… the list goes.
But, WordPress isn’t an application development framework. How, on good earth then, it’s being used as a Web Application Development tool?
The answer isn’t one, they are many!
Building web applications with WordPress is different than using other popular frameworks. Web Application Development needs many essential components like session, authentication, authorization, data entry and data presentation. Interestingly, WordPress has them all – yes – batteries included.
WordPress is a sub-system on top of PHP, on which we build web applications; not a framework with which we build. Four of the arsenal banks of WordPress are Hooks, Functions, Themes and Plugins. These two arsenals made it possible to do virtually anything you can imagine in a web application. Didn’t I say, “Period?” Period.
Uncharted Waters
You can head start developing web applications with WordPress right away. Developing applications with WordPress demands less budgetary investments. There is a plethora of resources on the Internet – all for an incredible price ever – free!
Some projects might need teaming up rather than being a one-man-army. WordPress developers reside in every corner of the world to be summoned – may be you’ll find them in the underground too.
The flip is on the other side, actually.
Really. Once you come up with the idea of developing a web application with WordPress, you might feel like you’re in a whirlpool – no beginning, no end, all is but an infinite loop of how-to. “How to do this blah in WordPress?” “How to do that blah in WordPress?”
There’s lot more under the hood than you think. Follow the rabbit. You’re going to be prized and surprised by number of components, little or not known at all, exist in WordPress ecosystem that you can utilize for web application development.
Scope Covered
This article series will help you build web applications and web services with WordPress. However, the emphasis of the series is decisively on Web Application Development. We will discuss Web Services Development with WordPress somewhere else, may be some another day. Lose your heart not, for, they say, tomorrow never dies.
We chose on Web Development, because, aside the need of Web Application Development with WordPress, every website on Internet needs some sort of web application functionality, e.g., collect email addresses, send email notifications, backup in the dark night, block some IP, like or follow an article, comment on a post, sign up a new customer, let a customer buy on a ecommerce site, charge the card, fraud prevention, mitigate DDoS, tighten security, establish a web application firewall…, whatever.
You’ll often times meet people who believe and induce others to believe that WordPress isn’t powerful enough or meant for building web apps. We’ll respond them soon, below.
For now, we’ll only focus on covering the WordPress as a great web application development choice. We’ll also cover situations where using WordPress to build web applications wuldn’t be considered the best choice.
Evolution of WordPress as a Web Application Framework Alternative Platform
It’s worth a repeat that, WordPress has evolved from a mere blog tool to the most popular content management system.
Thousands of developers round the globe are working with WordPress, making their own bread and butter every day. More and more people with advanced programming skills are delving into WordPress and making it even more robust. WordPress lets you loosely couple the interesting stuff. In fancy names, it’s called Dependency Injection and Inversion of Control.
Mind not! Rather try to realize the truth that, WordPress lets the developers add unprecedented capabilities plugging right into the system.
Many such functionalities are integrated in the WordPress package over the years, making it even more powerful a contender as a web application development platform. You can adapt those with little or no modifications to you web application.
Throughout the article series, you will learn how you can use or develop such tools, namely plugin and collectively the implementation of WordPress Hooks atop WordPress platform extending it further to suite your application needs.
The target audiences of this article series are two folds.
In one fold, it will serve the WordPress Web Application development beginners by introducing tools, techniques and technologies required to build web applications.
On another, it will serve expert web application developers, who are already familiar with many web application development frameworks, by introducing them to the underutilized or little known tools, techniques and technologies bundled with WordPress.
Invariably, the approach is simple – get started with web application development using WordPress platform. Get…, started!
In this series of articles, we presume that, you are familiar with WordPress hooks, functions, themes, plugins and WordPress as a whole.
A programming experience in PHP is considered a mandatory skill upfront. Without having prior knowledge of PHP and WordPress, this tutorial will might not be an interesting read.
Defining Web Application
A Web Application is a Client/Server program, where the client part of the application runs in a desktop or handheld device host application, usually a browser (often dubbed as thin client); and the server part is run in the server-end.
Client part consists mostly User Interface presentation and data input, and server part consists of processing, storing, retrieving and presenting the information to and from the client.
In some hardware platforms, the browser or thin client is hidden, and the web application run natively as a standalone application. Mobile applications running on Android and iOS, and propagating information to and from a remote host server, falls in this category.
If not native, these applications are made with HTML, CSS and JavaScript technologies and bundled as a package in accordance with the target hardware platform and operating system.
Web Application Architecture
A web application is multi-tiered or multi-layered by design. A Two-tiered application has frontend (UI/UX) and backend (Storage/Database) layers.
Three-tiered applications, in addition, has one more layer in the middle named application layer consisting of business logic and facades.
Domain Driven Design (DDD), tears down web applications at least four folds apart: Presentation, Application, Domain and Persistence Layers.
The most common layers used in Web Application Development are:
- The Presentation Layer
- The Application Layer
- The Database Layer
Interestingly, WordPress has prominently all the three layers, though not separately, but interwoven. While developing in WordPress, you’ll mostly be concerned about Presentation Layer alone with the aid of Themes.
Application Layer is handled by WordPress and associated plugins. Lastly, The Database Layer is contacted by WordPress through Application Layer.
However, it is common, though not a well practice, in WordPress that, developers contact database elements directly from the Presentation Layer, aka, Themes.
APPENDIX I - Articles of the Series
This article is a part of the series "WordPress Web Application Development".
Read all the articles of the series:
- Preamble - WordPress Web Application Development
- Chapter 1 - Introduction to Web Application Development with WordPress
- Chapter 2 - Fundamentals of Architectures for Web Application Development with WordPress
- Chapter 3 - Why Consider WordPress Ecosystem for Web Application Development
- Chapter 4 - WordPress Web Application Development Features for Project Managers
- Chapter 5 - Features and Components of WordPress for Web Application Developers
- Chapter 6 - Thoughts on WordPress Web Application Development