Build
- Written scope before any code
- A named engineer for the duration
- Weekly builds you can install on a development store
- Best for an app with a clear first release
Engineers who build, submit and maintain Shopify apps of their own — five built in-house, one live on the App Store — available by project, on an app retainer, or inside your team.
An app developer and a theme developer are different hires. Theme work is what customers see; app work is authentication, webhooks, billing, review and an API that changes every quarter. This page is about hiring for the second.
Plenty of “we need an app” briefs are theme or integration work in disguise. Hiring the wrong discipline is the most expensive mistake in this market, so start here.
| Your situation | Who you actually need |
|---|---|
| A new app to sell on the Shopify App Store | An app developer. Public distribution means Shopify's app review, a listing and the Billing API — what the build involves. |
| A custom app for your own store | An app developer. Custom distribution installs on one store, or the stores in one Plus organisation, with no app review and no Shopify billing. |
| An app a previous developer abandoned | An app developer who starts with an audit — authentication, scopes, API version, webhooks — and puts the findings in writing before fixing anything. |
| An app pinned to an old API version, or still on REST | An upgrade engagement. Shopify supports each API version for at least twelve months, and new public apps must use the GraphQL Admin API. |
| An app rejected by App Store review | Someone who has been through review with their own apps and knows the security checks it applies. |
| The storefront needs to look and behave differently | Not an app developer. That is a Shopify theme developer. |
| Shopify has to sync with your ERP or warehouse | Often a Shopify full-stack developer — the hard part is the other system, not Shopify. |
Three ways to work with us
An app is not finished at launch — Shopify ships a new API version every quarter, and review requirements move with it. Pick the shape that matches where your app is.
Build
App retainer
Augmentation
Rates depend on the engagement and are quoted after the technical call — not before it, because a number produced by guessing is either padded or wrong.
The engineers you would hire build and maintain Shopify apps of their own, so everything below is something we have had to get right for our own users first.
Every point below is something that decides whether an app survives its first year. Most of it is invisible until it is missing.
From first message to first build
The first conversation is technical, because it has to be — we cannot scope an app we do not understand.
The app stack, from Shopify's own template
We build on Shopify's current app tooling rather than a framework of our own, so any competent Shopify developer can maintain what we ship.
The App Stack
Included because technical buyers ask. Shopify's React Router app template and Shopify CLI; the GraphQL Admin API; Polaris and App Bridge for the embedded admin; theme app extensions for the storefront; webhooks for everything that happens while nobody is looking; and Prisma for session storage.
Token Exchange
Embedded apps authenticate with session tokens and token exchange, not cookies, which many browsers block inside the admin's iframe.
const { admin } = await authenticate.admin(request);Idempotent by Default
Every webhook is verified, deduplicated and processed off the request path, because the same one can arrive twice.
if (await seen(webhookId)) return new Response();No Script Tags
Storefront features ship as theme app extensions. Script tags are being switched off — and they were slow anyway.
script_tag.js
Still deciding?
Tell us what the app should do. If the honest answer is that you need a theme developer — or no developer at all — we will tell you that instead.
Tell us about the app
A paragraph is enough. What the app should do, whether it exists yet, and any deadline. A developer reads it and replies within one business day.
