"Eating your own dog food" is a colloquial expression that describes a company using its own products or services internally. The term is believed to have originated with Microsoft around the late 1980s, although its true origins are still debated. Regardless, the message is clearly conveyed.
When developing a software product, you should be the one who uses it first. Not only for testing or quality assurance, but also for actual production use cases. Be your own client and build it for yourself. This will ensure that you ship code that matters, improve its usability, and define a roadmap tailored to real needs. In this way, you will truly make your customers happy, since you are one of them and wish to have the best product for yourself.
"Eat your own dog food" has become a mantra at Commerce Layer as a way to improve our API for developers. During our journey, we began by designing a unified API that would abstract commerce data and logic from any presentation layer. Our goal was to create an API that we wished existed for ourselves. Then we developed a Typescript SDK using our own API, followed by a library of React components built on top of the TypeScript SDK, followed by Micro frontends and Apps utilizing the React components. The admin Dashboard is built on top of the Apps and recently, we introduced Links as a no-code way to use our Micro frontends.
There are several layers in the stack, each of which consumes the layer below. APIs are the dog food that we eat when developing SDKs. SDKs are the food that we eat when we build React components. You get the idea. And I can assure you that our API would not be nearly as good without the SDK that is built on top of it. In the same manner, our SDK would not be nearly as good if we did not build a library of React components on top of it. This is also true for Apps, Dashboard, Micro frontends and Links. Now we are launching a new product built on Links and, ultimately, the Commerce Layer API, which serves again as the dog food for our developers—stay tuned!
"Eating your own dog food" is a simple approach that can make a huge difference. It is the difference between a good-enough product and a product that customers love. It is also so universal that it can be applied to most any use case, even those beyond software development.