Welcome to the Jmix documentation!

What is Jmix?

Jmix is a high-level framework for enterprise web applications. It comes with advanced tooling and a rich set of functional modules.

Jmix is best suited for creating data-centric applications with a complex data model and rich user interface. It is a full-stack framework in the sense that it provides support for creating both the backend and UI of your application.

Jmix is based on Spring Boot, which is a de-facto standard for creating enterprise Java web applications. It means that you can use a lot of third-party libraries and frameworks with minimal configuration, in addition to the functionality provided by Jmix.

Jmix itself consists of a number of fine-grained modules that you include in your project using starters, as you would do for any Spring Boot application. All modules except the core one are optional, so you can have only dependencies that you really need.

Jmix Studio is a plugin for IntelliJ IDEA that helps you at all stages of the application development: creating and configuring a project, defining data model, generating database migration scripts, developing UI screens in a visual editor. It provides advanced navigation, code completion and inspections specific to Jmix projects.

Key Concepts

Jmix provides a convenient way of working with one or multiple relational databases. With some additional effort, you can connect to any data source like a no-SQL database or an external API.

Developing with Jmix usually starts from defining the data model. Jmix Studio creates the database schema from the data model automatically, and when your data model evolves, Studio helps you synchronize the database schema with the model by generating database migration scripts. If you have an existing database already, you can generate the data model from your database schema, also with the help of Studio.

Jmix is based on Spring Framework, so use Spring beans to create the business logic that works with your data model.

As soon as you have some entities in the data model, Studio can generate UI screens for CRUD operations on the entities. Then you can customize the UI in many ways: change the layout, add and remove visual components, adjust the data loading.

Documentation Overview

If you are new to Jmix, set up your development environment and go to the Quick Start section which will walk you through the creation of a small fully functioning application.

Check out the Using Studio section to get more information about Jmix Studio features and installation options.

The rest of the documentation is organized by topics:

  • The top-level sections from Data Model to Deployment explain basic topics that help you develop any kind of application.

  • The Add-ons section describes additional modules that provide out-of-the-box functionality to your project.

  • Appendices contain some reference information.