The package was moved to https://github.com/seznam/ima/tree/master/packages/create-ima-app.
The IMA.js is an application development stack for developing isomorphic applications written in pure JavaScript and React.
Here at Seznam.cz, development of a frontend application comes with many checkboxes that need to be ticked off before the project goes public. Mainly because of a diverse audience and a challenging product requirements.
In order to not reinvent the wheel on every project and to address all of these problems (checkboxes) we created the IMA.js framework. Here are a few outlines that we're most proud of:
- Isomorphic - application logic is first executed at the server-side, generates the page markup, and then when the application logic is executed at the client-side it automatically binds to the server-generated markup and acts like a single-page application (or a multi-page application if the client does not support JavaScript). This allows for fast load times, out-of-box support for web crawlers and greater overall user experienc (or UX for short).
- React compatible - IMA.js Views extend the React Component and are in tight cooperation with our Controllers. That means you can use the full magic of React v16 without loosing anything.
- Production ready - there's no need for additional setup or configuration. IMA.js uses evironment-specific configurations from the start.
- Battle tested - IMA.js is used on various projects across Seznam.cz. Some of them pushing the limits of what a frontend application can do.
We have prepared a complex tutorial for you: Your first IMA.js application. This tutorial covers the basics of creating isomorphic web applications using IMA.js, but you will encounter some more advanced concepts in there as well.
For a more in-depth information about the IMA.js see a full documentation.
- IMA core - it contains base classes and common classes for every days work which allow you server side rendering and hydrating application in browser.
- IMA server - it contains methods which allow you connect IMA application with express framework.
- IMA bundle - IMA.js use for bundling and automatisation gulp. There are prepared common tasks and base configuration.
Here's a list of plugins maintained by Seznam.cz and other contributors that you can safely use in your app:
- Abstract analytic
- Google analytic
- 3rd party scripts loader
- 3rd party styles loader
- REST-API Client
- XHR (This is not a replacement for the fetch API that IMA.js uses by default.)
- UI Atoms
- Extra-props selector
- Self XSS