Flipper 1.0
2 min read

Flipper 1.0

I've been writing Ruby (and Rails) for a long time. My first giggle and snort experience with that combo was 18 years ago. Nearly two decades folks! My Ruby experience is old enough to vote! It's headed off to college next year.

According to rubygems, I have released 67 different gems. Those gems have been downloaded an astounding (to me) 624 million times. At this rate, I'll join the 3 comma club for downloads in the next few years. HTTParty alone has half the downloads of Rails itself.

What's more is these gems aren't just used by your nephew on their geocities website. In fact, multiple billion dollar companies (GitHub, Shopify, GitLab, Chime, etc.) have some of them in their Gemfiles.

I say all this not to brag, but for comedic effect. Because for all that popularity and usage, I've never released a version 1.0.0. Never. Not a one. I pride myself on stability and backwards compatibility. But even my oldest living and breathing gem, HTTParty, is currently at 0.21.

It's time to rip off the bandaid. As they say, "You never get a second chance to make a good first 1.0." So here goes nothing.

Welcome to my first 1.0.0 gem – Flipper.

The One

To me, it's fitting that Flipper is the first to hit 1.0. You might not know it, but its long been my favorite. HTTParty led me to open source burn out. I've since recovered, but it could never be the one.

Flipper was just a beautiful random weekend. I cranked it out for fun because I wasn't overly happy with rollout and thought I could do it better.

Fun fact: I didn't use Flipper for the first couple years after it was released. I wrote it, released it, maintained it and other people used it – but I didn't. I was at GitHub at the time and they were mostly using ENV vars to release things.

Then, one day while on paternity leave after the birth of my son, a few co-workers (Rob and Adam) decided to level up how GitHub released and they chose Flipper. They did all the work of integrating it and even contributed back several top notch pull requests.

And just like that, the gem that I loved became one that I used. And I used it like crazy. From moving notifications off the primary database to its own server, to safely migrating terabytes of memcache over the course of a few days, I got to do some cool stuff with Flipper at GitHub.

The Approach

I also took a different approach with Flipper.

  1. Instead of being the lone httparty wolf, I added people as maintainers as soon as they had a couple solid pull requests.
  2. I wrote docs (wild because I was "anti-docs just look at the code" before).
  3. I built up a plethora of examples.

All of this lead to an extremely stable (as it must be) piece of software with a good community around it.

The Future

I love Flipper. I want to work on it more – all the time. So that's why some great friends and I are turning it into a business. We helped build a lot of cool internal dev tools (at GitHub and elsewhere) and we want to unleash them on the world – starting with Flipper.

Over the past couple years we've toyed with Flipper Cloud. We're done toying.

We're done with 0.x software. We put on our big person pants and went 1.0.

But 1.0 is just a number. It doesn't mean we are serious.

What would indicate seriousness? Head on over to The Friday Deploy, the new "official" blog for Flipper. The tldr is we are:

  • committing our money.
  • hiring an awesome person.
  • releasing a free tier to Cloud.
  • creating new ways for you to support Flipper.

That's all I have for now. Time to bask in the maturity of my 1.0 piece of software. Happy flipping!

If you enjoyed this post,
you should subscribe for more.