I'm building Branch - a continuous integration service for WordPress developers.
📺 Jump to the screencast if you don't fancy reading the manifesto...
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.
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.
Branch is a build and deployment tool for WordPress developers. It keeps track of your Git repositories and can run all your build and deployment tools for you. When your themes and plugins are built, Branch can deploy them to all your WordPress sites.
Because Branch is built on Docker there are really no limits to what kinds of steps you can have in your build flows. You can run
npm build:production, modify files, move files around or do whatever you need, in order to build your plugin and themes. Branch makes it simple. You can keep your Git repositories clean (no
/node_modules folders on GitHub please!) and use Branch to build everything when you are ready to deploy.
I want Branch to be an all-in-one developer platform for WordPress developers and I have lots of ideas for upcoming features. I want to get the first version out as soon as possible, so I can get feedback from all of my fellow Wordpress developers while building.
* At least some of us
As you can see in the video above I have a working prototype of Branch. In order for me to fund the development and make it ready for the first users I need to gauge the interest. If Branch sounds like something you could use, please put your email in the form below. If you know anyone who might find Branch interesting, please share this page with them!
What happened when you clicked "Deploy" in that video?
Branch is hooked up to a client plugin installed on the WordPress host. When clicking "Deploy" a message is sent that initiates the update of the theme. The client then hooks into the WordPress core update functionality and fetches the newest build from Branch's server. In the future I want Branch to support SFTP as well, so you can revert if you push a change that breaks WordPress.
When is the beta ready?
Branch is quite a big project to tackle. When I have gauged the interest in Branch and seen that people really want this I will be able to invest more resources into getting the beta ready. The best thing you can do at the moment is to let me know if you really want this.
How is Branch different from my shell script?
Ouch! Good one. The answer is: In quite a few ways probably. First of all it really depends on what kind of sorcery you have put in your shell script. If the script is run on your local machine, you will still have to commit all this nasty dependency stuff to your Git repository. If the script is run on your server, your site might be down while your script is running. Also, you are quite lucky to even be able to run shell scripts on your server - but is it really the life you want? I challenge you to share your script with me!
Ps. I want Branch to grow to become an all-in-one development platform for WordPress developers - not a competitor to your shell script.
Can it run my unit tests?
Soon it will. And if your tests fail you will receive a notification and the deployment will be halted. Neat, right?
Hi! My name is Peter. I’m a PHP and WordPress developer. I’ve been building WordPress websites for more than 10 years. About 3 years ago I decided to try to make Git more accessible to WordPress developers and built WP Pusher - A deployment tool that can install plugins and themes from GitHub and Bitbucket.
Find me on Twitter
Send me an email