Why we use IMA.js and you should too?
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 have created the IMA.js framework. Here are a few outlines that we're most proud of:
- 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.
Main IMA.js parts
- core - it contains base classes and common classes for every day work which allows you server side rendering and hydrating application in browser.
- server - it contains methods which allow you to connect IMA application with the express framework.
- gulp-tasks - IMA.js usees gulp for bundling and automatization. There are prepared common tasks and a base configuration.
See the ima-plugins repository for available IMA.js plugins.
Initialize application skeleton with single command
npx create-ima-app # or if you are using yarn yarn create ima-app
and start the development!
cd create-ima-app npm run dev # or if you are using yarn yarn dev
Contribute to this project via Pull-Requests.
We are following Conventional Commits Specification. To simplify the commit process, you can use
npm run commit command. It opens an interactive interface, which should help you with commit message composition.