Manifesto

Increasingly building WordPress websites require us to be developers. Our themes and plugins not only use PHP, but JavaScript, CSS, and countless frameworks. Soon working with the editor (Gutenberg) will require us to know React as well. On top of that we work in larger teams with a desperate need for version control and continuous delivery.

As WordPress developers the tools we are left with are FTP clients, zip files and legacy SVN setups. We have no dependency management, no good ways to collaborate on our code, and no good ways to deploy it. Each of us are expected to figure out the solutions to all these problems on our own, even though we all face them on a daily basis. Imagine if carpenters had to build all their tools themselves before starting a project? If I had a dollar for every time a WordPress developer asked me questions like “what about my compiled assets?” or “what about my PHP, JavaScript, or CSS dependencies?”… I would have a lot of dollars. The answer currently is “you’re on your own”. We are light years behind the rest of the established PHP and JavaScript communities.

How are we currently solving all these flaws in our development environments? Often it looks like this: Build everything locally with Grunt, Gulp, Webpack, Composer etc. and copy / paste it via FTP. Good luck doing that on a team! This is not how these tools were imagined. Quick aside: This is still a big improvement to the previous WordPress way of just reinventing the wheel every. single. time (Hello, security issues!).

For 3 years I have been working to improve the workflows of WordPress developers with WP Pusher (a Git tool for WordPress) and now I’m working on a much more comprehensive solution.

As WordPress developers we want to use our favorite tools, the same tools that all our developer friends, outside of WordPress, get to use every day. We want to use Git, Webpack, Composer, and the JavaScript framework of the month – in the way they are supposed to be used. We want continuous integration and deployments. And we want it now without having to figure it all out ourselves and reinventing the wheel.

3 years ago I launched a side project called WP Pusher, a plugin that allows you to install and update plugins and themes from a Git repository. WP Pusher can automatically make sure your site is up to date every time you push a change to GitHub or Bitbucket. Even though the plugin was banned from the w.org directory, it has managed to get a lot of attention. Today some teams are using WP Pusher on hundreds of WordPress sites.

WP Pusher is only a small step towards a better world for WordPress developers. It takes FTP clients out of the equation (can I get a “yay!”?). My experiences from working with Laravel PHP, and before that Ruby on Rails, are what prompted me to make Git more accessible and useful to WordPress developers. However, I still have a feeling that there is more I can do.

Working on WP Pusher and talking to hundreds, if not thousands, of people about their struggles with workflow has given me a lot of insights. That is why I have decided to tackle a larger part of the problem and decided to build Branch.

© 2018 - 2021 Branch Continuous Integration, Inc. All rights reserved.