Project configuration
Every project is unique, whether it is a web site or web application. A developer's role is to define the types of resources that a successful project needs and then provide a front-end to display those resources in a web browser. Designing resource types is called data modeling.
In addition to data modeling, developers also configure menus, which are used by end users to navigate between resources.
Data modeling
Your project will have one or more resource types. A resource type is a page or screen that your end-users will interact with. A simple website for a restaurant might have four resource types named: Landing page, Staff page, Bio page, and Menu page. And an online learning application might have different types, such as: Home page, dashboard, course listing, course, and lesson.
Some resource types may only be used by a single resource, like a home page, while others will be reused many times. For example, a restaurant may have weekly or seasonal menus and an online learning application may have many courses, each with many lessons.
The developer's role is to understand the project requirements and then name and configure the resource types that are needed to meet them.
A resource type is configured by creating a new type via the UI and then by adding and configuring fields on that resource type. Fields store pieces of data specific to their resource type. For example, a staff page may have a text field that stores an introduction for the restaurant's entire team and a second relationship field that stores references to each the the restaurant staff's bio pages. Fields may either be unique to a resource type or global, and available across every resource, for example a menu or footer information.
Making data available
Every resource corresponds to an API response, structured in a JSON:API compatible format. The schema of this response can be edited per resource type, choosing to include a field or rename it. Additionally, since resources may "reference" other resource, it's possible to create a unique schema mode with different fields included.