SHOPIFY APPS · APPS · TECHNICAL · 29 MAY 2026 · 7 MIN READ
When a custom app becomes a product
You built something for one store and it works. Turning it into an App Store listing is not a distribution change — Shopify will not let it be one. It is a second app and a second business.
Rarely, and almost never as a follow-on from the app you already have. Shopify's documentation is explicit that "You can't change the distribution method after you select it", so a custom app cannot be promoted to a public one — going to the App Store means building and submitting a separate app while the original keeps running. The question is therefore not "should we publish this?" but "should we start a software business, given that we already have a working prototype and one reference customer?" That is a different question with a much higher bar, and for most merchants and most agencies the honest answer is no.
IN SHORT
- Shopify states that "You can't change the distribution method after you select it" — publishing a custom app means creating a second app, not converting the first.
- Custom distribution installs on a single store, on multiple stores in the same Plus organisation, or on transfer-disabled development stores, and requires no Shopify approval.
- A custom app "Can't charge merchants through Shopify's app billing system"; a public app is required to "Use Shopify App Pricing to charge for your app".
- Every app distributed through the App Store must subscribe to `customers/data_request`, `customers/redact` and `shop/redact`, and must respond "regardless of whether the app collects personal data", within 30 days.
- Public apps must not "reduce Lighthouse performance scores by more than 10 points", must use App Bridge and session tokens rather than third-party cookies or local storage, and cannot be submitted if they use APIs due for deprecation within 90 days.
- The engineering gap between a custom app and a product is not features — it is multi-tenancy, configurability, onboarding and an upgrade path, none of which the custom version needed.
- Support, not development, is the dominant ongoing cost of a published app, and it scales with the number of merchants rather than the amount of code.
- The strongest case for going public is that you have already been asked for it by merchants who are not you — repeatedly, unprompted, and by people willing to name a price.
The decision Shopify already made for you
Most teams arrive at this question assuming the path is gradual: build it for ourselves, prove it, flip a switch, list it. That path does not exist. Shopify's distribution documentation states plainly that "You can't change the distribution method after you select it", and the two methods differ in ways that matter from day one.
A custom-distribution app is "Installed on a single Shopify store, on multiple stores that belong to the same Plus organization, or on transfer-disabled development stores". It needs no approval from Shopify. And it "Can't charge merchants through Shopify's app billing system". A public app can be installed on multiple stores, requires approval, and is required to "Use Shopify App Pricing to charge for your app", billing merchants "through the same system that's used for their Shopify subscription".
So publishing is not a migration. It is a new app, with its own listing, its own review, its own installs, and no route to carry your existing merchant across other than uninstalling one and installing the other. Whatever you decide, decide it knowing the original app is not an asset you are upgrading — it is a prototype you are keeping.
What a custom app is missing, and it is not features
The tempting thought is that the hard part is done. It is not, because the hard part of a product is everything a custom build is allowed to skip.
A custom app is built against one store's reality. It assumes a metafield definition exists with a particular namespace and key. It assumes tags follow the convention this merchant's ops team uses. It knows which ERP is on the other end and which fields that ERP populates. It has a configuration file with one row in it. Every one of those assumptions is correct for exactly one merchant and is a bug for everyone else.
Turning that into a product means building, at minimum:
- Multi-tenancy — data isolation between shops, per-shop credentials, per-shop rate limiting, and the certainty that a bug cannot leak one merchant's catalogue into another's.
- Configurability — every assumption you hardcoded becomes a setting, with a UI, a default, validation, and a migration for when the setting changes shape.
- Onboarding — a merchant who has never met you has to get to value without a call. This is usually the single largest piece of new work and the one most consistently underestimated.
- An upgrade path — you now ship changes to installs you do not control, so every schema change needs a migration that runs unattended and cannot break a store you have never seen.
- Uninstall and reinstall — cleanup on uninstall, and correct behaviour when the same shop reinstalls six months later with stale data still in your database.
The platform requirements you are opting into
The App Store is not a directory you submit to; it is a set of obligations you accept indefinitely. Several are worth reading before anyone writes a business case.
Compliance webhooks, whether or not you hold data. Shopify requires every app distributed through the App Store to subscribe to customers/data_request, customers/redact and shop/redact, and states that such an app "must respond to data subject requests, regardless of whether the app collects personal data". The action must be completed "within 30 days of receiving the request". That is an operational process with a legal clock on it, not an endpoint you stub out.
A performance ceiling you must hold. The requirements state that an app "shouldn't reduce Lighthouse performance scores by more than 10 points". For anything touching the storefront this is a real constraint, and it is checked.
A prescribed authentication and embedding model. App Bridge for OAuth redirects, session tokens rather than "third-party cookies or local storage", OAuth performed immediately on install "even if the merchant has previously installed and then uninstalled your app", and only the access scopes you genuinely need. Storefront changes go through theme app extensions rather than manual code edits.
A moving API floor. Apps "using APIs that will be deprecated within 90 days can't be submitted". Read that as a permanent maintenance commitment: the platform moves, and staying listed means moving with it on Shopify's schedule rather than yours.
Billing through Shopify. You must use Shopify App Pricing, which means the merchant relationship, the billing cycle and the dunning are partly Shopify's. Shopify also takes a share of App Store revenue; we are deliberately not quoting a figure, because the terms have been revised more than once and the number in a blog post is the wrong place to learn it. Check the current terms in your Partner dashboard and model them before, not after.
The cost line everybody forgets
Ask someone modelling an app business what it costs to run, and they will describe engineering. The dominant cost is support, and it behaves differently: it scales with the number of merchants, not with the amount of code, and it does not go down when development stops.
The requirements themselves gesture at this — you are expected to provide "clear, Shopify-specific instructions in your help documentation and in-app context so merchants can quickly resolve issues themselves" — but self-service documentation reduces tickets, it does not eliminate them. A hundred merchants on a £19 plan is a support queue, a status page, a changelog, a refund policy and somebody answering on a Friday afternoon. That is a team, funded by revenue that arrives in £19 increments and churns.
This is the honest reason most custom apps should stay custom. The code was the cheap part and it is already done. What publishing buys you is an obligation to a long tail of small merchants whose expectations are set by apps with venture funding and a support department, in exchange for a revenue line that will take years to matter and may never cover the distraction from the business that is actually paying you.
When it genuinely is worth it
There are real cases. They share a shape: demand exists before the product does, and it came from outside.
- Merchants who are not you have asked for it, repeatedly and unprompted, and at least some of them have named a price. Interest expressed in a LinkedIn comment is not this.
- The problem is common and the solutions are bad. A category where the incumbent apps are expensive, slow or abandoned is a category where a good app finds users without a marketing budget.
- The domain expertise is the moat, not the code. If the hard part is knowing how a particular industry prices, ships or complies, and you know that because you operate in it, you have something a competitor cannot copy from your listing page.
- You can fund it as a business, not as a side effect. A product needs a roadmap, support and someone accountable. If nobody's job description changes, it does not exist.
The middle paths, which are usually better
Between "keep it to ourselves" and "launch a software company" are two options that get skipped.
Custom distribution across an organisation. If the driver is that you run several stores, you may not need the App Store at all — custom distribution covers "multiple stores that belong to the same Plus organization". That is a configuration decision, not a product launch.
Build it again, deliberately, for the second merchant. If one other business wants what you built, a second custom app for them is a straightforward engagement with a known scope, billed directly, with no App Store review, no compliance webhook obligations and no revenue share. Do that twice more and you will have learned what the product actually needs to be — and you will have been paid to learn it, which is a considerably better position than launching and finding out.
And settle the ownership question first. If an agency built the app for you, or you built it for a client, who owns the code is a contract matter that people discover at the exact moment the idea gets exciting. It is a five-minute conversation before, and a bad one after.
The honest position
We build custom Shopify apps and we will tell most clients not to publish them. Not because the work is beneath doing, but because the thing that makes a custom app valuable — that it fits one business exactly, with no settings, no compromises and no support burden — is precisely what has to be removed to make it a product.
If you want a product, the sensible sequence is to treat the custom app as market research rather than as version one. Find out whether anyone else will pay before you rebuild it for them. And if the answer is yes, start the public app as a new app on purpose, with the distribution decision made deliberately on day one, because Shopify will not let you make it twice.
Questions this raises
Can I convert a custom Shopify app into a public app?
No. Shopify's documentation states that "You can't change the distribution method after you select it". Going public means creating and submitting a separate app; the custom one carries on independently, and existing merchants would have to uninstall it and install the new one.
Can a custom app charge merchants?
Not through Shopify. Custom-distribution apps "Can't charge merchants through Shopify's app billing system", so any commercial arrangement is invoiced by you directly. Public apps are required to use Shopify App Pricing, which bills through the merchant's Shopify subscription and carries a revenue share — check the current terms in your Partner dashboard.
What does a public Shopify app have to do that a custom one does not?
Pass app review; subscribe to the three mandatory compliance webhooks and respond to data requests within 30 days regardless of whether it collects personal data; stay within 10 Lighthouse points of the store's baseline; use App Bridge and session tokens rather than third-party cookies or local storage; use theme app extensions for storefront changes; and avoid APIs due for deprecation within 90 days.
Is an app for several stores I own a public app?
Not necessarily. Custom distribution covers a single store, transfer-disabled development stores, and multiple stores within the same Shopify Plus organisation. If your stores sit in one Plus organisation, custom distribution may already cover you without any App Store involvement.
How do I know if my custom app has a market?
Someone other than you has asked for it, more than once, without being prompted, and has discussed paying for it. Everything short of that — encouraging comments, a competitor charging a lot, a category that looks underserved — is a hypothesis. The cheapest test is building it a second time for a second merchant as another custom app and seeing what they actually need changed.
What is the biggest hidden cost of publishing an app?
Support. It scales with merchant count rather than code size, it does not stop when development does, and it arrives from merchants who have never spoken to you and whose expectations were set by much larger vendors. Most app businesses are a support operation with an engineering team attached, not the other way round.
NEXT STEP
Free store audit
A senior Shopify engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes.
