Start in 15 minutes
Dukkan developer docs
Build an app or a theme on Dukkan in 15 minutes, then go deep with the reference.
Build an appRegister the app, get an OAuth token, call the Platform API and receive a signed webhook.Build a themeScaffold with the CLI, preview on a sandbox store, and ship Arabic-first Liquid templates.
You build one of two things on Dukkan: an app that reads and writes merchants' store data through a scope-gated REST API and receives signed webhook events, or a theme — Liquid templates rendered on Dukkan's servers with zero JavaScript. Both start on a sandbox store and end in the marketplace.
Start in 15 minutes#
| Path | What you will run | Start |
|---|---|---|
| App | Register the app, get an OAuth token, call GET /orders, receive a webhook |
Build an app |
| Theme | theme init, login, theme dev, and a correct two-file template |
Build a theme |
| Sandbox store | Seeded data for every edge case, reset and reseed | Sandbox stores |
Concepts you must know#
- Money in minor units — money is always an integer, and
decimalscomes from the response, never from an ISO table. - Cash-on-delivery lifecycle — delivery and payment are two events;
order.paidcomes from the payments ledger. - Scope reference — every endpoint and every webhook topic needs a specific scope;
clients:readsits behind the data processing agreement.
Reference#
- API reference — conventions first, then every operation with request and response samples.
- Liquid objects · filters · tags · limits
- Theme CLI reference
Program#
Earnings and payouts · App review guidelines · Data processing · Developer terms · Support
Latest changes#
2026-08 — theme contract: sections on product, category and cart pages, the datetime and richtext setting types, the money_major, date_localized, file_alt and file_focal_style filters, and platform-emitted section wrappers. Details in the changelog.
Popular guides
WebhooksThe envelope, signature verification in four languages, delivery and retry semantics, and topics.AuthorizationOAuth 2.1 with PKCE, tokens, the refresh grant, revocation, and the error table.Money in minor unitsAlways integers, the currency table, display formatting, reconciliation, and multi-currency.Bundle anatomyRequired files, the layout/block contract, reserved paths, and the CSS and asset rules.Sections and blocksDeclaring sections, the body dispatcher, double rendering, bands, product sources, and the runtime modules.Sandbox storesWhat a sandbox store contains, how to reset it, and its limits.
Reference
API referencePlatform API conventions: base URL, authentication, Idempotency-Key, pagination, limits, headers, versioning, errors, and the PII policy.SDK referenceEvery public symbol of @dukkan.one/app-sdk, one page per entry point, generated from the package's own types.Liquid objectsEvery key in the v1 render context with its properties, types, and when it is present.Liquid filtersThe 16 filters the platform registers: signature, input and output, an example, and RTL notes.Liquid tagsThe available tags, the layout, block and include rules, what is rejected, and the stateful-tag warning inside sections.LimitsBundle, render, schema and settings-document limits in one place.CLI referenceEvery @dukkan.one/cli command for themes and apps with its options, exit codes, output, files, environment variables, and troubleshooting.