--- sidebar_navigation: title: Development concepts description: Get an overview of the development process and concepts at OpenProject robots: index, follow keywords: development concepts, big picture --- # OpenProject Development Concepts OpenProject development encompasses a large number of complex topics and terminologies. This guide will introduce some concepts and give you a big picture of the development processes. Please choose an area that you would like to read about: | Topic | Content | | ---------------------------------------------------- | :----------------------------------------------------------- | | [Application architecture](application-architecture) | An introduction of the application architecture used at OpenProject. | | [State management](state-management) | How does the frontend handle state and react to changes? | | [HAL resources](hal-resources) | What are HAL resources and how are they used in the frontend? | | [Permissions](permissions) | How are roles and permissions handled in OpenProject code ? | | [Translations](translations) | How are translations used and built? | | [Resource schemas](resource-schemas) | What is a schema and how is it tied to an editable resource? | | [Resource changesets](resource-changesets) | How is change tracked to resources in the frontend and how to save the changes? | | [Inline editing](inline-editing) | How does inline editing and the edit field functionality work in OpenProject? | | [Queries and QuerySpace](queries) | What is the Query API concept and how is it used in the frontend? |