Max Lynch, co-founder and CEO of Ionic, often states that the vision for Ionic is to be like the WordPress for mobile. Take a look at this quote from an appearance Max made on the FlyoverLabs podcast:
It's a vision that makes a lot of sense given the success of WordPress (see point #6), and it made me think about the similarities that exist between WordPress and Ionic today. WordPress and Ionic are two fundamentally different technologies – Ionic is a framework for building web-based mobile applications that typically run inside of Cordova (which creates a browser in a native application shell), and WordPress is a Content Management System used to build websites.
However, there are many similarities between the two. In this article, I'm going to explore both the positive and negative similarities between Ionic and WordPress.
The most obvious comparison between Ionic and WordPress is that they are both great general tools that will satisfy most use cases.
If you are building a website and ask yourself if it could be built using WordPress, the answer would be yes perhaps 95% or more of the time. Often WordPress will be a great solution, sometimes it will just get the job done, and sometimes it would be a bad choice. Obviously building blog and magazine style websites in WordPress would be a great choice, even eCommerce and membership sites are quite a good fit for WordPress, but it's probably not going to make sense to build Facebook on WordPress.
It is the same with Ionic, almost all applications could be built with Ionic, and in most cases Ionic will do a great job. It's not the right tool for every application, though. If you are building a 3D game, creating some kind of image processing or manipulation application, or anything that will have high CPU or GPU use, then it may make more sense to build a native application.
However, an application like Facebook is actually something that could realistically be built with Ionic today (despite Zuckerberg's remarks from 2012, the web has come a long way since then).
WordPress created an environment where many more people, developers and non-developers, could create websites. Ionic is starting to do the same for mobile applications.
When installing WordPress you will come across their "famous 5-minute installation", and I'd say that's pretty accurate. Similarly, the time it takes to get to a "Hello World" application running through the browser with Ionic is realistically in the realm of 5 minutes. The same could not be said for native development.
The main difference between WordPress and Ionic now is that you don't even need to be a developer at all to build a WordPress website. Development knowledge will always be required for more advanced implementations and customisations of WordPress, but at a basic level, just about anybody could create a WordPress site. Ionic is starting to go down this path already with Ionic Creator, and I don't think it will be too long until it is common for non-developers to start and finish their own mobile applications.
Although this opens up a lot of opportunities for people to get into mobile application development, the low barrier to entry does lead to some issues that I will discuss in later points.
WordPress has a bit of a bad reputation, as do Cordova applications in general and by extension, Ionic applications. People may scoff if you tell them your website was built with WordPress, just as they may scoff if you tell them your application was built using Cordova.
These people, I believe, are a loud minority and this reaction is mostly ideological. The goal of any application is to do what it needs to do, and to do it well. Looking down on an application purely because it uses a particular technology stack is absurd.
Nevertheless, this reputation of Cordova-based mobile applications has permeated the mobile development scene. It's not just the people who scoff and say that real mobile applications are native, this may be driven by a sense of elitism and protectionism, but fair, rational, and level-headed people often also share this opinion… so why does it exist? In my opinion, it comes down to two main issues.
The first issue is when Cordova first came on the scene, around 2011. Mobile browsers had far poorer performance than they do now, and there was a lack of frameworks to create decent mobile applications with web tech. One of the things Ionic provides is a sliding menu with smooth animations, which they have spent obsessive amounts of time on to make sure it performs well. Imagine you are trying to build a mobile app for Cordova with no other frameworks, and you have to build all of these elements yourself from scratch. My guess is that the end result won't be too fantastic in most cases. And so, many Cordova applications were built with janky side menus (among other things). This led to many ugly and poor performing applications being built, which seeded the idea that Cordova apps are just bad.
The other issue which is more pertinent today, and one I will hit on a few times in this article, is that Ionic enables people who may not have otherwise been able to build a mobile app, to build a mobile app. Just like WordPress enables people who may not have otherwise been able to create a website, to create a website.
This is a bit of a double-edged sword. It gives more people the confidence to get into mobile application development and start making things, which is fantastic. On the other hand… a little knowledge is a dangerous thing. You can make great apps with Ionic and Cordova, but it's so easy to make a bad one. A beginner level developer will be able to create a mobile application with Ionic quite easily, but won't necessarily consider all the nuanced issues that may lead to bad performance. They may try to load in all of the data for the application at once, maybe they block the application whilst making a request to a server, make inefficient updates to the DOM (Document Object Model), and so on.
This leads to a situation where great applications built with Ionic will likely just fly under the radar, people may just assume it's a normal native application, but when a bad application is built with Ionic it leads to the assumption of… this application performs pretty poorly, it must be a hybrid app.
Poor performance is not limited to hybrid applications, you can just as easily create a poor performing native application, but since the barrier to entry for native applications is a lot higher I think it's a less common issue.
This follows on from the last point: the fact that Ionic, like WordPress, makes it a lot easier for people to make things, means that people who may not understand potential security issues are able to build applications. Security is an advanced topic, but it's relevant right from the beginning.
When a beginner-level developer is creating an application with Ionic (or a website with WordPress), they will likely copy and paste code they find on the Internet, take a trial and error approach until something works, and install lots of plugins they may or may not need. I don't think this in itself is a bad thing, it's a great way to learn. The issue arises when beginners start building real world applications where security is a critical concern.
If someone is just building a fun application or a simple utility app that doesn't store user data or have any real security concerns, then I would encourage them to throw caution to the wind and build these apps. But since Ionic enables beginners to create mobile apps, it also enables them to make money with real world projects. It's hard to fault somebody who is attempting to earn a living, but this situation does create serious problems.
I get a lot of emails asking for support, and sometimes people ask really specific questions – like how do I create a tabs layout, authenticate a user using X on Y server, and allow a user to have private chats with employee groups in each tab – it is clear that they only have a very basic understanding of Ionic, but are attempting to build an application with advanced security concerns. The questions make it obvious that they aren't just attempting to learn, but have taken on a project that they probably shouldn't have at their current level.
WordPress experiences similar issues, where people will attempt to put together a complex site by bundling together some authentication plugins, a membership plugin, a secure download plugin, and code from StackOverflow, without really understanding the security implications.
On another note, security concerns should be at the forefront of a developers mind when they are building an application where security may be an issue, but Cordova in itself is not unsecure.
A common security concern with Cordova apps is that anybody can easily inspect the source code bundled into the application. You can do things to avoid this like obfuscating the web based code but in the end, someone really determined will likely be able to peek at the inner workings of your code.
I don't see this as an issue. I can go to the Facebook website right now and look at their front end source code as well right there in my browser. Any secure stuff is done through a server that I can't view, and the same concept should be used to secure Ionic apps. One just needs to keep in mind that what they are really doing is building a website bundled into a native mobile app, and so they should take the same security precautions they would when building a website.
But again, going back to the issue of beginner-level developers, if a developer doesn't understand the nuances of how Ionic and Cordova work, they may reasonably assume that when they distribute their app through the app store nobody can peek into their code. So maybe they do things like hard code API keys or passwords into the application itself, or into local storage, which could easily be stolen by hackers.
Out of the box, both Ionic and WordPress support a core set of functionality. Ionic provides all of the common mobile UI elements like buttons, tabs, modals, search bars, and input areas. It also provides the ability to navigate between pages, save data, and everything else you need to actually create a mobile application.
Similarly, WordPress provides default themes for websites that work on all device types, it gives you the ability to modify menus, create pages, add posts and so on.
For some circumstances, this is all that is required, but in many cases, one would need more than just the basic set of functionality. Both WordPress and Ionic use the concept of plugins to add additional functionality. One could develop their own additional functionality or plugins to add to an application, or they could use any of the community created plugins.
Although many of the plugins and add-ons for both Ionic and WordPress are created by dedicated community members for free, an ecosystem where money can be made is an important ingredient to ongoing community support and activity. The marketplace for WordPress themes and plugins is huge – Kriesi who is a theme author on the Envato Market has made over $2 million in sales on the platform.
I recall listening to a Tim Ferriss podcast where he talked to Matt Mullenweg who is one of the founders of WordPress. When introducing himself, Matt says:
"[Wordpress powers] amazing sites such as the 4 Hour Everything … the New York Times, Wall Street Journal… about 23% of all websites now are in WordPress."
Let me emphasise that, approximately 23% of all websites are built on a single open source framework. This astounded me, but it does make sense. It's free and open source software that's easy to use out of the box, easy to extend, and has tons of community support.
Despite all the challenges of the past for Cordova-based mobile applications, the idea has still persisted. Now that browsers have improved immensely and Cordova-based mobile applications are finally getting good, I think the explosive growth of applications built with frameworks like Ionic will continue.
This shows that people want to build mobile applications with web tech, and now we finally have the tools to build good mobile applications with web tech. I wouldn't be surprised to reach a point in the future where 23% of all mobile applications are built with Ionic, especially as tools like Ionic Creator mature.
Ionic and WordPress are two fundamentally different frameworks, but they do share a lot of common ideas, goals, and pitfalls. If Ionic really is the WordPress of the mobile app world, and I think it is well positioned to be just that, then we will see it quickly infiltrate the mobile apps and websites that we use every day.