2017 was a great year for Aurelia but 2018 is shaping up to be even better!

We're so thankful for all the community members who helped to make this possible in 2017. At the end of the year, our total contributors came to 581! Several of them even published books through major publishers. Here's where you can find their writings:

The Aurelia Core Team, with strong partnership from our awesome community, accomplished some amazing work in 2017! Last year, we released several brand new libraries, driven by strong engagement with the community. One example is the Aurelia Validation library. Another is the fresh start we made on Aurelia UX , which now boasts 11 components, along with core support for styling, theming, icons, and more. We also made huge advancements in tooling with the release of the Aurelia Inspector for Chrome , greatly enhanced support for the latest Webpack, major CLI improvements, and advancements in our Aurelia VS Code Plugin . Of course, we also focused in on the core by continuing with performance work, memory consumption improvements, and adding new fundamental features, such as component inheritance. Finally, we launched a complete refresh of the Aurelia site and documentation including a new Discourse forum .

2018 and Beyond

We've got so much in store for 2018 that we know you are going to be excited about. We're looking forward to taking Aurelia to the next level and can't wait to get you involved.

Platform Features and Capabilities

There are several new features and platform capabilities that we hope to add in 2018. Most of these are already in-progress in some form or another...

Server-Side Rendering (SSR)

For a long time, we've wanted Aurelia to support server-side rendering. We're happy to share that the bulk of the work on this feature was completed in 2017. In fact, we're very, very close to releasing our SSR support. You can find the related libraries here and here . There is still some work left to do, but we hope to have a full sample project and initial release of these libraries as one of the first big items of 2018.

Aurelia UX

As mentioned above, we made a great start on Aurelia UX in 2017. Over the next year, we're hoping to greatly enhance this library in ways that will provide a tremendous advantage to you. Here are a few areas we're looking into:

Application Layout

Layout Grid - Initial work on a responsive grid system for application layout is already done and it should be ready soon.

- Initial work on a responsive grid system for application layout is already done and it should be ready soon. Toolbars - Toolbars provide a common place for actions and titles. We have a basic implementation that should be ready after a few more improvements.

- Toolbars provide a common place for actions and titles. We have a basic implementation that should be ready after a few more improvements. Sidebar/Drawer - This is a useful component for menus and, in the case of a collapsible drawer, a place to put content that does not need to be displayed constantly. We have a partial implementation of this and hope to complete an initial component soon.

- This is a useful component for menus and, in the case of a collapsible drawer, a place to put content that does not need to be displayed constantly. We have a partial implementation of this and hope to complete an initial component soon. Cards - This is a useful component for laying out applications, prevalently used in mobile scenarios. We'd like to have something out-of-the-box that makes this UI pattern easy for developers.

Styling

Design Language Styling - We designed our system to be able to change the look of components based on the detected platform. So far, we've focused on the Material Design language. We'll be working to add iOS next.

- We designed our system to be able to change the look of components based on the detected platform. So far, we've focused on the Material Design language. We'll be working to add iOS next. CSS Reset - In order to make component styling more consistent and predictable, we'll be adding a standard reset, available soon.

- In order to make component styling more consistent and predictable, we'll be adding a standard reset, available soon. Font Handling - With our style system now based on CSS Variables, we plan to add a nice API that plugs into this to let you bring your own fonts to the table.

- With our style system now based on CSS Variables, we plan to add a nice API that plugs into this to let you bring your own fonts to the table. Theme Groups - Aurelia UX already makes it easy to re-theme components. We'd like to enhance this by making it simple to create a group of related component themes that are sharable and can be easily loaded and swapped in/out of any application.

More Components

As with any component library, we constantly evaluate what components to add next. Here's a list of what's currently at the top of our list:

Progress (Linear)

Progress (circular)

Select/Picker

Tabs/Pivots

Web Component Export

Long-time users of Aurelia will know that we built the framework from the beginning for strong compatibility with Web Components. In fact, we planned from day one to enable any Aurelia component to be "exportable" as a standard Web Component. You may not know that we have an Aurelia plugin in early preview that enables exactly this. For some time, the Web Component specs were quite volatile. Now that things have settled a bit and we're seeing browsers implement the standards, we think 2018 is the year to publish this plugin.

