Recs.
Updated
Aurelia is a collection of JavaScript modules, which when used together, function as a platform for building browser, desktop and mobile applications, all open source and built on open web standards.
SpecsUpdate
Pros
Pro Easy to use MVVM
Aurelia is a MVVM framework like angular. If you need a framework for a composite MVVM web SPA, Aurelia is your go to framework. It's much simpler and much less opinionated than Angular.
Pro Easy to learn
Learning Aurelia basically means learning ECMAScript and HTML, since Aurelia is designed for standards compliance. Also, Aurelia embraces upcoming ES language features by convention, such as ES class decorators for dependency injection, encouraging clean architecture and future-proof code.
Pro Powerful helper CLI available
https://github.com/aurelia/cli
The CLI helps rapid creation of projects with generators, building, deploying and hot reloads. Webpack should be coming soon.
Pro Provides dependency injection
With dependency injection, you can load in extra javascript and new functionality just when you need it.
This is particularly helpful with testing as you can swap out services for test services.
It also means in single page apps you can load dependencies only as you need them instead of loading them up all up at the start.
Pro Plays well with other frameworks
Aurelia can be used alongside of React and Polymer, since it is designed for interoperability. In practice, this means Aurelia developers can use React components by including an Aurelia custom element.
It also works well with Polymer, since they are both based on the WebComponents standards.
Pro Commercial support
Aurelia has commercial support and is an official product of Durandal Inc.
Other frameworks like React and Angular are not official products of Facebook and Google. They're not even related to the core business of those companies (advertising). You can buy commercial support for Aurelia and not have to worry about being left without an upgrade path (NG1 to NG2).
Or be told that software is at Release Candidate 4 state on one day and then be told the router is being rewritten the next followed by splitting the code-base into dart and typescript versions. (guess which version google uses... hint: not the typescript version).
Pro Allows developers to build their application however they want
Aurelia is extremely unopinionated and was designed to be highly modular. This gives the developer the freedom to develop their application however they want, without forcing them in paradigms or rules predefined by the framework. Likewise, any of the individual components can be swapped out if so desired.
Pro Data binding choices with sane defaults
Aurelia defaults to one-way data binding, alining with conventional wisdom. However, there are times when two-way data binding proves useful, such as binding an input widget with a view-model. Aurelia makes two-way data binding available to developers and uses it by convention when appropriate.
Pro Variable binding helps with self-documenting the code
The syntax used to bind variables within the application class is very similar to Javascript itself. You can specify the type of the binding you are using explicitly, which practically self-documents your code and makes it easy to understand whether a value is one-way or two-way binded.
Pro Great documentation
One of the most crucial pieces of any new technology or framework is the documentation. At present even though Aurelia is pre-beta, the documentation is pretty complete. There are code examples missing and whatnot, but for the most part it is concise and makes the main parts of the application easy to understand.
Cons
Con Small following
Aurelia is pretty new compared to some of the other options here and it hasn't had a fast adoption rate from developers. Which unfortunately translates in relatively fewer resources and guides from which to learn the framework.
Con Self-paced training options are very limited right now
There's not as much training resources available for Aurelia as there are for other Javascript frameworks. This will be fixed in time as more and more developers use Aurelia, but for the time being it may be a bit harder for beginners to find entry-level guides and tutorials.