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.