You don’t get to decide if your product is a platform

by Brian Doll on March 07, 2017

On the Shoulders of Giants - ❤ Keith Haring

The market does. Your customers decide. You can make it possible, but you can’t make it true.

This topic came up with a recent client of ours, and I wanted to elaborate on what I think this means.

In ascending order of perceived value, that thing you’re building might be a tool, a product, or a platform. The allure of the platform is that you’re in charge. Other companies build on top of what you’ve built. You are the shoulders on which they stand. You are the platform, and you are intensely valuable.

In the software industry, GitHub is the platform. Not only are 20 million people using GitHub to work on over 50 million projects, but seemingly every product aimed at helping software developers integrates with, and is built on top of GitHub. In 2017 it is clear that GitHub is a platform, but in 2008 it wasn’t. How did this change over time?

In the beginning

We call something a platform when a significant number of products are built on top of it. When we say “built on top of” we mean “integrated through an API”. The GitHub API was released in March of 2008, a few weeks before GitHub was officially launched. A complete, reliable, versioned, and sane API is essential for any product to become a platform, but it’s not enough on its own.

Business Development via API

For the next several years, and before there was an official business development team, GitHub employed what I’d call “business development via API”. When a company wanted to know how they could “partner” or “work together” in some way, the answer was the API. The same API (GitHub Service Hooks, and OAuth Apps too) were available to everyone.

When I joined GitHub in 2012 I started spending time with people building interesting products on top of the API. There were thousands of products that had some form of integration with GitHub at the time. I did more listening than talking. I wanted to know what they wanted, why they wanted it, and what GitHub could do to help make software development better for everyone. Along with many of the engineers that worked on the API and service hooks, these informal conversations went on for a year and a half before we began hiring for business development roles specifically.

Deeper Interactions

The Commit Status API was the first integration option that made it possible for 3rd party products to effect the GitHub UI. Its critically important you put as much thought into the design of the interfaces and interactions 3rd party products have with your product, as you do with the rest of the product. Think carefully about what surface area of your product is up for modification. What you get in scale, you lose with control.

Formalizing Relationships

Six years, almost to the day, after the GitHub API was first introduced, the GitHub Developer Program was announced. The program makes it easy for GitHub to let developers know about upcoming API changes, hear feedback from integrators, and formally spell out what the relationship is between GitHub and the companies that integrate with them.

The Platform

Eight years after the first commit, and a year and a half after the launch of the developer program, the GitHub Integration Directory was launched. This is the external expression of GitHub as a platform. This is the showcase for all those companies that have helped make software development better for everyone, building on top of the biggest software platform in the world. There are over 130 different companies building great products, enhancing the software development experience across a dozen categories — from chat, code quality, deployment, project management, and security.

How To Platform

WeChat is an incredible platform and they were able to achieve that pretty quickly. Twitter has aggressively fought developers to ensure that they are not a platform. Whats your plan?

There are many steps along the way from product to platform. Build great APIs. Support early integrators. Listen to feedback. Consider how 3rd parties can make your product better. Design for integrations. Play nice. Formalize relationships. Make it easy. Listen, listen, listen. And maybe. Maybe. Dozens or even hundreds of other companies, over several years of working with you, will decide that yes, what you’ve built is a platform. And you say thank you, and serve them well. Because without them, you are not a platform. They decide.