Aurelia is a JavaScript client framework for mobile, desktop and web leveraging simple conventions and empowering creativity Forward-thinking Written with next-generation EcmaScript. Integrates with Web Components. No external dependencies. Leverage the technology of the future but target today's mobile, desktop and browser environments. Modern Architecture Rather than taking the monolithic framework approach, Aurelia is composed of smaller, focused modules. Use them together as a full-featured framework or pick and choose to build a custom solution. Two-Way Databinding Our technology enables powerful two-way binding to any object. By using adaptive techniques we can select the most efficient way to observe each property in your model and automatically sync your UI with best-in-class performance. Extensible HTML Aurelia's extensible HTML compiler lets you create custom HTML elements, add custom attributes to existing elements and control template generation, all with full support for dynamic loading, databinding and high-performance batched rendering. Routing & UI Composition Leverage our advanced client-side router with its pluggable pipeline, dynamic route patterns, child routers and asynchronous screen activation. Don't need a router but need dynamic, data-driven UI composition? We do that too. MV* with Conventions Who wants to waste time writing tons of configuration code for their MV* architecture? Simply leverage conventions to make constructing your app effortless. Don't like the conventions? Plug in your own or drop them altogether. Broad Language Support Use ES5, ES 2015, ES 2016 and TypeScript. Aurelia's APIs were carefully designed to be consumed naturally from both today's and tomorrow's popular web programming languages. Testable By combining ES 2015 modules with a simple, yet powerful Dependency Injection Container, we make it easy for you to create highly cohesive, yet minimally coupled code, making unit testing a snap.