Shopify platform
Shopify app
A Shopify app is an external service that extends a store through Shopify's APIs. Public apps are distributed through the Shopify App Store; custom apps are built for one merchant and installed directly. Apps are how you add functionality Shopify does not have natively — but each one adds JavaScript, cost, and a dependency, so an app audit is often the fastest performance win available.
Why it matters
Apps are the fastest way to add capability to a store and the most common reason stores get slow. Both are true at once, and holding both is the whole skill.
The cost is rarely visible at install. An app that adds a review widget also adds a script to every page, a stylesheet, often a font, and sometimes a blocking request to its own servers. Install fifteen over three years — each solving a genuine problem at the time — and the storefront carries fifteen sets of that overhead, including from apps nobody uses any more.
This is why an app audit is so often the fastest performance win available. It is not a rebuild, it is removal, and it usually improves INP more than any amount of theme optimisation.
How it works on Shopify
Apps come in two forms. Public apps are distributed through the App Store and installed by any merchant. Custom apps are built for one store and installed directly — which is the right shape for a merchant-specific integration, and does not require the review process.
Apps authenticate through OAuth and act on the store through the Admin API, subscribing to webhooks for events they need to react to.
How an app reaches the storefront matters more than merchants realise. App blocks and theme app extensions are the supported route: the merchant positions the widget in the theme editor, and uninstalling the app removes it cleanly. The legacy route — injecting snippets into theme files — leaves code behind on uninstall, which is where the dead scripts in an old theme come from.
Billing runs through Shopify, so app subscriptions appear on the Shopify invoice rather than as separate charges nobody reconciles.
Common mistakes
- Installing to evaluate, then not uninstalling. Trial apps leave theme code behind. Half the scripts on an old store belong to apps that were removed years ago.
- Solving with an app what a metafield solves. Size charts, badges, and specification tables are frequently a data modelling job, not a monthly subscription.
- Not checking performance impact. Measure Core Web Vitals before and after installing. An app that costs 400ms should be a decision, not a surprise.
- Overlapping apps. Two apps doing similar jobs both load, both inject, and occasionally fight over the same DOM.
- No ownership review. Apps get acquired, abandoned, and deprecated. An app with no updates in two years is a dependency, not a feature.
When you need help
The clearest case is an app audit on a store that has been running for several years: what is installed, what is used, what it costs in subscription and in milliseconds, and what leaves theme code behind when removed. The result is usually a shorter list and a faster store.
The second case is the build-or-buy decision for something central to the business. An app is right when the need is standard; a custom app is right when the logic is the business, and paying monthly for an approximation of it is the more expensive option over time.
Need this done on your store?
Shopify developmentRelated terms
- Admin APIThe Admin API is Shopify's privileged GraphQL API for reading and writing store data — creating products, fulfilling orders, editing inventory. Unlike the Storefront API it must never be called from a browser, because its tokens can mutate the store. Apps, integrations, and back-office automations run against it, subject to rate limits that scale with plan.
- WebhookA webhook is a message Shopify sends to your server the moment something happens — an order is paid, a product is updated, a customer is created — so external systems react immediately instead of polling for changes. Webhooks are delivered at least once and can arrive out of order, so a correct integration handles duplicates and verifies the HMAC signature on every request.
- Core Web VitalsCore Web Vitals are the three metrics Google uses to score real-world page experience: LCP for loading, INP for responsiveness, and CLS for visual stability. They are measured from actual Chrome users, not a lab test, and a page passes only if 75% of visits are within the "good" threshold on all three. They are a genuine — if modest — ranking signal, and a large conversion one.