On Building Custom

On an almost weekly basis, I’m forced to consider whether to build custom software solutions or use open source / off-the-shelf products and frameworks.

And when it comes to eCommerce, there’s no shortage of powerful solutions, all capable of allowing customers to browse, buy, and receive products. Whether self-hosted or cloud-based, they all collect payments, manage and track orders, and facilitate shipping of products to those who buy them.

My philosophy on building custom versus using off the shelf software is guided by a simple question:

Do you have a clear understanding of the user experience and outcomes you’re trying to achieve?

Relying on a 3rd party software platform is a great way to get up and running quickly which is helpful when you’re experimenting with a new idea. Starting a business is not easy and this is where existing platforms have an upper-hand. Want to know if anyone will buy artisan pottery through the internet? In less than an hour, you can have a shopping experience online and begin to find out.

After some time, you might have a thriving artisan pottery business on your hands. The next step is to optimize and improve the user experience. As you discover what works and what your customers want, you’ll want to add complexity that many off-the-shelf platforms don’t support. You can certainly shoe-horn features into these systems and customize the look and feel. Some platforms are more configurable and extendable than others — but when it comes down to it, you’re still building on top of a software system you don’t ultimately control the roadmap for.

During our initial phase of experimentation at Tonx (now Blue Bottle), we used open software platforms and hosted recurring payments. We developed a clear understanding of the ideal user experience and after some time, built custom software around that experience. Everything from subscribing, shopping, payments, shipping, fulfillment, and cup logging is a custom-tailored feature on a powerful, modern software stack we’ve been developing for just over a year now.

While we rely on cloud services and open source software heavily for everything we do, our core web application is custom-built to serve the needs of our customers. We’ve found this gives us ultimate flexibility in crafting new experiences and rarely leads us down a road where we make product decisions based on software. The software is a means to an end — that end is the best user experience for those who subscribe and shop with us.