Why this gives you a range and not a price
Every article that answers “what does a Shopify app cost” lands on something like “$5,000 to $50,000”. That span is real, but it is useless, because it does not tell you which end you are on or what moves you along it.
This estimator works the way a quote actually gets built: each thing the app must do carries an hour cost, the hours are added up, testing and project overhead are added as a proportion rather than hidden, and the total is multiplied by an hourly rate. You can see every line. If you disagree with one, you can argue with that line instead of distrusting the whole figure.
The spread between the low and high end is not padding. The low end assumes a written specification and decisions available when the build needs them. The high end assumes the normal case, where neither is true throughout. On app projects that gap is where budget overruns actually live — far more often than in the code itself.
Why these numbers are lower than an agency quote
If you have already collected quotes, the figures here will probably sit well under them. That gap is not a discount and it is not a lower standard of work — it is the cost of the people who are not on the project.
An agency quote for the same brief carries an account manager, a project manager, internal handoffs between the person who scoped it and the person who builds it, a review layer, and the overhead of an office. Those are real costs and agencies are not wrong to charge them. They just do not exist when you work directly with the developer who writes the code.
The hours in this estimate are what the build actually takes for one senior developer who talks to you directly. Fewer hours, no margin stacked on top, and decisions made in the same conversation where the question comes up. The work is the same; the layers around it are not.
What that does mean is that scope discipline matters more. There is no project manager absorbing a vague brief on your behalf, so the clearer you are about what the app must do — and what it must never do — the closer you land to the low end of the range.
What actually drives the cost
Public app or private app
This is the largest single factor and the one most often underestimated. A public App Store listing is not the same app with a listing attached. It has to work for merchants you have never met, on themes you have never seen, so it carries multi-tenancy, an OAuth install flow that survives strangers, the Billing API, mandatory GDPR webhooks, support tooling, and an app review cycle that commonly bounces once before approval.
A private app skips almost all of that. If only your store will use it, say so — you are buying a fraction of the work.
Where the app appears
An app that runs quietly on webhooks is cheap. An app with admin screens costs more because those screens need Polaris, states, validation and error handling. An app that appears on the storefront costs more again, and a checkout UI extension costs most of all — it is Plus-gated, sandboxed, and the debugging loop is slower than working in a theme.
Integrations
Each external system is not just its API call. It is authentication, rate limits, retries, partial failures, and deciding what happens when the other side is down at 2am. That is why integrations are counted individually rather than folded into complexity.
When a custom app is not the answer
If the payback figure comes out beyond about two years, building to save subscription fees is usually the wrong reason. App stacks rarely stay unchanged that long. Build custom when the app does something you cannot buy — a workflow no public app supports, data you need to own, or a ceiling on growth you cannot remove any other way. Those reasons survive a long payback; saving $40 a month does not.
If you are not sure what you currently pay, the Store Audit detects the apps running on your storefront and estimates the monthly total from published pricing.