Technical Benefits

There are many technical advantages to using Aurelia. In this article, you will find a list of points we think are interesting. Taken together, there is no other SPA framework today that can match Aurelia.

Modern JavaScript

  • Fully written in standards-based ES2015+ and TypeScript.
  • Forward compatible with JavaScript technology coming in future ECMAScript specs.
  • Full support for both Babel and TypeScript.

Modern DOM

  • Consistently leverages the most modern DOM APIs.
  • Bare "to the metal" usage of the DOM; no DOM wrappers in order to ensure maximum performance and memory efficiency.
  • Automatically polyfills the DOM where appropriate, in order to support older browsers.

Modern Tooling

  • Supports modern build tooling via the Aurelia CLI and Webpack, out-of-the-box.
  • Works well with powerful testing tools like Karma and Protractor.
  • Provides a custom Chrome debug panel as well as a VS Code plugin.

Code Quality

  • Source code is covered by an extensive suite of unit tests.
  • All source is fully linted for style and feature-usage consistency throughout.
  • TypeScript d.ts files and full API documentation are provided for all libraries.

Web Component Standards

  • Leverages W3C Web Components specs such as HTMLTemplateElement and ShadowDOM.
  • Fully compatible with 3rd-party Web Components, even those originating from other frameworks, such as Polymer.
  • Provides a Web Component-based programming model even on browsers that will never support Web Components.

Modularity

  • Highly modular development, suitable for small and large-scale apps alike.
  • Native support for feature-based development facilitating parallel development of multiple teams on the same app.
  • Strong component model for high re-use of UI components across apps.

Platform Support

  • Designed for modern web browsers but supports older browsers, such as IE9, via additional polyfills.
  • Designed for mobile application development in combination with PhoneGap/Cordova/Crosswalk.
  • Designed for desktop application development in combination with Electron or NWJS.

Capabilities

  • Write apps in ES2015+ and TypeScript.
  • One simple way of creating components that work in a variety of contexts:
    • Custom Elements
    • Dynamically Composed UI (data-driven component composition)
    • Routing/Navigation
    • Modal Dialogs
    • Web Components
    • Progressive Enhancement
    • Custom scenarios enabled through low-level access to our View Composition Engine
  • Fully-extensible View Compiler, View Engine and View Resource Pipeline.
  • Fully-extensible and adaptive data-binding engine.
  • Powerful and flexible hierarchical dependency injection.
  • Eager/Lazy/Hybrid loading of any/all application resources.
  • Powerful application router with support for encapsulated child routers for multi-team, large-scale development.
  • Optionally create standards-compliant Web Components or use Aurelia to "shield" you from unstable specs.
  • Interoperate with any standards-compliant Web Component.
  • Loosely coupled cross-component communication via publish/subscribe.
  • Fully customizable application startup and plugin model.
  • Enables authoring of testable, maintainable and extensible code.
  • Leverage conventions to write less code and get more done.
  • Little to no framework intrusion, so developers can focus on their app, not the framework.
  • Application and package bundling compatible with all major build systems.