What is Cordova again, and why do I care?
If you are reading this you probably already know what Apache Cordova is and why I am writing about it. Cordova is a framework/toolset to build cross-platform apps (for Android and iOS these days) with standard web technologies. Cordova as an Apache project is about 10 years old now and its origins Phonegap are even a bit older.
Most parts of Phonegap (an Adobe product) became the open source project Apache Cordova. At Apache, projects are managed by a project management committee (PMC).
Disclaimer: I am part of the Apache Cordova PMC. This post is my personal opinion and assessment of Cordova’s past, current and future state. This is not an official statement of the Apache Cordova project. Take it with a grain of salt. I am very open for discussions.
I used to work on quite a few interesting things on Cordova and therefore sometimes people reach out to me on the interwebs. I love to talk to people in the Cordova community and hear their stories and challenges. Currently, I don’t offer consulting services (maybe I should change that?) but I occasionally talk with Cordova users and help out with issues in the open source space. Because I get asked similar questions regularly I would like to share them here for a bigger audience.
What is the state of Cordova in 2022?
People ask me quite a lot how alive the project is. Again this just my personal take and I am quite biased, because I work with the PMC to keep this project going.
I really think the project is still in a stable state. The project is able to keep up with breaking changes from Android and iOS. We create new releases when necessary. The community reports and fixes most issues. A couple of maintainers are available to review, merge and release changes to keep the project going.
In the past (as far as I can tell, since I only came to the project around 2017) the project was backed by big well known companies with employees dedicated to it. Those days are definitely over and the project is now mostly run by volunteers who spend their free time on the project. I am pretty sure there are still companies highly invested in the project and dedicating employees to work on it.
I don’t think Cordova is going anywhere in the foreseeable future. There are still enough dedicated people (and companies) on the project doing the necessary work to keep everything alive with the ever-changing mobile platforms. A lot of apps are built with Cordova and they depend on it.
For a few years now there is also a very strong alternative available: Capacitor from the company behind the Ionic framework.
Cordova vs Capacitor
From my point of view Cordova lost quite a bit of its popularity and Capacitor on the other hand is growing a lot right now. Ionic started to build Capacitor as a fresh replacement for Cordova. They managed to learn from some the design decisions in Cordova that turned out to have a few drawbacks. Therefore, Capacitor can be more stable and easier to use.
I worked on a Cordova app with a couple of iOS app extensions for sharing etc. Because Capacitor allows you to make changes in the native projects it can be easier to use, and you might have less annoying build issues. The design decision of Cordova to not track the platforms and to do changes in the native projects with hooks and scripts, maybe wasn’t the best one for more complex plugins and apps.
For me this is the biggest benefit of Capacitor. If you have issues like this you could give it a try and see if your Cordova projects and plugins run with it.
PWAs and the web
The good thing with Cordova apps is that they are just web apps. You can always decide to just put the code from the
www folder to a web server and host it as a progressive web app. You can even use a lot of web APIs for features that you needed plugins for just a few years ago. I think for many apps you can target the web first and then you could think about going the extra mile with Cordova and going to the app stores. Publishing through the web has many benefits, and you need to think about if the native app is really worth it.
How to support the maintainers? What can I do?
Sustainable open source is one of my favorite topics. You can discuss forever how to support projects and maintainers. For Cordova, I think the best way is to be nice and patient with the maintainers. If you open issues and ask on Slack don’t expect an immediate response or leave rude comments. Projects like Cordova are run by volunteers on their own terms. Be nice and helpful where you can.
Another good way to support the maintainers is to show your support through sponsorships. I sponsor some fellow maintainers myself. It’s just a tiny amount, but it shows my appreciation for their work. If you are around in the community you recognize names, you could consider sponsoring them if possible. Sponsoring maintainers directly helps the project the most. Sponsoring the Apache Software Foundation helps with running the projects and infrastructure but does not pay for development work.
If you find any issues we always love to get them reported with possible fixes as pull request. Feel free to take part on GitHub, Slack, Stackoverflow and more. You can contribute in many ways not just working on code and issues. It’s also important to help users by answering questions or improving the documentation.
Cordova is still going strong. If you help to support it will flourish for a long time.
What do you think about Cordova now? Do you use it for your projects or even contribute? Let me know!