Extension-only apps are apps that don't have embedded app pages. Because they're made up entirely of extensions, you can host extension-only apps on Shopify. > Note: > Extension-only apps can only be installed with [custom distribution](https://shopify.dev/docs/apps/launch/distribution/select-distribution-method). ## Create an extension-only app Create a new app, give it a name, and choose **Build an extension-only app**. <p> <div class="react-code-block" data-preset="terminal"> <div class="react-code-block-preload ThemeMode-dim"> <div class="react-code-block-preload-bar "></div> <div class="react-code-block-preload-placeholder-container"> <div class="react-code-block-preload-code-container"> <div class="react-code-block-preload-codeline-number"></div> <div class="react-code-block-preload-codeline"></div> </div> </div> </div> <script type="text/plain" data-language="bash"> RAW_MD_CONTENTshopify app init END_RAW_MD_CONTENT</script> </div> </p> After you've created your app, you can [configure your app](/docs/apps/build/cli-for-apps/app-configuration), [generate extensions](/docs/api/shopify-cli/app/app-generate-extension), and [deploy your app](/docs/apps/launch/deployment/app-versions). ## App extensions that can be included in an extension-only app The following table lists the app extensions that are compatible with extension-only apps. <table> <tr> <th>Shopify interface area</th> <th>App extension</th> <th>Create using</th> <th>Description</th> </tr> <tr> <td rowspan="5"><a href="https://help.shopify.com/manual/shopify-admin/shopify-admin-overview">The Shopify admin</a></td> <td><a href="/docs/apps/build/admin/actions-blocks#admin-actions">Admin actions</a></td> <td>Shopify CLI</td> <td>Add custom modals to resource pages in the Shopify admin.</td> </tr> <tr> <td><a href="/docs/apps/build/admin/actions-blocks#admin-blocks">Admin blocks</a></td> <td>Shopify CLI</td> <td>Add custom cards to resource pages in the Shopify admin.</td> </tr> <tr> <td><a href="/docs/apps/build/admin/admin-links/add-admin-links#add-an-admin-link">Admin links</a></td> <td>Partner Dashboard</td> <td>Add quick links to your app from any page in the Shopify admin.</td> </tr> <tr> <td><a href="/docs/apps/build/admin/admin-links/add-admin-links#add-a-bulk-action-link">Bulk action links</a></td> <td>Partner Dashboard</td> <td>Add bulk app actions to any resource page in the Shopify admin.</td> </tr> <tr> <td><a href="/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract#redirecting-to-the-subscription-contract-within-the-app">Subscription link</a></td> <td>Partner Dashboard</td> <td>Customize the link that allow users to see the subscription details in your subscription-enabled app.</td> </tr> <tr> <td rowspan="3"><a href="/docs/apps/build/checkout">Checkout</a></td> <td><a href="/docs/api/checkout-ui-extensions">Checkout UI extensions</a></td> <td>Shopify CLI</td> <td>Add custom workflows and functionality at defined points in the checkout flow.</td> </tr> <tr> <td><a href="/docs/api/functions">Shopify Functions</a></td> <td>Shopify CLI</td> <td>Inject custom code into key areas of the Shopify platform, such as checkout or cart.</td> </tr> <tr> <td><a href="/docs/apps/build/checkout/product-offers#post-purchase-product-offers">Post-purchase</a></td> <td>Shopify CLI</td> <td>Help users increase sales by adding products for purchase after checkout.</td> </tr> <tr> <td rowspan="1"><a href="/docs/apps/build/customer-accounts">Customer accounts</a></td> <td><a href="/docs/api/customer-account-ui-extensions">Customer account UI extensions</a></td> <td>Shopify CLI</td> <td>Add functionality at defined points in customer accounts.</td> </tr> <tr> <td rowspan="4"><a href="/docs/apps/build/flow">Flow</a></td> <td><a href="/docs/apps/build/flow/triggers">Triggers</a></td> <td>Shopify CLI</td> <td>Connect your app to Shopify Flow so that events that occur in your app can trigger workflows.</td> </tr> <tr> <td><a href="/docs/apps/build/flow/actions">Actions</a></td> <td>Shopify CLI</td> <td>Connect your app to Shopify Flow so that your app receives data when a workflow action runs.</td> </tr> <tr> <td><a href="/docs/apps/build/flow/templates">Templates</a></td> <td>Shopify CLI</td> <td>Create an example workflow that's available in Flow's template library and can be copied into a merchant's store.</td> </tr> <tr> <td><a href="/docs/apps/build/flow/track-lifecycle-events">Webhooks</a></td> <td>Partner Dashboard</td> <td>Improve efficiency by letting Shopify Flow notify your app when your triggers are in use.</td> </tr> <tr> <td rowspan="1"><a href="/docs/apps/build/pos">Shopify Point of Sale (POS)</a></td> <td><a href="/docs/api/pos-ui-extensions">POS UI Extensions</a></td> <td>Shopify CLI</td> <td>Add custom functionality at defined areas in the POS app.</td> </tr> </table> ## Converting to an embedded app Extension-only apps have a Shopify-populated default app URL. If you want to convert your app to use [embedded app pages](/docs/apps/build/app-surfaces#embedded-app-pages), update the `application_url` in your [app configuration](/docs/apps/build/cli-for-apps/app-configuration) to the URL of your app. This will allow your app to be installed with [public distribution](/docs/apps/launch/distribution/select-distribution-method). > Note: > Embedded app pages are [developer-hosted](/docs/apps/build/app-surfaces#hosting). ## Next steps - Learn how to [deploy your extensions](/docs/apps/launch/deployment/app-versions) that you built using Shopify CLI.