Table of contents

Welcome to the documentation of the IMA.js framework. If you’ve missed our tutorial, go ahead and read it through. It’s great to catch a glimpse of how to work with the application.

In the documentation you’ll find an in depth look to every part of the IMA.js framework. If you’re not searching for specific information or you’re reeding this for the first time, it’s good to stick to the order of the pages. Many things refer to each other and we’ve tried to organize the page so you don’t have to jump from one to the other.

Also, a lot of features is emphasized in examples and notes below examples. Take some time and read them carefully.

In case you want to dig right into the interface of each class and component, take a look at the API.

Installation & Build

First you’ll need to install the IMA.js framework and learn how to run it in a development and production environment. This page will also introduce you to the application structure.

Jump to:


Overview of how to configure you application, build system and more. Configuration is a key feature you should comprehend before anything else because It lays a solid foundation for gaining next knowledge.

Jump to:

Object Container

Registering things in Object Container is part of configuration but that’s not everything the Object Container can do. Learn how to define you dependencies, aliases, implementations and constants and how to retrieve them wherever you need them.

Jump to:


Routing is also part of the configuration topic but it deserves a separate page. On this page you’ll learn how to set-up a router and how to create links to the routes you’ll register.

Jump to:

Page Manager

Page Manager is an essential part of IMA.js. It’s something like a puppeteer that manipulates with pages and views. Once a router matches URL to one of route’s path the page manager takes care of the rest.

Jump to:

Page State & Controller

Core of each application is the data the app is working with. PageStateManager provides state management during application run and takes care of distributing data to controller and its registered extensions.

Jump to:

Controller lifecycle

Controller lifecycle page will tell you about a journey every controller goes on when a specific route activates. Understanding this will make you a master of controlling your application and managing it’s state. SEO and MetaManager is an integral part of controllers so be sure to check out that page too.

Jump to:


A small digression from the conventional MCV structure. Extensions are like controllers for components without a need to register them under a specific route. They provide a lot of flexibility in managing the state and loading data.

Jump to:

Rendering process

A detailed explanation of what where and why the IMA.js renders, how to perform tricks like persistent components or where to set the application context. Learning the rendering process is a prerequisite before reading the View & Components page.

Jump to:

View & Components

Overview how the rendering process continues down to the smallest part of your application. Learn what happens with the View when route changes and how to organize your Views.

Jump to:

EventBus, Dispatcher & Events

EventBus and Dispatcher are great utilities that make working with events really simple. This page also describes events used by IMA.js to communicate with your application.

Jump to:

SEO & MetaManager

MetaManager is a handy tool to manage meta information that usually changes with every page. You don’t have to pass meta information through the state or view variables. Handle your SEO like a PRO!

Jump to:

Dictionary (i18n & l10n)

Internationalisation and localisation in IMA.js with parameters replacement, pluralisation and other neat features according to ICU.

Jump to: