In Peterâs words, âthe most basic way to think of WP Pusher is that it replaces FTP with a flow where updates come directly from GitHub/Bitbucketâ through the WordPress core auto-updater.
You may not know Peter built the first version of WP Pusher in a shopping mall in Thailand while traveling the globe for four years. Originally from Copenhagen, today Peter is settled down in Glasgow and has just launched Branch, a Docker-based build and deployment tool for WordPress developers that goes quite a bit further than WP Pusher. Branch is a continuous integration service for WordPress that adds âthe âbuildâ and âtestâ stepsâ before deployment.
DK: Youâve launched Branch with a manifesto that declares âWordPress developers are developers tooâ before outlining the well-known lack of modern tools for WordPress development. Why do you think that has been such a long-lamented situation and was there something unique in your experience that drove you to do something about it?
PS: One of the things that makes WordPress really special is its low barrier of entry. The 5-minute install and all of that. The WordPress community proudly consists of a large percentage of amateurs and hobbyists. A lot of people have their first experience with programming because of WordPress, which is great and something WordPress should be really proud of. Most development frameworks exist to make the developer more productive, but I think WordPress has another purpose. The purpose of WordPress is to democratize publishing (which is something user facing), not to be an awesome tool for developers. There are obviously some political decisions behind this lack as well. Religiously supporting outdated versions of PHP is just one of them. Not having any sort of dependency management, so everyone has to reinvent the wheel on each project is another one.
Every WordPress developer is asking the same questions. âHow do I manage my dependencies?â or âhow do I migrate changes to the database?â These are questions people literally ask me because I sell WordPress developer tools. Personally, I didnât get into programming because of WordPress. I have been doing PHP development since my early teens, and my first job was as a Ruby on Rails junior developer. âGrowing upâ as a developer, I was raised very strictly! My co-workers would write failing unit tests for me, and Iâd have to implement the code. This made me pretty religious about best practices, testing etc. After RoR I discovered Laravel in 2013 and helped build the Laravel community in Copenhagen. However, during high school, I had built quite a few different projects using WordPress for myself and my clients. Once in a while, Iâd have to update these old WordPress sites, which always involved installing an FTP client. This was rough after five years of continuous deployment using Git and automated tests. I hate FTP with a passion. Itâs an error-prone and outdated way to deploy your code.
Inspired by some of the tooling I knew from RoR and Laravel, I set out to build a better way to deploy WordPress code. After a lot of experimentation, I landed on WP Pusher. However, WP Pusher only moves the code. It doesnât run your build scripts or your unit tests. It just blindly moves your code from a Git repository to WordPress. I was intentionally ignoring this problem for a while, being kind of intimidated by it I guess. However, people kept asking me the questions I described earlier, so I started experimenting again and believe I found a really cool solution with Branch. Branch is built on top of Docker, so everything you can imagine doing inside of Docker containers will eventually be available within Branch. A major part of building Branch is to make this great, but highly technical, stack available to WordPress developers.
DK: Does Branch build on or incorporate WP Pusher, or are these totally separate technologies? As SaaS businesses, will they remain separate or merge? I imagine some of your agency customers for WP Pusher might want to move up to Branch, if they donât lose anything in the process.
PS: The best way to understand Branch, and why itâs different from WP Pusher, is to imagine it as two separate parts: The build + test part (continuous integration) and the deployment part (continuous deployment). The deployment part of Branch very much builds upon WP Pusher. The build part is whatâs new. Itâs the missing link between developing on your local machine and shipping to production.
One of the things that excite me the most about Branch is that itâs a hosted SaaS, compared to WP Pusher which is âjustâ a WordPress plugin. That allows me to add a much more advanced feature set and ship much faster. With a SaaS, you are in control of the environment in which the software runs. That gives you a lot more flexibility and opportunity. I want WP Pusher to stay around for everyone to keep using. However, I want to make Branch so good that everyone wants to switch eventually. But WP Pusher will stay around. Thatâs for sure.
DK: What did you learn from life as a digital nomad? Have you given it up for good now, or do you plan to do more traveling?
PS: Thatâs a good question, I should probably spend some more time thinking about! I came into the ânomadicâ lifestyle sort of by accident. It wasnât very purposeful. I think on a personal level the number one lesson has been how important for me it is to have a base. Traveling for a long time, you become very aware of your roots. You spend a lot of time thinking about the good and the bad parts of being back home. I think ideally it allows you to go âhomeâ and have a better idea of which parts of settled life you like, and which ones youâd rather be without.
On a business level, WP Pusher was born on the road and has a very different nature than most businesses. From day one itâs been a premise that I wasnât always around 24/7. Itâs never been a problem, because itâs never been an expectation. Iâve never had to change anything about WP Pusher to allow me to travel, because I was already traveling when I built it. Now Iâm pretty settled, and I live with my fiancĂ© and only travel for smaller trips. Iâll never stop traveling, hopefully, but I donât think Iâll ever live on the road again!