The second quarter of 2018 was an amazing time for the Aurelia team with some major progress towards key goals in our 2018 roadmap. Read on to hear about what we've accomplished and what's in store next.

Platform Features and Capabilities

We've made some major improvements in our core platform capabilities during Q2, including features that greatly improve Webpack scenarios, treeshaking, and modern bundler integrations. Our core plugins for state, i18n and UX continue with strong forward movement as well.

Templating and Binding

Early in the quarter we announced major performance improvements in our binding engine's expression parser. In some cases a 10x speed improvement was measured. We've also added new binding expression syntax for template literals and tagged templates, new support for the instanceof , in , typeof , and void operators, and non-ASCII character variable name support. You can read more details about the new binding features here.

Some of the most significant new capabilities of the quarter have been through work on the templating engine. In particular, usage of string module names is no longer required to register custom elements, custom attributes, or any other templating resources. Now, you can simply provide the class itself to the resource API. This provides better compile-time checking and enables simplified tree-shaking for Webpack users.

What's Next

During the next few months we're planning to continue the templating work by adding similar capabilities to the Aurelia router and dialog plugins. This will enable registering route patterns and displaying dialogs with classes, rather than module strings.

Please note that we're not removing support for string-based module registration. Rather, we're adding additional support for direct class registration.

With these pieces in place, we'll then have a simpler mechanism for integrating with online tooling like CodeSandbox and StackBlitz .

Aurelia Store

One of the biggest highlights of Q2 was that we made our first official release of the Aurelia Store plugin, complete with full documentation!

One of the main changes during this quarter was to switch Aurelia Store to RxJS 6. If you haven't seen it yet, please take a look at the following upgrade instructions .

Besides the update to RxJS 6, we've improved the connectTo decorator, which with the help of @jmzargorski, now has support for multiple selectors. This opens up a whole new workflow in working with multiple modules and making parts of your app even more self-contained in regards to the Store. Take a look at the following discussion about how larger apps may be structured.

From the very early days of Aurelia Sore, there has been fantastic support from the community to help improve both the library and the documentation. We're grateful for how they've contributed to building this plugin and how they've tirelessly worked to make it one of the best state management tools available today.

What's Next

The Store plugin will continue to receive more samples showing-off its unique capabilities as well as more improvements to the docs. A major technical focus is to further reduce boilerplate code through improved decorators and optimized APIs. Finally, we hope to make the official 1.0 version release in the next few weeks.

Aurelia I18N

The Aurelia I18N library has seen several updates to the docs, plus improvements to the t-attribute , which now enables developers to define multiple target attributes for a single translation key. Here's an example:

Before, only this was valid: < span t = " [html]title;[placeholder]placeholderValue " > Title </ span > Now this is possible as well: < span t = " [html]title;[placeholder, aria-placeholder]placeholderValue " > Title </ span >

Additionally, developers are now able to turn off translations for missing keys, which helps to identify undefined keys.

What's Next

The I18N plugin's next major goal is a full TypeScript port and merge into the Aurelia vNext monorepo (info on vNext below). This will provide the opportunity to not only improve library usage for TypeScript users but also cleanup lots of work around setup and testability, making sure that the plugin initialization is more approachable and robust.

Aurelia UX

If you stay on top of design system news, you may have noticed that the Material Design standards were recently updated. In Q2 we updated Aurelia UX to match these standards. Additionally, we've been doing work to update UX to take advantage of many of the new templating features we added, as described above. This will improve the developer's ability to tree-shake Aurelia UX as well as give us some other, more streamlined options for shipping the components.

What's Next

In the coming months we'll continue to align with design standards and further update UX to take advantage of new Aurelia features.