How to create a Shopify custom app in 2026 (Dev Dashboard, step by step)
Short answer: the Develop apps option in the Shopify admin is gone. Since January 1, 2026, new custom apps can no longer be created in the Shopify admin. You now create the app in the Dev Dashboard (or with the Shopify CLI) inside a Shopify organization, set its access scopes, select Custom distribution, generate an install link, and send that link to the store owner to approve. There is no copy-and-paste shpat_ token at the end any more — the app has a client ID and a client secret, and your code exchanges those for an access token.
The full procedure is below, followed by the two places it usually goes wrong and the exact error text you'll see.
Why is "Develop apps" gone from my Shopify admin?
Because Shopify closed that creation surface, deliberately, on a published date. The changelog entry is short and unambiguous:
"Starting January 1, 2026, you can no longer create new custom apps in the Shopify admin. This affects merchants and developers who create custom apps directly from the admin. Existing custom apps aren't affected and will continue to work. To create a new custom app after this date, use the Dev Dashboard to build the app, then install it on your store." — Shopify changelog
Two things follow, and both matter more than the missing button. First, existing admin-created apps keep working — Shopify's Help Center confirms legacy custom apps created before January 1, 2026 can still be managed from the admin. Nothing was switched off. Second, the replacement path produces a different kind of credential, which is the part nobody was warned about; see the deprecation guide for what that means if your product's onboarding asked merchants to paste a token.
Which kind of custom app do you actually need?
Answer this before you click anything, because one of the choices you're about to make cannot be undone. The deciding question is whose organization owns the app, and whose store is it going on.
| Your situation | Where the app is created | Distribution method | How your code authenticates |
|---|---|---|---|
| A store you own, in your own organization | Your Dev Dashboard organization | Custom distribution | Client credentials grant — app and store must be in the same organization |
| Several stores in one Shopify Plus organization | That organization | Custom distribution with multi-store install enabled | Same as above, per store |
| One client store, a merchant you don't own | Your organization | Custom distribution, one app for that merchant | Authorization code grant at install; offline token lands on your server |
| Many unrelated merchants, one shared app | Your organization | Public distribution (app review applies) | Authorization code grant |
The third row is the one most people arrive here needing, and it is also the one the closed admin path used to hide. Shopify's API Terms define a Custom Application as one "made available to a single Merchant" and §2.3.20 requires that you "not make Custom Applications available to or for use by more than one Merchant." One app per client merchant is not a workaround — it is the shape the terms require.
How do you create the app in the Dev Dashboard, step by step?
Seven steps. Steps 4 and 5 are the irreversible ones.
- Open the Dev Dashboard for the organization that should own the app. The Dev Dashboard replaced the Partner Dashboard for development workflows — app creation and configuration live there now — and went generally available on September 3, 2025. If you are building for a client, this is your organization, not theirs.
- Create the app. Either create it in the Dev Dashboard directly, following Shopify's create-an-app walkthrough, or scaffold it locally with the Shopify CLI and let
shopify app deploycreate the app version. The CLI route is the one Shopify points at when you are building for other merchants. - Set the access scopes. Scopes live in the app's TOML configuration file rather than in a checkbox screen — see app configuration and managing app config files. Write them out deliberately: a scope you add later means the merchant re-approves the install.
- Select the distribution method. In the app, choose Select distribution method, then Custom distribution. Shopify's own wording on that page: "Select this method if you've built a custom app that you want to distribute to one store or multiple stores on the same Plus organization using a link." This choice is permanent — you can't change the distribution method after you select it. If there is any chance this app becomes an App Store product, stop and read the distribution comparison first.
- Decide on multi-store install. The same page notes that to "limit your app's installs to one store, uncheck Allow multi-store installs for one Plus organization." This toggle only ever spans stores inside a single Plus organization — it is not a way to reach unrelated clients. It has existed since July 2023; apps created before July 26, 2023 need Partner Support to enable it.
- Generate the install link and send it to the store owner. The merchant opens the link and approves the requested scopes. That approval is a human step and nothing removes it — not the CLI, not any tool.
- Collect the credentials. In the app's Settings, copy the client ID and client secret. These are what your backend holds now, instead of a token.
Where is the Admin API access token?
There isn't one to copy, and this is the single most common dead end. Shopify's documentation is explicit: "With a client credentials grant, you won't see a token in the Shopify admin. Instead, you request tokens programmatically when you need them" — Dev Dashboard, get API access tokens.
Which grant you use depends on the organization relationship, and it is worth being precise because the two behave very differently:
- App and store in the same organization → the client credentials grant. Shopify documents it as "only available for apps developed by your own organization and installed in stores that you own," and the token as "valid for 24 hours, after which they must be refreshed." A 24-hour credential cannot sit in a settings field — it needs a refresh loop.
- App in your organization, store belonging to a client → the authorization code grant at install time. The offline token arrives on your app server and was never in a UI at all. Shopify's offline access tokens page states that the requirement for public apps to move to expiring tokens by January 1, 2027 "don't apply to custom apps or apps created by merchants" — accurate as of today, and worth re-checking, since it is a policy Shopify can revise.
One honest caveat: the client-credentials page also carries the line "Public or custom apps must use token exchange or authorization code grant," which reads as contradicting the Dev Dashboard page. The reconciliation that fits both is that "custom" there means a custom-distribution app installed on someone else's store. Shopify does not spell this out anywhere we could find, so treat the org relationship — not the app label — as the thing that decides your grant.
What goes wrong, and what the errors look like
"This app can't be installed on this store." Developers on Shopify's forum report the full text as "This app can't be installed on this store. [App name] can only be installed on stores that are part of the same organization." It appears when you try to install an app on a store that is not in the app's organization — for example a client store you reach through a collaborator account (reported here, February 2026). The fix is not a permission; it is step 4 above — a custom-distribution install link. We walk the whole situation through in the collaborator guide.
Collaborator "Develop apps" permission appears to do nothing. That permission governed the admin creation flow, which is the flow that closed. Shopify documents Dev Dashboard user permissions and store collaborations separately from store-level staff permissions, and collaborator access to a store is not organization-level access to that organization's apps.
You picked the wrong distribution method. There is no undo. You create a new app and migrate the install.
What if you need to do this for every client store?
Nothing above changes. It just repeats: one app, one config, one scope set, one install link, one credential set, per client store, plus a redeploy of every app on every release. Shopify staff describe the same pattern on their own forum and are candid about where it stops — one 2026 staff reply lays out one app per client store with its own install link and adds that "it's a bit more setup up front, but for a handful of stores it's manageable" (thread, April 2026). If you have a handful, do it by hand; the steps above are the whole job. The decision tree for larger numbers is in How to install a Shopify app on multiple stores.
Where DeploTeka fits (product note). DeploTeka is our own tool for the repeat case, and this is the only place it appears in this guide. It creates a dedicated custom-distribution Shopify app per client store inside your own organization, seals the credentials and delivers them to your backend, and pauses with a named action when a step needs a person. It does not clone, build, or run your source on our servers, and the merchant still approves each install — Shopify requires that, and no tool removes it. deploteka.com
Sources: [Shopify changelog — legacy custom apps can't be created after January 1, 2026](https://changelog.shopify.com/posts/legacy-custom-apps-can-t-be-created-after-january-1-2026), [Shopify — Create apps using the Dev Dashboard](https://shopify.dev/docs/apps/build/dev-dashboard/create-apps-using-dev-dashboard), [Shopify — Get API access tokens](https://shopify.dev/docs/apps/build/dev-dashboard/get-api-access-tokens), [Shopify — Select a distribution method](https://shopify.dev/docs/apps/launch/distribution/select-distribution-method), [Shopify — Client credentials grant](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/client-credentials-grant), [Shopify — Offline access tokens](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/offline-access-tokens), [Shopify — Migrate from the Partner Dashboard](https://shopify.dev/docs/apps/build/dev-dashboard/migrate-from-partners), [Shopify Help Center — custom apps](https://help.shopify.com/en/manual/apps/app-types/custom-apps), [Shopify API Terms](https://www.shopify.com/legal/api-terms). Community threads are linked as evidence of what developers report, not as statements of Shopify policy.