Aurelia 2018 Q1 Report

Posted by Rob Eisenberg on April 2, 2018

With the first quarter of 2018 now behind us, we wanted to take the time to provide an update on the progress the Aurelia team and community have made towards our 2018 roadmap goals.

Platform Features and Capabilities

We've made some significant advancements in our core platform capabilities during Q1, including releases that have been in high demand for quite some time. Let's dig into the details...

Server-Side Rendering (SSR)

In late February, we announced the availability of server-side-rendering for Aurelia, built on Node.js and Koa. We put everything together in a nice new skeleton , designed to get you up and running quickly .

Since the release of this skeleton, we've been getting great feedback from vested community members who have been helping us to make improvements based on real-world usage. Additionally, one of our core team members, Dwayne Charrington , has put together an awesome advanced skeleton that includes SSR integration with Firebase .

We're continuing to invest in SSR going forward and we're now at a stage where we're looking for community members who want to contribute by helping us to extend support to other Node frameworks, .NET, Ruby, Java, Go, and more. If you are passionate about a particular backend technology and want to help out, drop us a note on the SSR Engine repository and let's work together to build more integrations.

Aurelia UX

Our UX and component library, Aurelia UX , continues to march ahead with a number of great new features.

  • Grid Layout - We've introduced a layout system into the UX library, built on CSS Grid. The system provides a simple collection of elements and attributes that you can use to structure your application layouts.
  • CSS Reset - We've added an optional CSS reset into the library so that you can ensure styles are applied consistently across browsers. You are still free to bring your own reset or skip it altogether if you desire as well.
  • Select Component - One of the most often requested components is a customizable select box. We've now added one to the UX library .

We've got lots more planned for the future. If you're interested in helping to build out components for Aurelia and its community, please join us over on the UX GitHub repo .

Web Component Export

Now that the W3C specifications for Web Components are finally coming online in modern browsers, we want to ensure that Aurelia's components can function as standard Web Components outside of an Aurelia app and properly interoperate with any framework or library that works with Web Components. To that end, in Q1 we launched a very early version of the aurelia-web-components library, which can transform any globally registered aurelia components into Web Components. We're now looking for Web Component enthusiasts within the community who want to help test this library and ensure that it's working properly in different contexts. If that's you, drop us a note on the the aurelia-web-components github repo .

State Management

While existing state management libraries like Redux work great with Aurelia, we've had a high demand and community interest in Aurelia having its own, native state management solution. In our 2018 roadmap, we announced that we were working on just such a library. We're happy to share that during the first quarter of the year, core team member Vildan Softic has made extraordinary progress on the new library . The bulk of the features are now complete (only one left to go) and about half of the documentation is written. We're hoping to have a release in late April or early May. If you're looking for a great state management solution with low ceremony, powerful async support, undo/redo and more, we'd love for you to check it out, get involved and help us deliver the first major release together.

Tooling

In addition to the core platform, we've continued to advance our tooling during Q1. Below is a summary of the great new releases we've had.

Webpack 4.x Support

Recently the Webpack team announced that they had shipped a new 4.x version of their tool. In response to this, Aurelia core team member Jods4 moved quickly to update our own plugins to support the new version. We were able to ship our Webpack 4.x plugin update in a matter of a few days, early in March of this year.

While we are continuing to invest in our Webpack plugin, we're also working on core improvements to Aurelia itself, which are designed to enable better support for bundlers, static analysis and tree shaking. We've got 3+ PRs from core team member Binh Vo that are in final review and which we plan to ship in the next month, enabling fully static-analyzable builds.

CLI Improvements

In Q1 the Aurelia CLI also got a major update to support Webpack 4. Additionally, in response to the popularity of Webpack, we've switched the CLI to use the Webpack build configuration by default for newly scaffolded projects and updated our documentation to match. We still have full support for SystemJS and RequireJS builds, which we've continued to improve and enhance with new capabilities as well. Beyond the general build improvements, we're also making solid progress on our multi-targeting support, which will enable you to have a single project target web, Electron and Cordova simultaneously. Keep a lookout for that in the coming months.

VS Code Plugin

We're continuing to invest in our VS Code plugin and are happy to share that during Q1 we released preliminary support for intellisense in views. You can enable this feature by adding the following to your VSCode settings:


    "aurelia.featureToggles": {
      "smartAutocomplete": true
    },
  

We're excited about the future of this plugin and will have more information to share in the coming weeks.

vNext

As you can see above, the first quarter of 2018 has been an exciting time for today's Aurelia. We're also excited to share that we've been making solid progress towards a vNext implementation of Aurelia. We're exploring how we can take today's Aurelia developer experience and fashion a more-modernized implementation under the hood. As part of this work, we're exploring AOT, static analysis, build-time code generation and more. Our initial investigations look promising and we're hopeful that down the road we'll be able to deliver an even faster, smaller and more simple Aurelia. If you are interested in following the early efforts, you can check out the experiment repo on GitHub .

Community

We're excited to invite Alexander Taran to the Aurelia Core Team to help us in driving improvements through our community channels. During Q1 Alexander spear-headed an aggressive effort to triage and help resolve GitHub issues. We believe this is an important part of maintaining a good standing with our community and we're happy to have Alexander focusing in on this area.

Additionally, Alexander has been leading a community effort to accumulate knowledge and solutions in one place, which has come to be known as "Aurelia Contrib". Here's a word from Alexander about the effort...

Getting to know a framework is hard these days. There is a lot of useful information scattered all over the internet: blogs, GitHub, Discourse, etc. I'm strongly convinced that it would greatly benefit the community if most of this goodness were gathered in one place. This is what brought forth the idea of aurelia-contrib.

We'd like to invite you to consider moving your plugin to the aurelia-contrib organization. This will increase visibility over time and Github will redirect all your customers to this new place where they will be able to discover many other plugins. You'll maintain ownership, but you won't be alone in your efforts. If this interests you, contact alexander-taran for membership in the organization. We've recently onboarded the open-id-connect plugin and an awesome typed-observale plugin by core team member Binh Vo .

We're also working to build a cookbook/recipes section of documentation here https://github.com/aurelia-contrib/aurelia-getting-started including guides, tips & tricks, commented configuration files - you name it. We want it all. Have a look and consider how you might share your own Aurelia learnings by giving back to the community through this project.

Patronage

In case you haven't seen it, we launched the Aurelia Open Collective in Q1. In the short couple of months since we launched, we've reached an estimated annual budget of $30,730. Wow! We're so humbled and thankful for the way the community has stepped up to help support and sustain Aurelia . Core team member Matthew Davis is helping to lead Aurelia's new financing plans, which include this great Open Collective work, along with team-member Patreons, and more. We'll have a detailed blog post in the next couple weeks discussing our plans for the incoming funds as well as further details regarding Aurelia's financial sustainability planning.

Wrapping Up

We hope you are as excited as we are about the progress our community has made together during the first three months of 2018. It's an exciting time for Aurelia and we're looking forward to delivering even more awesome as the rest of the year unfolds.

Forward Aurelia!!!