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.

Getting Started

If you are new to Jmix, set up your development environment and check out the Quick Start video for a 12-minute introduction to building applications.

After completing the quick start guide, explore the demo applications and look at the add-ons to get a sense of what is available in Jmix out-of-the-box.

The documentation contains everything you need to know for developing with Jmix:

  • Using Studio section gives you detailed information about Jmix Studio features and installation options.

  • 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 can be used in your project.

Visit our forum to get support from the Jmix team and community, read announcements and share your ideas!