flavourCreated with Sketch.

An open specification for portable web applications

Request an invitation for the first cloud implementation of Flavours • Powered by Divio CMP

Flavours allows you to describe application configurations in a vendor-neutral standardised way that can be shared and remixed.

Integration

Easily integrate different services into web applications with automatic discovery and configuration functionality.

Deployment

Create vendor-neutral configurations that work seamlessly with existing container technologies to enable rapid deployment anywhere.

Distribution

Distribute software and services through a common specification, across cloud vendors, hosting services and platforms.

What is Flavours?

Flavours is a platform-independent specification and reference implementation for working with containerised web applications.

Container platforms and configuration management tools have made it faster and easier to package and deploy web apps, but key steps in the deployment workflow remain unstandardised, fragmented and left to DevOps teams to address on a per-project basis.

This is the gap that Flavours aims to fill.


Why do we need Flavours?

Flavours addresses the needs of the multiple user-types in an ecosystem, by providing the configuration glue that connects platform, application and addon developers together with service and hosting providers.


An application is a self-contained project, such as a website.

I am building a complete website and I want it to be portable and vendor-neutral.

As an application developer, adopting Flavours means your application becomes more portable and can be run on any hosting service supporting Flavours, or directly within your own development environment.

The Flavours application configuration file - app.flavour - is included in the root of your project and can be stored in your preferred version control tool. As you make configuration options available in your application, you can add them to its configuration file with default values that are in turn discovered and enable supporting hosting services to expose configuration options.

You can integrate addons and service providers into your project by including a loose reference to the addon or service, which will be automatically discovered and resolved.


How does Flavours work?

The Flavours specification comprises of YAML-based configuration files, the Flavours command line tool and platform-specific addon managers. The app.flavour is bundled with the application and describes the applications dependencies and configuration options. In turn this is used to select an appropriate addon manager that resolves dependencies and performs the application configuration and setup.

Together with container technologies, applications can be deployed and run with no vendor-specific settings and seamlessly moved across environments.

My Application

Applications are described in a configuration file called app.flavour. This describes app configuration options and dependencies on other services or addons.

Hosting Provider / Localhost

The app.flavour can be interpreted using the Flavour command line tool for local development or by any hosting provider that supports Flavours. The app.flavour references addons that are found in the addon registry.

Service Providers

Service providers expose services and make them discoverable through addons that integrate their services.

Addon Registry

The addon registry is a repository of Flavour aware addons that are accessed by addon managers. Each addon is described with an addon.flavour configuration file that is queried by the Flavours command line. Addons can integrate service providers or standalone functionality.

Addon Manager

Addon managers specialised for different platforms, are fetched from Docker Hub and are added to addon.flavour configuration file. Addon managers manage the project dependencies and prepare the project.


Frequently asked questions

Who created Favours?

Flavours was initially created by Divio - the same team behind django CMS and Divio CMP. Flavours was born out of a need for an extensible way to add flexible platform support without introducing vendor-specific configuration.

How is Flavours licensed?

The Flavours specification and reference source code is licensed under Apache 2. We hope the included reference code will help others adopt Flavours and join the conversation to further develop the specification.


Media Kit

You can find the Flavours logo and other resources in our Git repository. We kindly ask you to link to the Flavours website when you reference Flavours and not to modify the logo.

Media Downloads