Docs /  getting started

TroopJS is a minimalist framework for building scalable javascript applications. It's intrinsically modular, declarative, interoperable and performant.

TroopJS is best for

  • complex web pages that assembles massive amount of components.
  • applications that are meant to be compatible with different platforms.
  • building web pages that you intend to maintain for a long period of time.

Why TroopJS

Enterprise JavaScript applications are a P.I.T.A! As it scales, the more complex it becomes and before you know it, you're stuck with disorganized, fragile and unmaintainable code.

TroopJS lets you avoid the madness through the following:

  • Asynchronous by Promise A+, lets you stay away from callback hell;
  • First-class Component is enforced so as each component is rendered in isolation, addressing the complexity of large applications, coincident with the Web component concept;
  • Expresses behaviors in a declarative way, to help your code stay sane and maintainable;
  • Event is used for communication, because reactive beats proactive, *components DO NOT reference other components, allowing your application to be interoperable via asynchronous events.
  • Open ended implementation, it doesn't prescribe a particular rendering style or data model definition, so TroopJS components can be integrated seamlessly with any other libraries like jQuery plugins, template system, data-binding, rendering engine, controller, router, etc.


There are a couple of wheels that we don't want to reinvent in TroopJS, so we are drawing the minimalist dependencies on a few standard compliant, future-proof libraries:


Despite being a modern JavaScript framework, all TroopJS bundle modules are fully compatible with all major browsers. Yep, all the way down to IE6.

TroopJS runs fast even on relatively less performant mobile web containers like web view.

TroopJS runtime mainly tragets the browser environment. Having said that, core+ modules can run perfectly on Node using an AMD loader like requireJS which will allow you to run TroopJS components on the server-side with a different rendering layer.


The maximal (maxi.js) TroopJS bundle is currently at 13k minified + gzipped.


TroopJS is still a young framework. We're proud of what we've achieved in v3 but we're hungry and ambitious for more. If you want to be part of its evolution, we'd like to hear from you. Start by creating an issue


TroopJS will not be possible if not for the support provided by EF Learning Labs. It's main contributors at the moment are by @mikaelkaron and @garryyao. To get a full list of contributors, please view this link.

Find an error? Let us know →