Build a Commerce Studio app

Ship a cockpit.json that becomes an operator screen in Commerce Studio — the rendering pipeline, the local preview, and the full reference for navigation, lists, detail views, forms, actions, widgets and permissions.

Commerce Studio contributes no pages of its own — its studio navigation array is deliberately empty. Everything an operator sees there comes from an installed app's cockpit.json, and the studio merges every installed app's declarations into one interface.

So this is not a niche extension point. It is how the section exists at all: the products, orders, customers, prices, payments, shipping and inventories screens a merchant uses are the same declarations described on these pages, shipped by the platform's own apps.

What you write, and what you do not

You write JSON. One manifest declaring navigation entries, views and widgets.

You do not write:

  • Vue components, bundles, or anything to export.
  • Tables, columns, filters, pagination, sorting, loading states or empty states.
  • Authentication, tenant context or permission checks in the UI.
  • Forms, field controls or client-side validation.
  • Migrations, tenant filters or endpoint plumbing.

A view declares its shape with a typelist, detail or form, and those three are the only view types — and the studio dispatches to a built-in renderer that reads and writes your entity for you.

The shortest possible app

cockpit.json
{
  "$schema": "https://schemas.revenexx.com/cockpit.schema.json",
  "navigation": [
    { "label": { "en": "Suppliers" }, "icon": "building", "route": "/suppliers", "group": "pim" }
  ],
  "views": [
    {
      "route": "/suppliers",
      "type": "list",
      "entity": "suppliers",
      "columns": [
        { "name": "code", "label": "Code", "type": "text" },
        { "name": "name", "label": "Name", "type": "text" }
      ]
    }
  ]
}

That renders a sidebar entry under the PIM section and a paginated, sortable list of your entity. Preview it locally in about two minutes.

What this group covers, and what App Studio owns

This group is the Commerce-specific surface: how a manifest becomes a screen in Commerce Studio, and every key of cockpit.json.

The rest of an app belongs to App Studio and is linked rather than repeated:

ConcernFilePage
Identity, dependencies, events, schedulesmanifest.jsonManifest reference
Your entitiesschema.jsonSchema reference
Your HTTP routesmanifest.capabilities.jsonCapabilities
What your app may reachmanifest.permissionsApp permissions
What a merchant configuressettings.jsonSettings
Marketplace listing and pricingbilling.jsonBilling and events
Deploying and installingApp lifecycle

New to apps entirely? Start with Build your first App.

Read the honest limit before you plan a partner rollout. The local preview loop is fully available to you today. The self-serve path from zero to installed on a tenant is not — see From manifest to installed.