It's been a little over a year since I launched the Cart Saver application for Shopify, my first foray into a running a legitimate product-based business. To say the least, the journey has been a rollercoaster. One day you get an inordinate amount of new subscriptions and you're on top of the world, the next day you're deflated as you get another e-mail about that feature people keep asking for that is just not possible to do on Shopify (not yet at least). At the end of the day, your customers are your biggest motivating factor. Nothing in my professional career has been more fulfilling than building something that creates value for others and helps them run their business.
If you're a solo developer looking to bootstrap a business, leveraging a platform like Shopify is a boon. The applications businesses need to compliment Shopify tend to be small enough to manage on your own, but the value added can be immense. It's not uncommon to see Shopify applications listed for sale on the FEInternational website that are serving thousands of customers and making five-figures of monthly recurring revenue.
That being said, there are some challenges unique to building on a platform that you have no control over. The following are some lessons I've learned from my time building on Shopify. These are by no means rules to live by, but hopefully it will provide some food for thought when you're making decisions about your business.
Build for the Shopify audience
There are some facts inherent to Shopify's business model that make it especially appealing to a certain type of e-commerce business. They are largely small to medium-sized businesses that don't have a big budget for tech. Their main product is what they are shipping to customers, not the shop itself. Offloading the tech concerns to Shopify in exchange for not having full-control of the platform is a good value-proposition for them.
Your customers will likely not be software developers, and won't have a software developer on staff. This means it's important that your application can be installed without the customer needing any technical know-how. It also means that there is a large market for automating simple technical tasks. That's why you'll see popular apps that do things such as add banners to the top of a store or create a countdown timer. The functionality is small and simple for a developer, but Shopify users are looking for no-code solutions.
Most of the stores are B2C (business-to-consumer). They are worried about competing (or integrating with) Amazon, increasing customer engagement with their brand, building hype, selling many small orders vs few large orders, etc. Before you write any code, consider how it fits into this market, or any segment of this broad category.
It's not uncommon for shop owners to go through the Shopify app store installing apps to test them out before knowing whether they actually need it, not unlike how you would imagine people installing apps while browsing Apple's iOS app store. That means you can quickly lose their interest if you don't make a good first impression. Get the point of your app across quickly, get them excited about it, and show them the potential value you can add. Preferably, hit all of those points as the first thing they see after installation.
Don't get too creative with workarounds
You may have a great idea that the users of Shopify would love, but it means nothing if the platform doesn't support what you're trying to do. I've seen all manner of workarounds implemented by apps, hacking together tenuous solutions that are ready to fall apart the moment Shopify makes a change to their platform. If it's not supported in the developer documentation, you need to be prepared for Shopify to pull the rug out from underneath you. Anything that is critical to the functionality of your application should have the metaphorical rubber-stamped seal of approval from Shopify.
Keep things flexible
In the startup world, you hear all the time about iterating on customer feedback and pivoting until you achieve product-market fit. That's easy when you have full-control over your product, not so easy when Shopify forces you to make decisions that will have a lasting impact. You'll have the same customer feedback loop as you would with a typical software product, so make sure you're in a position to iterate toward product-market fit. That means resisting the urge to name your product after a specific feature, thinking twice about how your application is installed on a store, and being careful with how you use the application proxy feature among other things. Give yourself the flexibility to tweak what it is your application does.
Identify potential conflicts with other apps
When you're building a Shopify app, don't picture how it's going to function on a fresh instance of Shopify with an unedited default theme and no other apps installed. This is not the reality you will likely be stepping into. A store might have one app that is generating discount codes that get automatically added to a checkout, another that has pricing information that is walled off in their own server, apps getting creative with the use of metafields. It can be quite the free-for-all at times. Despite all of that, people are going to expect that your application will install easily and work flawlessly. Will your application fail if all your customers are using a WYSIWYG to design their pages?
Hopefully this post will help you avoid some headaches before you start building your own apps. If you're on the fence about getting started, just do it! Though Shopify's app store may look crowded, there are still mountains of potential to be unearthed. Not only that, but the platform is continuously evolving, and in the process, creating new opportunities for ambitious developers.