I often see folks with questions at the beginning of their projects or when they hit bugs or unexpected, surprising behaviors. But i rarely see anyone sharing what their normal day experience with Aurelia. I think it would be nice if we could come together and tell something, some stories to build a stronger community
I have a few things going on with Aurelia I would love to share. At my day job, we are building a suite of applications and tools for the insurance industry. While people might not think working in the insurance industry is that sexy or exciting, we are doing some great things with Aurelia.
Thanks to the ecosystem of sturdy plugins (many of them Aurelia supported) including; Aurelia Validation, Aurelia i18n, Aurelia Dialog, Aurelia Fetch Client and Aurelia Store, we have built quite a sizeable base which will be used for multiple apps.
The ability to train and upskill existing developers without Aurelia experience is phenomenal. Don’t let the fact Aurelia is a framework and not a library fool you, on average it takes senior developers about a week to completely grok most Aurelia concepts, to the point where they don’t have to consult the documentation all of the time (which is absolutely huge).
On the other side of the coin in my spare time (outside of work hours) I am working on a project called Steem Engine which is a side-chain for the Steem blockchain. It’s a layer that sits on the Steem blockchain and allows custom token creation. At the moment I am working on a Security Token Offering platform which is open source here and the website itself is here. At present, there is an airdrop and token staking/delegation bot setup UI using Aurelia.
Eventually, the Steem Engine decentralised exchange itself will probably use Aurelia and the entire project will transition to the new codebase. Completely written in TypeScript, minimal polyfills targeting evergreen browsers and built using Webpack.
Four-and-a-half years and counting being fortunate to be able to work with Aurelia every day.
I have also done a couple of passion projects using Aurelia, for example OGR.JS and the Costas project (go to my blog if you want to read more). Right now I am working on a fairly crazy project with a lot of moving parts (both figuratively and literally) including smartphone sensors, WebRTC, time series analysis (dynamic time warping) and more which I hope I can share with you some time in the future.
But day to day, yeah, Aurelia rocks!
To be honest, I don’t see much of Aurelia in day-to-day tasks. For me, it’s just plain typescript classes, methods and html.
Since 2015, I am using Aurelia. That means that I have experienced the initial hardship of no documentation (with the nice documentation, I am slightly disappointed as it halted the upvote for this answer on SO ), and transition through JSPM + RequireJS/SystemJS towards Webpack. Even though there were some pretty appealing features.
First and foremost, coming from the .NET development background, I absolutely loved the fact that I get to use TypeScript from start. It gave familiarity. Aurelia looked also familiar because of the non-intrusive lifecycle hooks, and use of DI. In my head I was “This is just like the ASP.NET pipeline”. I appreciate that it pushed me to stay close to the standards. Just write your TypeScript class, have a HTML for that, and Aurelia turns that to a component/view. You want more controls, use life cycle hooks in your VM, or sprinkle some bindings in the HTML (w/o making the markup alien). Above all, till this day I am a fan of the elegant API designs from Aurelia.
Then comes the EventAggregator and dynamic composition. You need to understand that only event I was aware of then in HTML+JS world is the UI event, originating from HTML elements. To have a way to generate custom events, and to create pub/sub model was just awesome. And we loved the dynamic composition so much, we created a dynamic view generator for CRUD apps. That was our Batman moment
Last year, we started a new project. Though I was all for Aurelia, our team decided to go through a round of prototyping with other frameworks, and for good reasons. React, and Vue had the initial disadvantage of mixing JS and HTML together and our team is not a fan of that. With Angular, I never saw an example that has not used CLI. To me it hinted that the framework is created be so complex, and the dependencies are so oddly spread, that simple handmade (w/o CLI) component has the potential to go horribly wrong (but again I was not that much into Angular).
However, what made us choose Aurelia again is 2 folded. First, it is far easy to create aurelia plugins as npm packages, and use that with main app. This ensured modularity, and increased code reusability. This was of utmost importance for our team, as the App was going to be a giant. Therefore, to keep everything in one package was out of question. Secondly, the I18N support. Aurelia let us change the language on the fly, where Angular told us to create an instance of the app for every language (not sure if that has changed now) ?? As we started early with Aurelia, our company ended up creating several gulp packages to build the toolchain (extraction of text, compiling those etc.) for I18N (however, those have no strict dependency on Aurelia, I think). I never cared before about the potential of these 2 apparently humble features.
At this point I realize that I have not said a word about the day-to-day stuffs Well, as a day-to-day activity, Aurelia perfectly fits my/our teams design principles, and the requirements of the apps we build.
The most active usage of Aurelia in daily life is constantly reminding my teammates every time they complain about some React quirk: “I told you so.”
Otherwise, I continue to joyfully use Aurelia in all of my personal projects. Nothing crazy or really all that much Aurelia specific though, since the framework stays out of my way. Need to find some time to work on my Office UI Fabric port so I have more exciting stories to tell…
I have been developing sophisticated visual dispatch and journey management (safety) software since 1993. The client applications of our platform have been Windows desktop applications since inception because we require a very robust environment to receive real-time alarms and perform critical functions. We stayed away from web applications initially because of lack of robustness and performance.
Microsoft released Silverlight and as it matured we developed a very similar app to our WPF version. Because the Silverlight plugin actually ran client side, it offered similar robustness and performance to the WPF version. Microsoft killed Silverlight and we had to look for an alternative. Not wanting to be in the same boat down the road, I decided to look closer at “modern” web development frameworks. While reading a book on Knockout, the author mentioned Durandal. Upon landing on the Durandal home page, I saw the ad for Aurelia (sometime in 2015 I think). I had a quick look at Auralia and decided it was too bleeding edge, so picked up a book on Angular 2 and got to work.
While Angular had some promise, I found it really difficult to do even simple things. I eventually decided to see what the status was with Aurelia. I initially tried to work in my familiar Visual Studio IDE with .NET Core and Aurelia. I experienced many problems, but recognized this was bleeding edge with many moving parts. When the Aurelia CLI came out, I jumped on it along with TypeScript and Sass. The CLI made it dead simple to get a TypeScript app built and running. I now use VS Code and develop my Aurelia application separate from my .NET Web API back-end and the results are remarkable.
Over the years, we built many custom controls in WPF/Silverlight, including a data grid, multi-column drop down box, numeric textbox, date/time picker, and many more. We prefer to roll our own controls instead of using third party products, for a number of reasons I won’t get into here. Aurelia has made it possible for us to develop similar controls (aka custom elements) for our new web version. We even created a map tile control that will work with a number of map providers like Google, Bing, HERE Maps, Mapbox, etc.
We are a long way from having our entire application in Aurelia, but I personally love the framework. It is so easy to do things that seemed almost impossible in other frameworks. Aurelia’s binding is so simple and powerful it is better than Microsoft’s WPF binding technology, and that is saying something since that is where I came from. The performance of the Aurelia app is shockingly good, to the point where we often can’t tell the difference between the WPF desptop version and the Aurelia web version.
We are all in with Aurelia and look forward to a long relationship with its vibrant community.