Custom apps vs public apps
Shopify apps come in two main types. Custom apps are built for a single store — for example, to sync with your ERP, apply special pricing rules or automate fulfilment. They do not need App Store review. Public apps are listed in the Shopify App Store and installed by many merchants; they must meet Shopify’s requirements for performance, security, billing and user experience.
Both types are built on Shopify’s current platform: the Admin GraphQL API, webhooks, Shopify Functions for checkout logic, and theme and checkout UI extensions that add features without editing theme code.
Problems we solve
- Several paid apps that each do part of what you need
- Manual work between Shopify and your ERP, 3PL or CRM
- Checkout or discount logic that Shopify does not support natively
- An idea for an app to sell to other merchants
- An older app using deprecated APIs or script tags
What’s included
Admin integrations
Sync products, orders, inventory and customers with other systems.
Shopify Functions
Custom discounts, shipping and payment rules at checkout.
Theme app extensions
Storefront features merchants add through the theme editor.
Checkout UI extensions
Custom fields and content in Shopify’s checkout (Plus).
Embedded admin UI
App screens inside Shopify admin built with Polaris.
App Store readiness
Billing API, performance, review requirements and listing.
Building apps that pass review
Public apps must meet Shopify’s App Store requirements: using session tokens for embedded apps, the Billing API for charges, GDPR webhooks for customer data requests, theme app extensions instead of injecting code into themes, and good storefront performance. We build to these requirements from the first sprint and run through Shopify’s review checklist before submission.
Keeping apps current
Shopify releases new API versions quarterly and retires old ones after about a year. We pin API versions, track deprecations and update apps ahead of deadlines so they keep working. For public apps we can also handle merchant support, bug reports and feature releases.
Choosing how your app extends Shopify
| Extension point | What it does | Example uses |
|---|---|---|
| Admin app (embedded) | Pages inside the Shopify admin using Polaris and App Bridge | Dashboards, settings, bulk tools |
| Theme app extensions | Blocks merchants add to themes without editing code | Reviews widgets, upsell blocks, badges |
| Checkout UI extensions | Custom fields and content in checkout (Shopify Plus for some features) | Delivery instructions, gift messages, B2B details |
| Shopify Functions | Server-side logic run by Shopify | Custom discounts, shipping and payment rules |
| Webhooks & Admin API | React to and change store data | ERP sync, fulfilment, inventory updates |
Using the platform’s native extension points, rather than injecting scripts into themes, makes apps faster, more reliable and easier for merchants to install and remove cleanly.
Pricing and business model for public apps
If you plan to sell your app on the Shopify App Store, the business model shapes the build:
- Recurring subscriptions, usage-based charges and one-time purchases are handled through Shopify’s billing API.
- Free trials and a free plan help discovery but need limits that encourage upgrades.
- Support, onboarding and documentation strongly influence ratings and ranking in the store.
- Merchant uninstall and data-deletion requests must be handled to meet platform requirements.
For store builds rather than apps, see Shopify development.
Performance and reliability for merchants
Merchants judge apps by their impact on store speed and stability. We keep storefront code minimal and load it only where it is needed, use theme app extensions instead of injected scripts, and respect Admin API rate limits with queues and back-off. Webhooks are verified and processed asynchronously so a busy sale does not overwhelm the app, and periodic reconciliation jobs catch any events that were missed. These practices also matter for App Store review, which considers the effect of apps on storefront performance.
Typical architecture of a Shopify app
A Shopify app is a web application that merchants install into their stores. It authenticates through OAuth and session tokens, calls Shopify’s GraphQL Admin API, receives webhooks when orders, products or customers change, and shows its interface inside the Shopify admin through App Bridge. Extensions then place functionality where merchants and shoppers need it — checkout, the theme, Shopify Flow or the point of sale.
Shopify Functions for custom commerce logic
Shopify Functions let apps customise core commerce behaviour — discounts, delivery options, payment method visibility, cart and checkout validation — with logic that runs on Shopify’s own infrastructure. Because they run inside Shopify, they are fast and do not depend on your server being up during checkout. They do have strict limits on execution time and input size, so we design rules that are efficient and test them against large carts.
- Tiered and bundle discounts beyond the built-in options
- Hiding delivery or payment methods by product, customer tag or location
- Validating carts for B2B minimums, age restrictions or regional rules
- Custom fulfilment and order-routing constraints
Webhooks, data and privacy compliance
Apps rely on webhooks to stay in sync with each store, so we verify every webhook signature, process events through a queue so slow tasks do not cause timeouts, and handle duplicates and out-of-order delivery. Public apps must also implement Shopify’s mandatory privacy webhooks, which request or delete customer data when merchants or shoppers ask, and when a store uninstalls the app.
- HMAC verification on every webhook
- Idempotent processing so retries do not double-apply changes
- Mandatory privacy webhooks implemented and tested
- Only the access scopes the features need
- Merchant data deleted on uninstall according to your policy
API versions and the upgrade cycle
Shopify releases a new API version every quarter and supports each one for about twelve months, so apps must be upgraded regularly. We pin each app to a specific version, review the release notes for breaking changes, test the next version on development stores and move before deprecation deadlines. Maintenance plans include this upgrade work, which is easy to forget until warnings appear in the Partner Dashboard.
Questions before commissioning an app
- Is this for one store (custom app) or for many merchants (public app)?
- Which parts of Shopify must it touch: admin, checkout, theme, POS or Flow?
- Will it need data that only Shopify Plus stores can access?
- How will merchants pay for it, and what support will they expect?
- Who will monitor webhooks and handle API upgrades after launch?
Testing on development stores
Every feature is tested on Shopify development stores set up to mirror real merchants: large catalogues, multiple markets and currencies, B2B companies where relevant and a range of popular themes. We test install, reinstall and uninstall flows, billing approval and cancellation, and how the app behaves when API rate limits are reached, so merchants never see half-finished states after a failed request.
Apps often sit alongside Shopify store development and headless commerce builds. Need extra hands on your store? Hire Shopify developers.
Related services
Part of plugin and extension development. For store builds see Shopify development.
This page is part of Plugin & Extension Development Services — see the full overview for related services, approach and pricing.