Build apps & themes
For developers: the OAuth install flow, webhooks, API scopes, and the theme file structure.
Apps are external, independently hosted services — the same model Shopify apps use — not code that runs inside this platform. You build and host your app anywhere; the platform handles authentication, permission scopes, webhook delivery, and billing on your behalf.
1. Create a developer account
Sign up at the Developer Portal (separate from a store account) to submit apps and themes, manage their listings, and track earnings and payouts.
2. Register an app
From the portal, register your app with a name, description, redirect URL, and the permission scopes it needs — for example products:read, orders:read, or orders:update for write access. Merchants only ever see and approve the exact scopes you declare.
3. The install flow (OAuth 2.0, authorization code)
- Send the merchant to your app's authorization URL with your
client_idand requested scopes. - The merchant approves the install from their own dashboard.
- The platform redirects back to your
redirect_uriwith a single-use authorization code. - Exchange that code, along with your
client_idandclient_secret, for an access token — this is a one-time exchange; the code cannot be reused, and the redirect URI must match exactly what you registered.
4. Calling the API
Authenticated requests use your issued access token and are scoped to exactly one store — the one that installed you. Available resources include:
- Products — read, and create/update if you have write access.
- Customers — read.
- Discounts — read and write.
- Inventory — read levels, and write adjustments.
- Orders — read, and update status (
orders:update) — every write is recorded on the order's audit timeline with your app identified as the actor.
API requests are rate-limited per installing store, not per your app server's IP — so one merchant's heavy usage never eats into another merchant's quota.
5. Webhooks
Subscribe to events (an order created, inventory changed, and more) instead of polling. Deliveries are retried on failure, and you can manage your subscriptions through the same API you use for everything else.
6. Embedding UI in the admin
An app with its own interface can embed it directly inside the merchant's dashboard as a full page (via the JS embed bridge, which handles sizing and navigation between the host dashboard and your iframe), or as a storefront section a merchant can drag into any page from the theme editor — see App blocks in Themes & the editor.
7. Pricing & commission
Set your app free, a flat subscription, or usage-based. Commission on paid apps follows the same tiered structure as major app-store platforms: 0% on the first $1M in lifetime revenue from an app, 15% above that. Payouts run through Stripe Connect — track earnings and payout history from the Developer Portal.
8. Publishing
Submit your app or theme from the portal; once approved it appears in the public App Store or Theme Marketplace, complete with merchant reviews and ratings on its listing.
Building a theme
A theme is a bundle of:
theme.json— theme metadata and global settings schema.layouts/— the outer page shell (header, footer) shared across templates.templates/— one per page type (home, product, collection, cart, etc.), each a stack of sections.sections/— reusable building blocks, each with its own settings schema that generates the theme editor's UI automatically — no separate admin code to write.snippets/— small reusable pieces included by sections/templates.assets/— images, CSS, and JS.
A section's schema declares what a merchant can customize — text fields, images, color pickers, ranges — and the editor renders the corresponding controls for free. Submit a finished theme to the marketplace the same way you'd submit an app.
Where to find this
The Developer Portal is a separate app from the store admin dashboard — use the developer sign-up link from the App Store or Theme Marketplace footer.