I was excited to see Kenneth and his team ship the public beta of the Stripe App platform:
I was excited to dive into it, as I know that the developer experience would be high quality, and I wasn’t proven wrong. Great CLI experience. Great docs. What you have come accustomed too. As I read through the anatomy of what you are able to do with apps, I could see a lot of similarities with Shopify’s app platform.
The body of a Shopify store
Let’s dive into some anatomy. When chatting with one of my favorite new PMs, Ben Sehl, he shared an analogy of how a store is like a body… a metaphor which I will now abuse to kingdom come:
When you create a Shopify store, you get a simple, yet fully functioning experience… like a human with simple attire, let’s call them Shopi. How do you want to take this base and make it your own?
The first step that products and platforms give you is the ability to tweak the look and feel. This is where you start with theming. You can dress up Shopi in many ways, and make them unique. You can make the clothing yourself, or you can find manufacturers (theme developers!) that have pre-built quality goods that you can then customize from there. As the platform matures, so does the supporting ecosystem.
Now, there is a lot that you can do with the look and feel, but you quickly find that you need richer customizations. This is when the app platform comes in (often called plugins/extensions). The platform controls what can be extended. Can you replace limbs? The heart? The brain? How do you do this in a way that doesn’t destroy the body? A great platform allows for layers of extensibility, which is as much art as science. This is the type of work I love doing, and I am excited to see Shopify continue to refine these layers.
Systems such as nervous, circulatory etc can be the glue that makes everything work well. This is the platform doing its job at regulating everything. Connecting things and making sure any one extension doesn’t blow things up. Acting as an engine for connectors and workflows like Shopify Flow.
If you look deeper at Shopify and the Stripe platform, you see a variety of surfaces that offer extension points… e.g. the Stripe Dashboard, or the Shopify Admin. These surfaces have specific extensions with rich context. They offer embeddable UI points, with building blocks to have your extensions fit in (e.g. components that feel consistent for the users of that surface). These extensible app platforms have a variety of surfaces. In Shopify, you can ship an app that enhances the Admin for merchants, or Checkout for users, and more.
NOTE: I was particularly excited to see that Stripe is using the open source remote-ui library that we created and use in Shopify:
Ok. So, at this point, Shopi, is looking great with awesome clothing, a bionic arm, Tony Stark’s heart, and AR glasses. But you may want to customize EVEN more. This is where custom storefronts come in for Shopify. You can tie into the nervous system still via API (GraphQL or REST), but the body can be entirely different… with you building many more layers as you eschew the defaults. It doesn’t even have to be a binary choice… you should be able to weave together custom and the core headful experience.
I look forward to a future where merchants can customize their own Shopi to be exactly what they need, working with the foundations that Shopify gives them, and the creativity and skill of the developer ecosystem to provide apps, themes, and custom storefront work.
I’m also excited to see more extensible app platforms such as Stripe’s, and we share ideas and technology to raise all of the boats.
Extensibility is going to go from changes to the appearance, to bionic improvements, to providing genetic modifications.