For teams whose product connects to client Shopify stores

Onboard your next client store today — not after app review.

Shopify's own answer to serving many merchants outside the App Store is one custom-distribution app per client store, created in your organization. DeploTeka runs that mechanism for you: it creates each store's dedicated app inside your organization, delivers sealed credentials to your backend, releases your app version, and refuses to call a store live without install proof.

You connect your Shopify organization once, in your browser. We read your app's config — nothing is cloned or run on our servers. Shopify still requires each merchant to approve their own install.

FixelPixel — our own product's fleet Jul 2026 · 94 stores · worst first
88 flowing 5 stale 1 broken
atelier-nova.myshopify.compixel failed
casa-verde-living.myshopify.comstale 4d
peakform-nutrition.myshopify.comstale 2d
harbor-and-hide.myshopify.comflowing
bloomfield-botanics.myshopify.comflowing
+ 89 more stores · 86 flowing · 3 stale
A July 2026 view from the fleet that forced us to build DeploTeka: one app, a 94-store registry, client domains anonymized. See what is live today.

The review queue, the hand-run fleet, or the fleet layer.

Since January 1, 2026, new custom apps can no longer be created in a store's admin (Shopify changelog) — and the copyable admin token is gone from every screen. What's left: build a public app and wait out review, or run one custom-distribution app per client store — by hand, or with DeploTeka.

Run the fleet by hand

Shopify's prescribed mechanism, manually
  • Create and configure every store's app in the Dev Dashboard, client by client
  • Track N client IDs, N secrets, N install links — across people, docs, and browser tabs
  • Re-release every store's app whenever your configuration changes
  • One person's memory is the system of record

This is the mechanism Shopify staff prescribe — and it's free. Their own caveat is the catch: "for a handful of stores it's manageable."

Build a public app

one App Store listing
  • Developers report 4–10 weeks just to reach reviewer assignment, and months to approval — no published SLA, no escalation path (thread, thread)
  • Public distribution brings Shopify's billing requirements with it
  • "Limited visibility" (formerly "unlisted") still requires the same review
  • Public apps must also migrate to expiring offline tokens by January 1, 2027; as of today, Shopify's changelog lists custom apps as unaffected (changelog)

Right if you sell to strangers on the App Store. If your clients come through your own sales channel, the queue is pure delay — one developer in it wrote, 2026-04-30: "we have 500 Shopify stores connected that depend directly on this." (thread)

DeploTeka

from €49/month
  • A dedicated custom-distribution app for every client store, inside your organization
  • One repeatable setup run, with explicit pauses where Shopify needs a person
  • Sealed credentials delivered straight into your product's backend
  • A store counts as live only after install proof — never before

Four Shopify employees describe this exact mechanism. On the record.

Public posts on Shopify's own developer forum — quoted verbatim, named, dated, linked. They are answers to developers' questions, not endorsements of DeploTeka.

"Create the app in your Dev Dashboard (your organization) · Click 'Select distribution method' · Choose 'Custom distribution' and generate an install link for the client's store · Send the link to your client to install"

"You'd create one app per client store, each with its own install link. Once installed, your app uses the authorization code grant to get an offline access token for that store. Your automation script stores each token and loops through the stores… It's a bit more setup up front, but for a handful of stores it's manageable"

"Separate client organizations need separate custom apps… If a client has multiple stores that aren't part of the same Plus organization, each store needs its own custom app."

"You can create an app in the dev dashboard and then distribute it to your client's store. When you choose distribution for your app you will want it to be a custom app… Then you can install the app into that client's store with the URL provided in the partner dashboard."

Read the second quote again: "for a handful of stores it's manageable." Everything past the handful is what DeploTeka does.

Is this even allowed?

Custom distribution is a Shopify-supported path with a hard rule attached. Here is the rule, the strongest reading against us, and our answer — sources linked, so you can check all of it in five minutes.

The rule, verbatim

Shopify's API Terms (§2.3.20) say: "When using the Shopify API, you will not make Custom Applications available to or for use by more than one Merchant. For the avoidance of doubt, this means that Custom Applications may not be installed by more than one Merchant." (shopify.com/legal/api-terms) One app may never serve two merchants — which is exactly why the model is one dedicated app per client store. DeploTeka never attaches one app to a second store; the one-app-per-store fleet is what following this rule looks like at fleet size.

