Using GitHub to deliver a paid product
GitHub has become the de facto place to host open-source projects, for good reason. But it’s also a great way to deliver code-based products to paying customers. Here are some of the reasons why we use GitHub to deliver HackerEngine to our customers.

Painless access management
Once we receive payment via Stripe, we use the GitHub API to instantly add customers to the HackerEngine repo. We are using the $25/month Organization plan, which gives us the ability to add an unlimited number of customers to the private repo. GitHub also provides a simple web interface to manually add or delete members.
Fast and easy releases
Giving customers access to the repo means fewer headaches when we need to squash a bug or push a quick release. Every commit is instantly available. Customers can be notified of new commits and see exactly what’s been changed.
We can also use Git branches to release in-progress or experimental work to customers who’d like to act as beta testers. The time between pushing code and getting it in front of customers is reduced to zero.
Reliable delivery of assets
Once we push code to the repo, the GitHub infrastructure handles all aspects of delivering it to customers. This may seem obvious, but the advantages of not managing the delivery of assets is huge. The GitHub infrastructure is extremely reliable, and can potentially save a lot of money over other distribution options.
Long-term customer value
At this early stage of our product, there are a number of things we’d like to improve, and new features we’d like to add. Since customers have permanent access to the repo, early adopters will have access to the same product as customers who purchase later.
This can be a great selling point. Customer development is about finding the right fit between a product and the needs of your potential users. The young product you are offering now becomes a lot more valuable once customers are given access to all future updates. This is how SaaS works, and using GitHub to deliver a code-based product provides the same advantage.
Built-in customer support
The tools that come with every GitHub repo — pull requests, issues, and wiki — are perfect for customer support. Customers can easily point to a specific file and a specific line of code when talking about an issue, and that information is visible to all other customers. The conversation around your product becomes centralized in one location.
And given how easy GitHub has made pull requests, there’s even an opportunity to have customers contribute to the development of the product.
Others using GitHub to deliver paid content
We used this strategy at thoughtbot to deliver our Backbone.js on Rails eBook. It allowed us to start selling the book as soon as we began writing, and has been a big success. Ben is also using GitHub to distribute his book, Speaking for Hackers.
…one more thing
Since the HackerEngine site is powered by the HackerEngine product, we provide our customers with the code we use ourselves. However, we did decide to remove the code that handles GitHub integration to make it easier to explain the product to our first customers.
Are you a current or potential customer who wants this functionality? Drop us a line and we can push the code back into the repo.
And that’s the beauty of using GitHub to deliver a product.