DEV Community


Posted on


4 reasons to use Aurelia

I'm a developer who has tried AngularJS, Angular, React, Vue, and Aurelia. So far, Aurelia is the most powerful, elegant, intuitive, and enjoyable framework to develop with. In this, I'll share with you a few reasons why I think you should do yourself a favor and try it out.

💭 Developer Friendliness

Starting with Aurelia as simple as adding a script tag into your application. Adding new component is simply an exported JavaScript class, an HTML file and a html require element: <require from="./path/to/element"></require>. Adding a new route is exactly the same. There is no vDOM in Aurelia. Binding between elements, attributes, either one way or two way, is a simple command away. It works directly and intuitively with the DOM objects you know and love. Since there is no vDOM, adding a third party plugin to your application is a dead simple task.

⚡ Power

Aurelia not only powers your app with a stunning performance that leaves other popular frameworks and their vDOM in the dust, but also offers a simple and natural data binding mental model that will give you the strength of an army. You will enjoy being that person who smashes through business requirements, finishes your job, and evolves your company while unlocking your new power with standard JavaScript and JavaScript objects, instead of wasting your time on framework proprietary characteristics. Whatever you do, it will just work. Additionally, the Aurelia ecosystem is complete with critical tools like dialog, validation, internationalization, state management, and http.

👌 Intuitive and Simple Dependency Injection

Ever wanted to learn about Dependency Injection (DI) but felt put off because there are only a few places around to use it, and none seems to offer something simple that can help you get that "click" moment? Not the case with Aurelia DI, a statement static inject ... on your JavaScript class and you are done declaring the dependencies of a custom element, or a custom attribute, that will be given to you right in the constructor. No more wacky or cumbersome declaration or usage. This will only help you tame the application, no matter how much it grows.

📚 Self Progression

While learning Aurelia, you will learn how to return to JS, return to yourself, and progress to the next important thing in your learning: Your career. You will learn how nice it is to have a framework that does not fuss about whatever you want to do, or even two-way data binding. Everything links together exactly how you would expect. Experiencing this will give you the "just work" mental model, and will help you build the next awesome thing that everyone may depend upon.

Don't believe it? Try it yourself:


Top comments (12)

buphmin profile image

So I wrote a SPA in Aurelia about a year and a half ago and I had some mixed feelings on using it. I watched some talks by Rob Eisenberg and was sold as a better replacement for Angular. I ran into quite a few problems that the docs didn't cover or made confusing which, compounded with Aurelia's infantile ecosystem, made it difficult to work with.

Fortunately all of those are solvable problems, so hopefully all of that is much improved because i want to like Aurelia

bigopon profile image

Yes, I understand what you mean. It was quite bad in both doc and tooling, which I believe are much better now.

abolitionof profile image
Dwayne 🇦🇺

Nothing much to say here other than how much I love Aurelia. I've been working with it since 2015, it's coming up almost four years I've been working with Aurelia and I love it more each and every day.

davidsk profile image
Keith Davidson

"Since there is no vDOM, adding a third party plugin to your application is a dead simple task"

Can you elaborate? What kind of third party plugins are available to Aurelia that aren't available to vDOM implementations?

bigopon profile image
bigopon • Edited

I think it should be understood that Aurelia communicates with DOM directly and at the atomic level, thus ensures working with any 3rd party plugin is as simple as possible. 3rd party plugin can be anything: another framework component/plugin etc...

street2geek profile image
Wafiq B • Edited

I actually used Aurelia back in 2016 on a commercial project(their requirement), although I did like it a lot at first, there where just too many roadblocks and ways of doing things that where not covered in the docs.

bigopon profile image

2016 was a missed opportunity for Aurelia. Things should have been a lot better. I was around in that time as a newbie and it made me turn to React then Vue too. Not sure what the reason I got back to Aurelia was though.

dakn2005 profile image

As a long time developer who used (angular 1.x) and still uses not-too famous tools (knockout),I found aurelia to be a breath of fresh air. IMO it has good balance between readability(angular can be messy) and complexity (not too low level - react). Dare I say I believe this is what angular should have been

eicthecat profile image
eicthecat • Edited

Hi Bigopon,
Shouldn't timeOfDay be in contacts.js rather than in home.js ;-)… unit testing in the sample should be cool too :-)
Thx for the article !

iamsahithyan profile image

I found Aurelia in 2020 in the Corona Pandemic. Is Learning Aurelia in 2020 useful? (Just a doubt)

bigopon profile image

Aurelia holds a few simple concepts and mental models that I believe will be beneficial. And theres a community to join too. Head over to our discord or discourse for chat and Q&A

Need a better mental model for async/await?

Check out this classic DEV post on the subject.

⭐️🎀 JavaScript Visualized: Promises & Async/Await

async await