As a Shopify app developer or technical merchant building your own apps, there are two ways to create new apps: either the Shopify Partner dashboard, or in the admin of an individual Shopify store.
But it’s not always obvious how and when to use the different options for your specific use-case. It comes down to what your app is meant to do, and the trade-offs you’re willing to make.
So should you create a Shopify Partner app or a Shopify admin app? We recommend using the Partner flow, but the easiest way to explain the difference between the two, and the tradeoffs, is to look at what you can and can’t do with each of them, starting with admin apps.
At a glance, building an admin app looks to be the simpler option, because it typically involves less time and effort when compared with a partner app. With a Shopify admin app you save some time because you don’t have to build the OAuth flow required for a partner app (spoiler: Gadget solves that for you), but there are several important drawbacks.
Admin apps don’t support Shopify App Bridge to display an embedded app. That means there is no embedded app UI for merchants to interact with the app. If you need to provide instructions, display data, or allow for configuration of the app, you can’t do this with an admin app.
Admin apps can’t use app extensions, which severely limits what your app can do. App extensions power various types of merchant and buyer functionalities and surfaces across admin, storefront, checkout, and POS. Things like Admin links, Checkout UI extensions, Functions, post-purchase functionality, Theme app extensions and POS functionality are all powered by extensions.
Admin apps don’t have an embedded UI and can’t support billing. They can only be installed by one merchant, and can’t be published to the app store. Maybe that’s ok if you’re building it for yourself, or you don’t need to charge merchants for an app. But partner apps can achieve the same outcome.
Although admin apps can use webhooks just the same as partner apps, the developer experience of building admin apps can be more frustrating. Unlike partner apps you can’t go into the Shopify Partner dashboard to inspect what webhooks Shopify emitted, and when.
This limits your debugging process for your app if it isn’t working. Is your app’s webhook processing logic not working, or is Shopify not emitting webhooks as expected? It is not uncommon for Shopify to have delays in emitting webhooks, which is easy to check in the partner dashboard. But with an admin app, this is not possible, so you’re left guessing.
All of the things admin apps can and can’t do, Partner apps can. Every app you’ve probably used has likely been built as a Partner app.
Because Partner apps can be used both as public and custom apps, support embedded UIs and app extensions, and have a better developer experience, most Shopify app developers choose to use them.
The main drawback for building partner apps is that you need to sign up for a Shopify Partners account to create and manage your app. But it’s free, and it’s very little effort for all the value you get. Plus, it allows you to create free development stores to test your apps on before installing it on a real store.
If you don’t need an embedded UI or care for the OAUth flow, it may feel like an unnecessary lift to add them, making partner apps less attractive. But because both of these come out of the box with Gadget, there is no difference in effort between them, which leaves the partners flow as the best option for any app build.
When you’re building Shopify apps in Gadget, there’s no difference in the effort it takes to build an admin app or a partner app for Shopify. Because Gadget handles so much of the boilerplate setup for you (like OAuth), both take 2 minutes to set up, from creating your Gadget project to having it installed on a Shopify store.
We recommend always using a Partner app when building with Gadget. You get all of the benefits from both options, because we handle the annoying setup for you, which removes one of the few benefits of building an admin app. You get an embedded app UI out of the box for your partner app, and have the flexibility to add things like extensions without any extra effort.
Do you have questions about Gadget, apps, or anything else Shopify-related? Join our developer Discord to chat with Gadget employees and the community!