Most stores that ask me for a custom Shopify app do not need one. They need a workflow, and Shopify hands that out free with every paid plan. You need a real app when you have to change what Shopify itself shows or decides, inside the admin, the checkout or the point of sale. And if you are not on Shopify Plus, a custom app cannot run Shopify Functions at all, which kills most custom checkout and discount work before anyone writes a line of code.
I have built Shopify apps and I have talked merchants out of building them. The second conversation saves more money, so here is the whole decision in one place.
The mistake: building before deciding what to build
Almost every custom app conversation I join starts in the wrong place. The merchant has already decided they need an app. What they have not decided is which of the three kinds of app they mean, and that is the part they cannot undo later.
Shopify publishes three distribution models, and its own documentation is blunt about the stakes: you cannot change the distribution method after you select it. So the decision most buyers treat as a technical footnote, something the developer will sort out during the build, is the one irreversible choice in the entire project.
The choice you make in week one is the only one you cannot buy your way out of in month six.
Get that wrong and you do not get a patch. You get a rebuild, paid for twice.
Three ways to put an app on a store
Public distribution is the App Store route. It installs on any number of stores, Shopify reviews it before it goes live, and it is the only model that can charge merchants through Shopify's Billing API.
Custom distribution installs on a single store, or on multiple stores that belong to the same Shopify Plus organization. No review, no approval queue. In exchange it cannot use the Billing API, which costs you nothing when you are not selling it to anyone.
An app created in the Shopify admin is the third option, and the tightest. One store, no review, and three named limits in the docs: no App Bridge, so it cannot render its own screens inside the admin, no app extensions, and no Billing API. It is a way to give a script authenticated access to your store data. It is not a way to give your team a tool they can see.
"Do we build a Shopify app or not?"
A yes or no question, answered by budget, decided in a single meeting.
"Public, custom, or admin, and we cannot change it later."
Three models with different limits on review, billing and what the app is allowed to show.
One more thing, because it is the cheapest credibility test you will ever run. Private apps do not exist any more. Shopify deprecated them in January 2022 and converted every remaining one into a custom app on January 20, 2023. If a developer sends you a quote for a private Shopify app, they have not opened Shopify's documentation in four years.
The Plus line that ends most custom app projects
This is the one that catches people, and it is expensive because it usually surfaces after the invoice.
Shopify Functions are how you change Shopify's own backend logic: discounts, cart and checkout validation, which payment and delivery options appear, bundles, order routing. Shopify sets the availability plainly. Stores on any plan can use public App Store apps that contain functions. Only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs.
Read that twice, because the shape of it is not obvious. The restriction is not on the feature. It is on the combination. A store on Grow or Advanced can install someone else's public app that does precisely the thing you want. That same store cannot run a custom app, built specifically for it, doing the same thing.
So the merchant on Advanced who commissions a bespoke discount rule ends up with a working app their plan will not run. Every option from there costs money: install a public app and accept how somebody else designed it, take your own app through App Store review so it qualifies as public, or move to Plus. This catches more people than it used to, because the logic that used to live in Shopify Scripts now lives in Functions, and Scripts stopped running on June 30.
When you genuinely need to build one
Here is the escalation in order, cheapest first. Most requests should stop on one of the first two rungs.
Four situations where climbing to the third or fourth rung is the right answer rather than an expensive detour.
You need to change what Shopify shows on its own surfaces. Admin screens, checkout, customer accounts, point of sale. Extensions are how that is done, and extensions ship inside an app. There is no other route in.
You need Shopify to run your logic for you through Functions, and you have already checked the plan line above rather than assuming.
Your process is genuinely yours. Your warehouse rules, your pricing model, your compliance step. If adopting an App Store app means reshaping how your business runs to match that app's assumptions, it is not the cheaper option. It is the same cost, billed monthly, paid in operational friction.
You are building a product for other merchants. That is a different business from running a store, and public distribution is the only model that lets you bill through Shopify. If that is you, the App Store review process is not an obstacle to route around, it is the distribution.
If none of those describe you, the answer is usually a native feature or Shopify Flow. Flow is a free app on the Basic, Grow, Advanced and Plus plans and it covers a surprising share of what merchants pay developers to build. Check one gate before you plan around it: the Send HTTP Request action, the one that lets Flow talk to anything outside Shopify, is on Grow, Advanced and Plus, not Basic.
Four moves before you pay anyone
None of that requires a developer, and it takes about a week. The merchants who do it either stop wanting an app, which is the cheapest possible outcome, or they arrive at the build knowing exactly what they are buying.
The bottom line
I run a team that builds Shopify apps, and we ship them in four to six weeks. I still talk merchants out of building one more often than I talk them into it, because a build commissioned for the right reason turns into a long relationship and a build sold by a proposal turns into a refund conversation.
Decide which kind of app you mean. Check the two plan lines. Try the free workflow first. If you get past all three and still need a build, you will be commissioning it with a specification instead of a hunch, and it will cost you less than it would have last week. If the job turns out to be operations rather than software, that is what store automation is for, and if it is store work rather than app work, a dedicated Shopify developer starts at 2,497 dollars a month on our published pricing. Our team has delivered 500+ projects across 30 countries, and I am still yet to regret telling someone not to build.