Was this page helpful?

App Framework

This section helps you, as a developer, understand the underlying technology behind apps and create your first Contentful app.

What can apps do?

Contentful apps are packages that simplify customization or integration by modifying your space. An app can help adapt Contentful to individual business processes and integrate with other services.

Every app has access to the SDK, which makes it possible to read and write most of the data in a Contentful space.

Some possibilities are:

  • Manage content variations to run experiments on structured content using experimentation tools like Optimizely
  • Trigger builds or pipelines within third party CI systems
  • Integrate with translations services to automate localization needs
  • Integrate assets from digital asset management (DAM) services

There are several concepts that are useful to familiarize yourself with before building your first Contentful app.

Note that apps are self-host only; they cannot be hosted on Contentful.

App definition

Understanding AppDefinition is key to understanding the benefits of apps. AppDefinition centralizes app creation on the organization level.This makes them available for installation in every space and space environment with just a click of a button. Compare this to UI extensions, which require you to create an instance each time you want them to use one in an environment. And, when you update your AppDefinition, the updates are available in all space environments where the app is installed..

Apps are split into two entities: definition and installation. An AppDefinition lives on the organization level and defines the core parameters of the app. Think of an AppDefinition as meta information about your app and its settings, like a template for a UI extension. This template is then referenced by an AppInstallation inside a space environment, expressing the installation of the app in said space environment. The installation maintains a link to the definition and this link is resolved when the app is loaded by the user. You only need to maintain one copy of your central configuration for the app. It’s no longer copied into every environment as was the case with UI extension installations.

App definition and installations