cs-icon.svg

Difference Between Marketplace Apps and Extensions

Apps are the future of integrating and implementing third-party solutions within your CMS. In comparison to extensions, apps offer advanced functionalities as they extend all the features of your current extensions and more to provide a seamless integration with your favorite third party platforms.

Benefits of Using Apps Over Extensions

Here are a few important points that explain how apps can prove beneficial over extensions.

Ease of Use

  • Contentstack apps are much easier to develop, distribute, and discover.
  • Apps can be easily located, installed, and managed from the Marketplace.
  • Contentstack apps provides an interactive UI to manage your custom app configuration from a centralized location.

Developer Friendly

  • Apps minimizes the efforts that developers have to put into developing, deploying, and maintaining a solution.
  • With apps, developers can build complex functionalities in less time with better features.
  • Developers can effortlessly share app related upgrades with the customers.
  • Customers can use the latest and best version of the solution with updated app features from the Marketplace.

Packaging UI Locations

  • Extensions are now added as UI Locations inside an app. This lets you pack and install multiple instances of UI locations from a single app, which means that a single app can be used as a custom field, sidebar extension, dashboard extension, etc.
  • As different UI locations can be merged and packaged into a single app, they can be installed/ uninstalled with a single click.
  • As you can package UI locations together for apps, you only need to configure the apps once and use them in multiple forms.

Other Advantages

  • Private Stack Apps can be installed in all stacks of the same organization, reducing the code management in each stack whereas Public Apps can be installed in any stack and any organization, which reduces the code management multifold.
  • Apps allow you to merge the power of webhooks and UI locations and build compelling solutions.
  • Apps offer more security features and are scalable than extensions.

Note: We strongly recommend you to create and use Contentstack Marketplace apps instead of extensions.
Refer to our detailed guide on how to convert extensions into Marketplace apps.

Now, let’s understand some core differences between Apps and Extensions.

Difference Between App and Extension

The following table lists down the main differences between App and Extension:

AppExtension

An app is a single entity that can be reused in multiple stacks or organizations with just one click.

An extension can only be used for a specific stack.
This means that if you want to use a specific extension for multiple stacks, you need to create the same extension in all the stacks where you need it.

An app is a single entity that can be reused in multiple stacks or organizations with just one click.

An extension is scoped to a stack. Needs to be replicated across stacks to reuse

app-sdk is newer than extension-sdk and has comparatively more features.
Hence, apps are compatible with newer versions of development building blocks like Node.js, npm, etc.

extension-sdk has limited capabilities.

You can build a config page for your app and pass the configurations in it.
For example, https://{yourwebsite.com}/config will be your config page's location.

You can configure an extension through JSON.

You can open an app in a configuration window using your app's UI Locations feature during each installation.
There is no need to provide it in the config file while creating the app.

You can open an extension in a pop-up window using a separate URL that you can provide in config while creating your extension.

Here's an example of how you can use app-sdk and initialize it:

npm install @Contentstack_automation_test
/app-sdk
import ContentstackAppSdk from '
@Contentstack_automation_test
/app-sdk';
ContentstackAppSdk.init().then(function (appSdk) {    // Your UI logic goes here});

Here's an example of how you can use extension-sdk and initialize it:

<link href=\"https://unpkg.com/@contentstack/ui-extensions-sdk@2.2.0/dist/ui-extension-sdk.css\" rel=\"stylesheet\" >
ContentstackUIExtension.init().then(function (extension) {
// Your UI logic goes here})

Additional Resource: Refer to our App Development pages, to learn how to build an app for Contentstack Marketplace.

Was this article helpful?
^