It uses an interesting combination of technologies/techniques:
- Web Components: as an infrastructure for widgets (polyfilled where necessary)
- 6to5: to compile ECMAScript 6 to ECMAScript 5
- jspm: for package management
- MVVM (as used by Knockout and the Knockout-inspired Durandal): as a UI pattern
There is work on system.js currently to decouple it from traceur and allow the use of 6to5 instead. Note that it only loads traceur if you are feeding it actual es6 code that hasn’t been transpiled. Since aurelia is transpiled and the skeleton is set up to use 6to5…system.js actually never loads traceur and it never comes into play.
I haven’t used Aurelia, yet. Opinions welcome.