Skip to main content
deploteka ← Back to home

Guides

Practical, honestly-answered guides on running one Shopify app across many client stores: distribution options, custom vs public apps, and the January 2026 legacy custom-app deprecation.

Shopify Is Deprecating Legacy Custom Apps (Jan 2026): What Vendors Need to Do

Since Jan 1, 2026, new custom apps can't be created in the Shopify admin. What still works, what breaks for multi-store vendors, and the migration paths.

Updated July 18, 2026

How to Create a Shopify Custom App in 2026 (Dev Dashboard, Step by Step)

The admin "Develop apps" path closed on January 1, 2026. The current procedure: create the app in the Dev Dashboard, set scopes, pick custom distribution, install.

Updated September 2, 2026

Can’t Install a Custom App on a Client’s Store? The Collaborator and Dev Dashboard Problem, Explained

Collaborator access is store-level; Dev Dashboard apps are organization-level. Why the install fails, which four workarounds work, and which are dead ends.

Updated September 2, 2026

How to Install a Shopify App on Multiple Stores: The Real Options

You can't install one Shopify custom app across different merchants' stores. Here are the four real options — and when each one actually works.

Updated July 18, 2026

Shopify Custom Apps Explained: Custom vs Custom-Distribution vs Public

The three kinds of Shopify apps — legacy custom, custom-distribution, and public — differ by who can install them, not what they can do. A plain-English guide.

Updated July 18, 2026

Shopify Custom Distribution: How It Works, Its Limits, and When to Use It

Custom distribution installs an app by link on one store, or on stores in one Plus organization. The rules, the permanent choice, and when it is the wrong pick.

Updated September 2, 2026

Implement the DeploTeka fleet contract for an unlisted Shopify app

Reference wire shapes for an owner-led integration when the stack or version is outside DeploTeka’s verified support matrix. This guide is not a compatibility or universal-support promise.

Updated August 11, 2026

Run one Express app as a fleet of dedicated Shopify apps (10–30 minutes)

A @shopify/shopify-app-express app binds one client_id at construction. The DeploTeka Express adapter dispatches every middleware to the requesting shop’s own dedicated app instead — one install, two edits, no rewrite.

Updated August 12, 2026

Run one Laravel app as a fleet of dedicated Shopify apps (10–30 minutes)

kyon147/laravel-shopify already ships a per-shop credential hook: config_api_callback. The DeploTeka Laravel adapter implements it, adds the two fleet routes, and turns one deployment into a fleet of dedicated Shopify apps — no rewrite, no upgrade.

Updated August 12, 2026

Run one Rails app as a fleet of dedicated Shopify apps

The shopify_app gem reads its credentials from ShopifyAPI::Context, a process-global singleton — so one Rails app can only speak for one Shopify app. Here is the per-shop credential recipe that changes that, the three places it has to be injected, and why the obvious around_action is not thread-safe.

Updated August 13, 2026

Run one Python Shopify app as a fleet of dedicated apps (Flask or FastAPI)

shopify.Session.api_key and .secret are class attributes, so one Python process speaks for exactly one Shopify app. Two endpoints, one table and a per-shop lookup change that. Complete Flask and FastAPI implementations, with the byte-exactness details both frameworks get wrong by default.

Updated August 13, 2026

The 40-line fleet capture: webhook-only Shopify apps

A Shopify app with no embedded UI has almost nothing to change to run as a fleet of dedicated apps: no OAuth to rewire, no App Bridge, no session tokens. Two endpoints, one table, and a per-shop secret in the HMAC check — with the exact code, and an honest list of when this is not enough.

Updated August 13, 2026

Fleet contract for extension-only Shopify apps: the one-file shim

A theme app extension or web pixel app has no backend to change — which makes the fleet contract a hosting question, not an integration one. What the shim has to answer, what it must never become, and where to run it for nothing.

Updated August 13, 2026