# Mantra Component Assets Mantra intends to split the functionality of a complex and scalable application in several and small Mantra components. To do that, some specific assets and functionality has their own space in the component that the framework will *glue* with other components during the run time of the application. As described in the following sections, a component can define a number of *assets* (and define new ones): * Access condition handlers * APIs * Blocks * Cron jobs * Events * Js and css files for specific files * Middlewares * Posts * Prerequest handlers * Templates * Views * Component extends With all this stuff, you can develop applications with the codebase extremely organized, maximazing the reuse of functionaly (inside the project and in other projects) and you can afford *big* systems with hundreds of components without incresing the dificulty of its maintanability and evolution. *** To learn by example, go to [Mantra demos](https://www.mantrajs.com/mantrademos/showall) and [components](https://www.mantrajs.com/marketplacecomponent/components) sections of [Mantra site](https://www.mantrajs.com).