If you are passionate about Web Components, we'd love for you to help use test the Aurelia Web Component adapter and help us prepare it for an official release.

Single-File Components

While Aurelia has focused primarily on optimizing UI workflows for teams working on the same components in parallel, we realize that smaller teams and individual developers have different workflows and needs. To address this, we're hoping to enable a single-file component development story in 2018.

State Management

Handling state in larger apps can become quite tedious as dependencies and features grow. Back in April of last year we asked the community how it handles state in its applications. While most replied that they are using "classic services", a large segment of our community is still hand-rolling custom solutions.

Our plan is to provide an officially supported plugin for state management, that meets the needs of large apps by providing a predictable state container. This means that besides the classic features like actions, middlewares and a Redux DevTools integration, the focus is on having a solid handling of async state calculations, a queued dispatch pipeline, baked-in support for performance measuring and undo-redo of states over time. Additionally, the plugin is developed with both TypeScript and JavaScript developers in mind, to provide you the best support for both worlds, while maintaining a high level of test coverage to ensure every use case is handled as it should be.

You can follow the rapididly progressing development over here and give it try, or take a look at the collection of example apps . Feedback is welcome. Helping us by trying out the beta plugin will ensure it meets our planned release later in 2018.

Tooling

Our tooling came a long way in 2017, but we need to go further. Here are a couple of items we're already working on for this year:

CLI Platform Targets

The Aurelia CLI supports tons of options so that developers can pick their favorite JS transpiler, CSS transpiler, module bundler/loader, IDE and more; however, up to this point, our CLI has focused almost exclusively on scaffolding and building web applications. In 2018 we hope to expand this to include both Electron and Cordova/PhoneGap support. Beyond that, we want to enable you to have a single CLI project that targets multiple platforms at once: write code once and use a single CLI command to build for Web, Windows, MacOS, Linux, iOS and Android. That's the vision.

Template Intellisense

Today provides basic syntax highlighting and Aurelia binding language completion in HTML templates. We hope to take this up a notch in 2018 by adding model binding intellisense. In fact, we just merged our first basic support for this into the codebase this week.

Site and Documentation

We recently launched a complete re-write of the Aurelia site and documentation engine. With our new implementation, it's much easier for us to write and publish documentation updates and expand the platform with new features. We have tons of plans around this and believe that our investment in this area will have a huge impact on helping people to learn and use Aurelia as well as bringing new people to the platform.

Patronage

We've been developing Aurelia for over three years. WOW! In fact, the three-year anniversary of the original alpha release is only a few weeks a way. As a project like ours continues to grow and mature, it's important that we invest in ways to sustain both the maintenance of the existing code and the development of new capabilities. To this end, in 2018 we'll be launching several initiatives centered around long-term sustainability of the project. Here are two that you'll be hearing much more about soon...

Open Collective - We're launching an Aurelia Open Collective very soon. This will provide a standard way for both individuals and companies to financially contribute to the core project, helping us to pay for recurring expenses and fund development of high-priority features and fixes.

- We're launching an Aurelia Open Collective very soon. This will provide a standard way for both individuals and companies to financially contribute to the core project, helping us to pay for recurring expenses and fund development of high-priority features and fixes. Team Member Patreons - Each of our Core Team members "owns" specific parts of the Aurelia ecosystem that they focus their attention on. Several of our team members are in flexible employment scenarios that, provided funding, would allow them to spend extensive time working on Aurelia. Through Patreon, we hope to enable our community to target funding towards specific team members who are working on aspects of the framework that they care most about.

vNext

What happens after all this? Is there an Aurelia 2.0 or 3.0 on the horizon? YES!

We've been thinking hard about what we want to do for the next major version of Aurelia. One thing that's important to us is that, even though it's a major version change, we want to keep the APIs and programming models as close as possible to what they are today. We're proud of the stability we've created in the Aurelia ecosystem and we want to maintain that as much as possible, even across major versions.

When we look hard at our current implementation, there are a few things we'd like to fix and we think we can restructure some of the project to enable a more modern development and contribution workflow for our team and community.

We don't know when we'll complete this work, but here are a few things we're thinking about for the next major version of Aurelia: