Get the Newsletter

Aurelia

Simple.
Powerful.
Unobtrusive.

GET STARTED GitHub Dark icon GITHUB

Why Aurelia?

Join thousands creating next-generation apps.

Easy to Learn

Aurelia's standards-based, unobtrusive style makes it the only framework that empowers you to build components using vanilla JavaScript or TypeScript. If you know modern JS and HTML, there's little more to learn to build even the most complex apps.

High Performance

At the core of Aurelia is a high-performance, reactive system, capable of batching DOM updates in a way that leaves other frameworks, and their virtual DOMs, in the dust. Experience consistent, scalable performance, no matter how complex your UI.

Extensive Ecosystem

State management, internationalization and validation - all official plugins from the core team. CLI, VS Code plugin, and Chrome debugger - optional tools to enhance development. Aurelia is not just a framework, but a powerful platform and ecosystem, designed to ensure your rapid success.

Reactive Binding

Aurelia enables powerful reactive binding to any object. By using adaptive techniques Aurelia selects the most efficient way to observe each property in your model and automatically syncs your UI and your state with best-in-class performance.

Simple Testing

By combining modern JS modules with an unobtrusive approach, Aurelia makes unit testing as simple as testing vanilla JS. Need to write integration tests? A powerful Dependency Injection Container and testing library make it quick and easy. You benefit from highly maintainable and longer-lived apps.

Unmatched Extensibility

Nothing in the industry can match Aurelia's extensibility. You can create custom elements, add custom attributes to existing elements, control template generation, customize template syntax, create new reactive binding types, extend the DI, and just about anything else you can think of.

Effortless Coding with Conventions

Conventions let you focus on your code and your business logic. Aurelia stands out as the only framework today that situates your code at the center of your app, rather than the framework. Don't like the conventions? Plug in your own or drop them altogether. You are in control.

Routing, Composition & Progressive Enhancement

Leverage Aurelia's advanced client-side router with its pluggable pipeline and child routers. Don't need a router but need dynamic, data-driven UI composition? We do that too. Have a legacy app? Aurelia's progressive enhancement and script-tag build make it easy to incrementally adopt too.

See It in Action

The simplicity, power, and unobtrusiveness of Aurelia on display.

A Simple Component

Building a component with Aurelia is as simple as creating a vanilla JavaScript or TypeScript class with normal properties and methods.

Reactive Binding

Aurelia's reactive binding system knows exactly what changes and when it changes. It uses this knowledge to update your UI in the most efficient way possible.

An Application

By using simple classes with properties and methods, we can assemble a full application. This Todo example uses a vanilla JS array to track a list of todos. It also tracks the text you enter to create new todos. Despite the fact that this is a simple app, the basic vanilla JS patterns shown here can scale to apps containing hundreds of thousands of lines of code.

Read the Todo App Tutorial →

Open Collective

Proud financial backers of Aurelia.

Gold Sponsors

Bronze Sponsors

Wood Sponsors