Fresh off Shopify Unite 2018, I wanted to share my thoughts as a developer. I’ll be talking about the conference itself, some of the new technologies announced, and few of the issues that were fixed. I’ll also give a higher-level look at where the platform has been and where it seems to be going.
I won’t get too deep into the technical weeds here, or talk too specifically about the new opportunities presented, but rather I’ll give more of an overview on where I feel like Shopify stands in the eCommerce ecosystem.
Shopify developers use the same APIs that we do
Almost every pop-up talk, lightning talk, track and sandbox I attended mentioned the fact that Shopify’s own developers use the exact same APIs as partners and merchants.
In other words, Shopify doesn’t supply themselves with any secret APIs that we don’t know about. That may seem banal, but it felt as though this point was really stressed intentionally, and I think that’s for two main reasons:
-
To assure partners the APIs are really good.
They are good enough that Shopify’s own developers can use them internally and create amazing things such as the Shopify admin panel: all the different sales channels apps like Facebook, Instagram, Google Shopping, Pinterest, Shopify Flow, and first party apps like Shopify Product Reviews, Order Printer and more.
Every single merchant on Shopify depends on the Shopify admin panel. If the APIs weren’t good enough, Shopify most certainly wouldn’t build the admin on top of it. Partners simply cannot say in good faith the APIs aren’t good or robust enough to help them build their business.
-
To kill two birds with one stone.
By creating, updating, and improving their own internal APIs, they’re also creating brand new resources for app and theme developers. This means, by default, Shopify is extensible. Shopify wants to create new capabilities for themselves, which in turn automatically creates new capabilities for partners and merchants. It’s a win-win situation.
This is a sign of a well-built platform, and it should really give partners and merchants the confidence they need to continue relying on everything that Shopify supplies.
Shopify is not afraid to evolve their platform with cutting edge technologies, legacy data be damned
Platforms often die or get overtaken by someone or something new because they’re stuck with old technologies and legacy data they have to support forever. This is because new programming language, framework or software that was amazing 10 years ago is not so amazing anymore. I.e. The data structure that made sense in 2008 is incompatible with the needs of 2018.
The problem with modernizing any of these old decisions is that hundreds of thousands of merchants and thousands of partners and developers rely on these old ways to run their business, thus making upgrading or making wholesale changes to software, data structures and other underlying technologies incredibly scary.
Migrations are really difficult, as many companies will tell you!
Shopify is not bogged down by these fears. They are aggressively pushing a relatively new technology: GraphQL with their GraphQL admin APIs to eventually replace their older REST APIs. As previously mentioned, Shopify uses their own APIs to build their own product, so they’re swapping out their entire foundation on the fly. REST APIs still work very well, are widely used, and will be continued to be used for years to come.
But in 2018, it’s clear that REST does have its shortcomings, shortcomings that weren’t necessarily an issue when Shopify originally opened up shop. Shopify identified those shortcomings and seemingly does not want to settle with a technology that still works fine. They saw an opportunity to improve and stay up-to-date with better technologies and they Went For It! They’ve made all existing APIs backward-compatible with GraphQL, and didn’t have to break anyone’s data in the meantime, which is certainly no easy task.
React is another relatively new technology that Shopify is pushing hard. It may be mature in relative JavaScript framework terms, but it’s still very new. Nevertheless, Shopify is staking it’s developer reputation on it. This year, they announced improvements to their own design system called Polaris, which is built on top of React. Originally released last year, they’ve doubled down on Polaris, adding new features and improving old features, signalling that their support for React is here to stay.
They’re telling any developer who will listen to build their apps on React, and that they’re building tools to make working with React and Polaris easier. They’re also building their own apps on React and Polaris, sticking with the trend of using the same technologies internally that they supply to their partners.
Shopify understands issues that partners have and is aggressively building tools to fix them
Shopify is a great platform, but not every part of their offering is easy to work with. As partners, we’re responsible for making great themes and tools that merchants can use, and Shopify wants to keep it that way. By constantly using and improving their own platform and hearing Partner feedback, Shopify identified some of the major issues that Partner’s face when developing for clients and merchants.
They know getting apps to talk to each other is a painful process. Apps are great, and can fairly easily extend functionality on a merchant’s shop. Most of the time, however, they don’t talk to each other. Previously, if you wanted to connect your wishlist app to Klaviyo, for example, you had to employ some kind of hackish solution, or hope that the wishlist app and Klaviyo would eventually get together and connect things directly.
Now, with Shopify Flow Connectors, apps can define triggers and actions. A trigger allows apps to define some kind of an event that happened. An action allows apps to define some kind of action that should be taken. In between, Shopify Flow allows merchants to configure exactly what the parameters are for a trigger to result in an action. It’s pretty neat.
Now, you can have apps talk to each other! Imagine a situation in which a wishlist app developer creates a trigger called “item added to wishlist,” and Klaviyo creates an action called, “Track as Klaviyo event.” (In fact, they’ve already created it!!)
If a customer is logged in, and they have the “accepts marketing” property enabled in their account, when they add an item to their wishlist, you can track that event in Klaviyo.
This tracked event can be tied to a campaign in Klaviyo that allows you to send a follow up email to customers later, reminding them that they previously added an item to a wishlist and should complete their purchase at some point.
A few more examples:
- Your live support app can also send you a Slack message
- A reviews app can add points your customer’s LoyaltyLion account
- Your search app can save data to a Google spreadsheet you’ve created.
... and a whole lot more! The possibilities are endless.
All of these things were technically feasible but certainly not easy. It was time consuming, and was prone to break when the apps changed their code since there was no standard spec in place. Now it’s fairly trivial, and has almost unlimited business logic configurability by the merchant.
Shopify developers seem genuinely interested in collaborating with partner developers
Shopify’s internal developers are increasingly releasing more open source tools and goodies, and they want your feedback. After every pop-up talk, there was a Q&A. Inevitably, every Q&A would contain a question like “would it be possible to do this?” and inevitably, a Shopify developer would say, “no, not currently but we’d be happy to add it.”
They seem genuinely interested in working hand-in-hand with partners to give them the most powerful tools possible, and that’s important to establish a true partnership between Shopify and the members of its partners programs.
Shopify has worked hard to build state-of-the-art infrastructure, and want you to use it
One of the most impressive tracks I went to was titled “Building Scalable Apps” by developer leads Adam Archer and Joe Pym. They began by again insisting that they were using the same exact technologies and APIs internally that we are using as partners, and went through the process of creating a brand new gigantic app that serves millions of customers, and handles millions of requests from scratch.
In this fictional scenario, they ran into the worst case scenario every step of the way, and explained how to get out of it. In doing so, they drew out the entire infrastructure that they have to support the entire platform, including redis, queues, and marking and sweeping methodology. They’ve clearly run into every problem possible, and the platform is still humming along smoothly. They made me feel confident that the infrastructure in place is solid, and the architecture is well thought out. They also convinced me that building all this infrastructure was a ton of complicated work.
Think about it: they have millions of merchants, some with millions of products, connected to some of the biggest services in the world (like Facebook, Instagram, Pinterest and more) and it all seemingly runs without a hitch. Which is great, because they’re making this same infrastructure available through things like Shopify Flow Connectors, Kit Skills API and more. Now, we don’t have to replicate all this infrastructure as we scale our own apps, we can simply hook into the great things they already have in place and we can all be confident that Shopify can handle apps of any size and complexity.
Closing thoughts
In a non-technical sense, I was incredibly impressed with Shopify in a number of different ways:
- The attention to detail in every aspect of the conference, particularly the little things: signage, branding, marketing, presentations, catering, flow of the events and much more.
- The general vibe of Shopify culture. Every member of the team I interacted with, whether via scheduled talk or one-on-one, was incredibly friendly, personable, and seem to genuinely believe in what they are doing and, maybe more importantly, enjoy what they are doing.
- The connected nature of the company. There are a ton of teams working on different things, but each team seems to have the big picture in the back of their mind, seemingly driven by the overall company philosophies.
I went into the conference with my confidence about Shopify’s future wavering ever so slightly. Working with the platform day-in and day-out makes you intimately familiar with some of the shortcomings. The annoyances get magnified when you’re too deep in the weeds. It was good to step away for a few days and get a much better feel for the breadth of the platform and the overall plan put in place by all the disparate teams. This really gave me the bigger picture view of the cohesiveness of the platform. I came away with my confidence no longer wavering. I will definitely continue full steam ahead developing on Shopify.
I also went into the conference thinking that the market for merchants and apps was somewhat saturated. It seemed like all of the good ideas had already been built, and the opportunity to enter the market was shrinking. Between new technologies, opportunities to enhance old technologies, the partner marketplace and much more, I left with a very different opinion. I came away thinking there are limitless opportunities for growth, and improvement. I believe that app and theme developers, old businesses and new businesses alike, will thrive on Shopify. And I’m privileged to be a part of it.
Thanks for the great week, Shopify!