1. Easy way of bootstrapping a new application 2. Integrate it within the existing framework 3. Optimize compilation and deployment times after adding functionalities