Launching another side-project
Main Thread • 7 min read
This side-project took longer than I expected. It almost died on the vine. A few weeks ago, I launched it (quietly).
I have a pretty good track record with side-projects. I've launched or used more than I haven't. Time has always been my most precious asset. Ever more so as I've gotten older. I'd rather spend my time on other things – family, hobbies, or simply unplugging. This makes me a bit more choosy. If I decide to spend my time on a side-project, I fully intend to launch it.
Honestly, I didn't plan to start a new side-project. I've said a number of times Shift is my last project. Sure I'll always code things. But they'd be for myself. Like a custom inventory system for my future woodworking business.
But I found a cross-over opportunity and something I needed to use myself. That's a solid candidate for a side-project. So I'll share my journey for starting this side-project. If you want the tl;dr
, feel free to skip to the key takeaways.
Last summer, I was talking to Till Krüss. As a fellow SaaS founder, I've chatted with him a few times over the years. He, and others, have always talked about the opportunities within the WordPress community. While I've kept this in the back of my mind, I've been perfectly happy focusing solely on Shift.
Oddly enough, a few months later, I needed to update a WordPress plugin. Being a PHP developer for 25 years, I did my tour as a WordPress developer long ago. To my surprise, the process of developing and publishing a WordPress plugin hadn't changed.
Given my love of automation - particularly automating the mundane tasks of developers - I thought about what it would take to automate the process for publishing a WordPress plugin.
This led me to Mark Jaquith. Although we connected via Twitter, I remembered him from my time as a WordPress developer and speaking at WordCamp. He immediately admitted to building something similar for himself. This not only validated the idea, but led to multiple conversations about the features of such a service.
All this put me on a fast track to developing a prototype. Most of the integration was pretty straightforward. I used Laravel Socialite for the login, and many of the underlying service classes from Shift. The general flow was pretty much the same - connect via Git, enter repository details, make code changes. The only real difference was instead of creating a Pull Request, the changes were sent to the WordPress.org SVN repository.
The SaaS around it also came together quickly using Laravel, Cashier, and Tailwind UI. Along the way, I shared my progress on Twitter.
Over the next months, I continued to meet with Mark to alpha test the service using a few of his WordPress plugins. By December, some quiet networking led to more alpha testers. While the service was public, I hadn't shared it. I only generally mentioned working on a “side-project” in my newsletter and on Twitter. No public announcement. I just kept iterating on the idea.
By the end of December, I was ready to launch. Around that same time, Jason Beggs mentioned me in a Twitter reply. Someone in his network (Joey Farruggio) was working on something similar. This was more validation.
I've always wanted to team up with someone on a project. After nearly a decade of working on Shift, more or less by myself, things were getting a bit lonely. Pairing up with someone would, if nothing else, be more social.
So I reached out and after some back and forth, Joey and I teamed up in January. We merged in some of his work that focused more on distributing private WordPress plugins (those not published via WordPress.org).
This is where things slowed down. When you bring someone new onboard, there is inevitably a ramp-up period. In addition, Joey brought fresh ideas to the onboarding flow, as well as new alpha testers. This put us into February.
Unfortunately, the deeper we got into February the less time I had to spend on the side-project. Shift is a rather seasonal service - centered around the Laravel release. Although targeted for February, the release pushed into March. This put me in a bit of a holding pattern as I had to keep my focus on Shift for any last minute changes.
After release, I needed to focus on support from the increase of usage and continued changes which commonly follow a major release. In late March, I traveled to India to speak at Laracon India. Upon return, it took a few days to settle back in. Then, from all the travel, I ended up getting sick the following week.
All this is to say I didn't work on the side-project from mid-February to mid-April. I'll admit, there were a few days while sick I wasn't sure if I wanted to continue the side-project. I wondered if it was worth it. Like many other side-projects, it was collecting dust.
We did make a few changes during that time. I also used it to dogfood Shift by upgrading it to Laravel 11. When I went to deploy these changes, I noticed there were actually a few new users. Not alpha testers. Completely organic users who had somehow stumbled upon the service. A few of which actually used it to deploy their WordPress plugin to WordPress.org.
This renewed my belief in the side-project. All along the way, every alpha tester who used the service saw its value. They were ready to use it. Now, without any effort, there are more people using it. That's a pretty good signal. Not as good as a paying customer. But good for something that hasn't officially been released.
With that, I worked to complete my tasks on the side-project to ensure it was back in a stable place. Joey and I decided to freeze any development until a bug was reported or a paying customer requested the change. We discussed a loose "marketing plan" for sharing the service in the coming weeks. We started by sharing it more openly to our own audiences via our newsletters. I am sharing in this post. Next week I'll share with some of the private WordPress communities. In the following weeks, we'll make a push on social networks like Twitter and Reddit. It's a bit of a phased rollout while we ensure the service is running smoothly.
So, without further ado, allow me to share WPPM - a WordPress plugin management service which automates publishing your WordPress plugin to WordPress.org or for private distribution. No more bumping version numbers in multiple places. No more custom code to manage updates. No more SVN! Simply connect WPPM to your Git repository and let it automate everything else - be it versioning, changelogs, publishing, even licensing and distribution.
Key takeaways
Alright, while this post is about sharing my recent side-project, it's equally about working on side-projects in general. Here are 3 key takeaways when working on side-projects.
Launch as quickly as possible
As the time spent building your side-project increases, the chances of launching decrease. The goal is to launch (use) your side-project. I appreciate MVP versus MUP versus SLC. In the end, it's all the same. In the beginning, getting something (even "incomplete") in the hands of real users sooner allows you to iterate faster. Iterating gets you from MVP to SLC faster. Or, it gets you to failure faster. Getting to either, faster, is invaluable.
Partner early
If you are going to partner, the earlier you partner the more ideation you do together. This increases the shared vision, future buy-in, and asynchronous roles. Partnering later, at the least, leads to rework. At the worst, resentment. Rework isn't so bad so long as it's forging the partnership. But it is nonetheless slowing your down and, as such, preventing you from launching as quickly as possible.
Determine your signals
When working on a side-project, you'll get a lot of signals. Internal signals. External signals. Time itself is a signal. You have to decide which to react to and treat the rest as noise. I prioritize time, my interest, and customer feedback. All three need to have a strong signal. For example, if I'm interested in side-project and it has customers, but it takes a lot of time it probably won't succeed for me. What has a better chance is a side-project which provides a return on my time, holds my interest, and receives real customer feedback. Determine the signals that make your side-project "successful".