Your organization. Your apps.

Every app is created inside your Shopify organization, with access you grant to DeploTeka — and can revoke. Open your Dev Dashboard and the apps are right there, indistinguishable from ones you made by hand, because mechanically they are. Disconnecting DeploTeka does not delete them.

The honest counter-note

One Shopify staff member reads the multi-merchant case differently: in a January 2026 thread, Liam-Shopify described creating a fresh custom app per unrelated merchant as treating a custom app "as a 'private public app'" and said that at scale "you should use public distribution" (community.shopify.dev/t/28011, 2026-01-07). Our answer: the ToS clause he quotes forbids one app serving many merchants — the one-app-per-store model is built to never do that — and four other Shopify staff prescribe exactly this setup for teams serving client stores (see above). Both readings exist in public on Shopify's own forum. We'd rather you read them before you sign up than after.

You've built the app. This is everything after.

DeploTeka sits downstream of your build tools. Import your app's configuration once, wire the two-route fleet contract into your backend (details below), and every new client becomes a repeatable setup run that ends in install proof.

01

Onboard the app

Connect your Shopify organization, import the app configuration — we read shopify.app.toml; nothing is cloned or run — and wire your backend with npx deploteka or one of the guides. Your source code and Shopify CLI login stay on your machine.

your-app/ deploteka connected
app configuration imported · scopes reviewed
02

Run each store setup

DeploTeka creates the dedicated app and seals its credentials. The local agent receives public config, releases through Shopify CLI, and returns a receipt so the setup can continue to the merchant install.

Create dedicated app12s
Encrypt & store credentials1s
Release from your repositoryreceipt
Verify install proofoperator check
03

Keep one operational record

See setup state, required manual actions, installation evidence, credential metadata, and run activity without reconstructing the story from chat and spreadsheets.

Store verified install proof · 5 checks
A run is not marked installed until the required proof is present.

What connecting actually takes.

DeploTeka delivers each store's credentials into your product's backend. That means your backend has to be able to receive them — this is the one step that takes engineering time, and we'd rather you price it here than discover it after signup.

The contract

Your backend exposes two routes — /api/fleet/register and /api/fleet/installed — plus a per-shop credential lookup. DeploTeka pushes each dedicated app's credentials in, then reads them back and verifies they match before any store goes live.

Remix v2–v4 / React Router v7

npx deploteka applies the change to your code for you. Review the diff, commit, done.

Express and Laravel

An adapter package plus a documented recipe you follow: Express guide · Laravel guide.

Everything else

Rails, Python, webhook-only, any stack — a written guide with starter files: Rails · Python · webhook-only · any stack.

One more honest line: if your app ships extensions (a theme extension, a web pixel), releases run through a small deploy agent on your machine or CI — your code can run install and build scripts, and keeping that execution on your side means it never touches our servers. Extension-free apps release entirely server-side; no agent needed. (extension-only guide)

See the console.

The health view uses July 2026 data from our own fleet; the setup and credential cards show the real states DeploTeka records. Client domains are anonymized.

Triageworst first
atelier-novapixel failed
casa-verde-livingstale 4d
peakform-nutritionstale 2d
harbor-and-hideflowing
bloomfield-botanicsflowing

This is the founder's own fleet, not a customer's. FixelPixel health, worst-first. This adapter is live for our own product today. Customer-specific health integrations are scoped during onboarding, not silently assumed.

Store setupharbor-and-hide
Dedicated appcreated
Credentialssealed
Configurationapplied
Install proofawaiting proof
Run statemanual step

The cabinet names the blocking action and does not call the store installed early.

No false green states. Every store has a resumable setup run. Human steps are visible, assigned, and followed by explicit installation proof.

Connection & credentialsatelier-nova
Client IDpresent
Client secretsealed
Install URLavailable
install_url.revealed studio operator · client installation 2h ago
credential.sealed system · store app created 14d ago

Metadata, not secret values. The cabinet shows whether credentials exist without rendering them. Install-link reveals are explicit and written to the audit trail.

Built from a real 94-store operating problem.

DeploTeka came out of migrating and operating FixelPixel, our own Shopify attribution product — 94 stores that had to keep working while Shopify's rules changed under them. Customer zero is us.

