Documentation Index
Fetch the complete documentation index at: https://docs.launchmystore.io/llms.txt
Use this file to discover all available pages before exploring further.
App Listing & Detail Page
LaunchMyStore renders an installed app’s in-admin detail page (/admin/apps/{handle}) and the marketplace listing
(/marketplace/{handle}) from the same Apps row. This page is the
field-by-field reference for everything you control on those two screens
— what shows where, how to author it, and the publishing flow.
This guide is for developers using the Developer dashboard at
app.launchmystore.io/developer/apps
to ship public apps to the marketplace.
Where each field shows up
| Field | Marketplace listing | In-admin detail page |
|---|---|---|
name | card title + hero | header title |
iconUrl | card + hero icon | header icon |
tagline | card subtitle | header subtitle |
description | short summary | – |
categories | category filter | – |
pricing | price label | ”Plan” row |
images (screenshots) | gallery | – |
worksWith | ”Works with” pills | ”Works with” pills |
installationGuide | – | Getting started section |
tutorialVideoUrl | embed | embed |
privacyPolicyUrl, supportEmail, documentationUrl | footer links | footer links |
extensions.settings | – | Settings card |
extensions.{storefrontBlocks, checkoutExtensions, …} | – | “What this app adds” |
Authoring fields at app creation
Open/developer/apps/create. The Listing Details section captures
the three fields that change how the in-admin detail page reads:
The one-line subtitle under your app name. Both screens show this.
Newline-separated list of third-party services / platforms (e.g.
Klaviyo, Google Shopping, Meta Shops). Renders as pills.Setup instructions shown as the Getting started section on the
in-admin detail page. See Writing a good installationGuide.
/developer/apps/{appId} →
Listing tab. Saving there issues a PATCH that the platform
live-replays into both the marketplace listing and every merchant’s
in-admin detail page — no re-publish needed.
Detail page anatomy
/marketplace/{handle} where the standard OAuth → install flow runs.
Writing a good installationGuide
This is plain Markdown. The renderer is intentionally minimal — it
supports:
- Headings:
#,##,### - Bold (
**text**), italic (*text*or_text_), inline code (`text`) - Links:
[label](https://…)— open in a new tab automatically - Ordered lists (
1.,2., …) and unordered lists (-,*,+) - Paragraphs (separated by a blank line)
Example — extension-only app
What happens if you leave it blank
The detail page auto-generates a “Getting started” section from your extension manifest:| Extension type | Auto-generated copy |
|---|---|
| Storefront blocks | ”Open Appearance → Themes and add the {block} block.” |
| Snippets | ”Use {% raw %}{% render '{handle}' %}{% endraw %} in your theme.” |
| Checkout / post-purchase extensions | ”Renders automatically at checkout.” |
| Admin blocks | ”Appears at in admin.” |
| Functions | ”Runs as a {type} function.” |
| Settings | ”Configure under Settings on this page.” |
Field reference
These are the columns on theApps table that the developer
dashboard exposes. All are optional unless marked required.
| Field | Type | Notes |
|---|---|---|
handle | string | required, lowercase + hyphens, immutable after publish |
name | string | required |
description | text | shown on the marketplace card |
tagline | string ≤100 | shown under the app name |
developer, developerUrl | string | populated by backend from auth |
appUrl | URL | if set, the in-admin page renders an iframe instead of the extension-only detail page |
tutorialVideoUrl | URL | optional embed |
type | enum | public, private, first-party |
version | semver | e.g. 1.0.0 |
categories | string[] | one of: selling-products, store-design, store-management, finding-products, orders-and-shipping, marketing-and-conversion |
worksWith | string[] | third-party services (Klaviyo, Meta Shops, etc.) |
installationGuide | text | Markdown setup instructions |
pricing | jsonb | {model, monthlyPrice, yearlyPrice, currency, trialDays, usage?} — usage: {unitName, unitAmount, cappedAmount, terms?} declares a metered component (see Usage Billing) |
commissionRate | number | platform default 0.06 (6%) |
images | object[] | screenshots — {url, alt} |
iconUrl | string | 52×52 marketplace card + admin header |
redirectUrls | string[] | OAuth callbacks |
scopes | string[] | requested OAuth scopes; validated against ALL_SCOPES |
extensions | jsonb | manifest of storefrontBlocks, storefrontSnippets, checkoutExtensions, postPurchaseExtensions, adminExtensions, functions, settings |
isPremium | boolean | true for paid-only apps |
privacyPolicyUrl, supportEmail, documentationUrl | URL/email | shown on the detail page |
extensions.settings is what powers the in-admin Settings card.
Each entry is {type, key, label, default, ...} (text, number,
boolean, select). Settings render in disabled / preview mode if the
merchant has not installed the app yet.
Two render modes for the in-admin page
/admin/apps/{handle} chooses one of two layouts based on whether
appUrl is set:
AppEmbedFrame
Used when
appUrl is set. Renders your hosted iframe with the
App Bridge SDK loaded. You own the entire UI inside the frame.Use this for apps with a hosted dashboard, custom forms, or any UI
beyond declarative extensions.ExtensionOnlyDetailPage
Used when
appUrl is null / empty. Platform-rendered header +
Settings + Getting started + extensions list.This is the right choice for declarative apps (theme blocks,
WASM functions, admin blocks) that don’t need a hosted dashboard.appUrl
empty.
Publishing flow
Create the app
At
/developer/apps/create choose Save as Draft or Submit
for Review. Drafts let you edit freely without affecting any
merchant.Add extensions and functions
At
/developer/apps/{appId} use the tabs Extensions, Functions,
Webhooks to register what your app contributes to the storefront,
checkout, and admin.Submit for review
Status moves
draft → review → published. Review checks scopes,
redirect URLs, and listing copy.AssetLoader.invalidateExtension automatically — no leftover files
pollute the merchant’s storefront.
See also
- App Lifecycle — install → uninstall flow + webhooks
- App Versioning — semver, rollback, sandbox testing
- Extensions Overview — what each extension type does
- Authentication — OAuth scopes + session tokens
- App Bridge Overview — talking to the host from your iframe