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.
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.