In July 2026 we imported the complete fixelpixel registry into DeploTeka: 94 store records, 75 active installations, 19 archived, with no failed imports. Each store has its own app record and sealed credential inventory.

The current production system creates each store's dedicated app, runs per-store configuration work, resumable setup runs, audit history, and FixelPixel's health sweep. Outside teams now create their own workspace and move through the same first-store checklist; unusual templates and fleet migrations still receive hands-on support.

Self-serve does not mean pretending Shopify has no approval steps. Your studio connects its own Partner organization, the merchant approves the install, and DeploTeka only calls the store live after real installation proof.

94
store records imported into the DeploTeka registry
75 19
active installations · archived stores
1
product codebase behind the FixelPixel fleet

We hold Shopify credentials. The design starts there.

Running store setup means handling sensitive Shopify credentials. The vault, the boundary between workspaces, audit history, and an honest exit path are part of the product contract.

How credentials are held

Sealed at rest

Every credential lives in an AES-256-GCM envelope-encrypted vault with per-tenant data keys. Plaintext is never stored and never logged.

Values stay out of cabinet views

The cabinet shows credential metadata without rendering secret values. Install-link reveals are explicit, time-bound operational actions and are written to the audit history.

Isolated per workspace

Your fleet's keys belong to your organization alone. Isolation is enforced in the vault, not in the interface.

Scope changes stay explicit

The requested configuration is recorded per app. New Shopify scopes still require merchant approval; DeploTeka does not silently widen access.

Why trust us with it

The escape hatch is structural

Your apps live in your Partner org — not ours. Ending DeploTeka access does not delete those app records. The exact handover and data-return steps are written into the early-access agreement. We can leave and your fleet stays.

Revocation stays on your side

You can revoke the granted Partner organization access through Shopify-side controls. We then complete the agreed credential and operational handover without deleting your apps.

In writing, not just on a landing page

Security one-pager · Data processing agreement

Encryption is table stakes. The important boundary is that your workspace, apps, and operational records are not mixed with another vendor's.

Cheaper than keeping onboarding in a person's queue.

Same core DeploTeka workflow on every plan. You pay per app and per active client store — never per seat, and never for credits or support tiers.

Start here

Studio

For a small studio proving the workflow on its first client fleet.

49/mo
  • 1 app
  • 10 active stores included
  • First app & store setup included
  • Core cabinet & setup workflow

Growth

For one repeatable app already serving dozens of clients.

149/mo
  • 1 app
  • 50 active stores included
  • First app & store setup included
  • Same core DeploTeka workflow

Fleet

For a studio operating several repeatable apps at scale.

349/mo
  • Up to 3 apps
  • 200 active stores included
  • First app & store setup included
  • Same core DeploTeka workflow

Custom

For unusual fleet shape, migration, or integration requirements.

Talk to us
  • Custom app & store limits
  • Migration plan for your current fleet
  • Product-specific integration scope
  • Commercial terms agreed in writing
When you grow: each plan's store limit is enforced — past it, the next store setup needs the next plan up. Nothing upgrades or bills you silently. To move plans, email us and we'll move you — there's no self-serve switch yet. Beyond Fleet's 200 included active stores, each additional active store is €2/month.
Managed migration is optional: €490 one-time for up to 25 existing stores, then €10 per additional store. Starting fresh with your first app and first store has no setup fee.

Founding-cohort pricing is locked for 12 months. Billing starts after your first store is verified live. Early-access invoices are issued directly by DeploTeka; custom-distribution apps cannot use Shopify Billing — which also means your pricing, your invoices, and 100% of your revenue stay yours. DeploTeka never touches it.

Start yourself. Bring us the unusual cases.

Any plan can create a workspace right now, and your source code stays in your repository on every plan. If you need a managed migration, a product-specific backend integration, or a different commercial shape, we will scope the Custom format with you.

Low-risk start: first app and first store setup included, billing only after verified live, and today's plan price locked for 12 months.

No deck, no sales team. We look at the onboarding work you repeat today and tell you plainly whether DeploTeka can replace it.

Prefer email? hello@deploteka.com — a human replies within one business day.

Talk to us about Custom

For migrations, private integrations, or a fleet that does not fit the standard plans.

We reply within one business day. Your details go to us and nowhere else.

Received — thank you. A human (the founder, realistically) will reply within one business day.