Like GitHub we turned 10 years old this year. In April, to be precise. Phusion grew up and so did its individual team members. We are 5 (new) parents, we bought and remodeled houses, we got married. That all brought a new sense of responsibility.
Lately we made a serious commitment to diversify our portfolio as well as to actively participate in the open source community again, something we at least haven't been too open about. I guess we were too busy building a company.
Bear with me while I reminisce over my ‘boyhood’, a coming of age story.
Our road trip commences
Phusion Passenger’s first strides (as mod_rails) were made January 25, 2008. We bumped the version to 1.0.1 on April 11 that year. Back then deploying Rails apps was a huge pain. The first Ruby application server of its kind, Passenger allowed for easy deployment: no more fiddling with settings, just upload & go. Today Passenger counts well over 4000 stars on GitHub, close to 500 forks and serves over 650,000 sites.
On April 2, 2008, Ninh Bui and I founded Phusion, with the belief that server maintenance shouldn’t be difficult. April 29 we bumped the Passenger version to 1.0.2 and wrote our very first release notes on the Phusion domain. The old Phusion blog - appropriately named old.blog.phusion.nl - is a real treat, filled with pictures of us Apple fanboys and anecdotes, like from that time that Jim Weirich helped us with our slidedeck (RIP buddy).
Mid 2008, we thought of Phusion as a consultancy firm. That'd allow us to fund our way through university (and possibly further adulthood), and give us the sense of freedom that can only be achieved by being your own boss. With only two laptops and about $500 in savings, we didn't have a lot of capital to work with when it came to customer acquisition.
World meets Phusion
In May 2008 Ninh and I held our RailsConf keynote "mod_rails: easy and robust deployment of your Ruby on Rails applications on Apache webservers". We released Passenger 2.0 shortly thereafter, as well as a curious thing called Ruby Enterprise Edition.
Back then ‘enterprise’ was a insiders joke really, referring to people claiming Rails was not ‘enterprise ready’. ‘Ruby Enterprise Edition’ was actually a very real Phusion product. People could also buy ‘Passenger Enterprise’, which at that point just meant making a donation in return for a badge on your website, and an entry in our Hall of Fame.
But I digress. We wouldn’t have been able to attend RailsConf if it wasn’t for one of our early customers: Soocial, later acquired by Viadeo (Soocial's founder now has a new startup: pr.co). In 2017 part of the team (some new to the Rails community entirely) returned to RailsConf, this time in Phoenix, Arizona.
Growing up and branching out
Consultancy was fun for a while, but we quickly noticed a few problems. Constantly hunting for new clients is frustrating. Revenue is unstable. Time we spent on getting consulting gigs comes at the cost of not developing Passenger. We decided to turn Phusion into a product company. On September 15th, 2012, we launched Passenger Enterprise (with this gem). The goal was to monetize Passenger from the start; so that all of its revenue could be directly reinvested into Passenger.
To celebrate entrepreneurship, we decided to organize a conference called BubbleConf September 2013, in Amsterdam. Close to 400 people from all over the world attended the conference covering the topics we felt were most important for tech startups: tech, design and entrepreneurship.
We were early adopters of Docker, having used it in production since version 0.6. However, after careful analysis, we found out that Docker was susceptible to the PID 1 zombie reaping problem. In order to mitigate this problem, we published baseimage-docker1 in early 2014. For years since, this image was the most popular third-party Docker image on the Docker hub as well as the most popular Phusion product, with 6360 stars and 847 forks on GitHub. We are happy to see that nowadays a solution to this problem has found its way into Docker core.
In order to help Passenger users make optimal use of Docker, we released passenger-docker around the same time. This is a set of Docker images meant to serve as good bases for Ruby, Python, Node.js and Meteor web app images.
On March 4th 2015 we launched ‘Raptor’, the code name for Phusion Passenger 5, introducing major performance improvements as well as a new HTTP JSON API, better logging and better WebSocket support.
In 2016, one of our long-awaited dreams came true. For years we were based in Enschede, a remote part of the Netherlands, because our university was located there. However we wanted to move to Amsterdam for a long time, not least because of the business opportunities. In October that year we moved into our current Amsterdam office.
Inspired by Basecamp's Signal vs Noise 'Bootstrapped, Profitable and Proud' stories, we decided to share our own story of $1,000,000+ in annual recurring revenue (ARR) without taking any VC investments, in 2016. At the April 2017 AMSxTech conference Ninh shared why Phusion decided not to take VC money and stay bootstrapped.
March 29th, 2018 we launched the Fuse Panel, a UI solution to work alongside Passenger. Remember how we said we're diversifying our product portfolio?
We’ve made great strides automating Passenger and can afford to think about a Phusion imperium. Our roadmap for 2018 includes a whole new product range, and our docs for Passenger will get a massive UI overhaul. We hope you’ll stick around for the long haul.
Hang on! We have some shirts left from ‘the olden days’, with the original graffiti logo. First ones to claim one, will get it shipped all for FREE (we might even throw in some other goodies): send an email with your shirt size to firstname.lastname@example.org
One more thing. Phusion is hiring Fullstack engineers and a Sales / Account Manager (or: Customer Success Manager). Check out our jobs section!
Illustrations by Nick Visser.