Branching out: An interview with Peter Suhm

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.

The Branch Dashboard showing the configuration options for a theme’s build steps.

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!