1. Meteor JS
1.1. Open source platform for web, mobile and desktop.
1.2. Best used for
1.2.1. Rapidly developing smaller, reactive applications
1.3. Pros
1.3.1. Speed!
1.3.2. Very simple and straightforward
1.3.3. Need only JavaScript for client and server development.
1.3.4. Same code works for web, iOS, Android and desktop
1.4. Cons
1.4.1. Not ideal for large, complex applications
2. Backbone JS
2.1. Modal-View-Presenter (MVP) model
2.2. Best used for
2.2.1. SPA applications
2.3. Pros
2.3.1. Event driven communication between views and model.
2.3.2. Automatic syncing with back-end
2.3.3. Format is well-structured and organized
2.4. Cons
2.4.1. Not ideal for large and complex applications
3. Node JS
3.1. Event-driven, non-blocking I/O model
3.2. Best used for
3.2.1. SPA applications
3.3. Pros
3.3.1. Asynchronous, event-driven
3.3.2. Highly scalable
3.3.3. Fast, no buffering
3.4. Cons
3.4.1. Not suitable for CPU intensive applications, large and complicated web applications.
3.4.2. Does not support relational database
4. AngularJS
4.1. Model View Controller (MVC)
4.2. Best used for
4.2.1. Complex and active web applications
4.3. Pros
4.3.1. Works well with other libraries
4.3.2. Fast code production
4.3.3. Two way binding
4.3.4. Improved server performance
4.3.5. Simple testing and debugging
4.4. Cons
4.4.1. Difficult to learn
4.4.2. Quite time consuming
5. React JS
5.1. Non-MVC framework
5.1.1. React is a declarative, efficient, and flexible JavaScript library for building interactive user interfaces.
5.2. Best used for
5.2.1. Applications where data is changed frequently
5.3. Pros
5.3.1. Declarative views make code more predictable and easier to debug
5.3.2. Great app performance due to virtual DOM
5.3.3. Can be used client and server side
5.3.4. Can be used with other frameworks
5.3.5. Renders on the server using Node
5.3.6. Powers mobile apps using React Native
5.4. Cons
5.4.1. Poor documentation
5.4.2. JSX is complex > steep learning curve