Contentful has two different levels of roles, one of which applies to Organizations and the other to Spaces. An organization role controls whether a user can invite new users or update the organizations subscription plan and billing information. Space roles, in comparison, are responsible for the actions a user can perform within a particular space, and can be customized on our enterprise plans.
A space is a content repository. Think of it as a place to keep all the content related to one project. Each space has its own content model, content base and users permissions.
If you want to launch several websites or apps, the best way to go is to create a separate space for each project.
Note that if your goal is to deliver the same content to multiple platforms – a typical set would be web, iOS app and Android app – then you should use one space and create multiple API keys to deliver the content.
A content type works like a stencil which defines the structure of entries which can be created within a space. The collection of all content types in a space is typically called content model.
For example, let’s assume you're creating a quiz game similar to Who wants to be a millionaire. You would create a content type called Quiz question. It will contain five text fields: one for the actual question and 4 other ones for the answers. You will also need one Number field that will indicate the number of the correct answer.
When the content type is created and activated, editors will be able to create entries of the Quiz questions content type. These entries is what the players will see, and, again, their structure is defined by the content type.
You could also add more meta information to the content type to group questions by difficulty or category. Giving the content some structure through content types makes it more valuable and reusable.
Spaces are the top-level concept for organizing the content across projects. Usually each space would contain many content types. A space is where you will store your content types, according to the kind of project you are creating at the moment. Each content type is then used to create many entries.
You will typically end up with one or a couple of spaces. Each of these spaces will have a handful of content types, corresponding to thousands of entries.
Organizations are conglomerates of spaces with a specific plan attached to it. Organizations simplify the management of spaces and teams that belong to a common group (your company, for example). It enables managing multiple projects with different subscription plans. Organizations provide you with another permission system, which helps you manage your users' roles related to the Organization management.
The organization owner is the person who creates an organization and is responsible for its subscription. An organization ownership can be passed to another person or to multiple owners. Other users can be also added as organization administrators, but they cannot perform payments or access the billing information of the subscription of the organization.
References are relationships between one entry and other entries (which belong to the same space). References let you reuse existing content instead of duplicating it. For example, a reference can represent the relation between a book and its author or several authors.
When using structured content that is consumed by many different platforms it is very important to ensure that your content is valid. Validations check if the data entered in a field meet certain criteria.
For example, if there's a field which should store e-mail addresses then you want to ensure that editors will only be able to enter e-mail addresses in there – not numbers and not text paragraphs.