Skeleton Screen Loading in Ember.js
Lauren Tan

We do the exact same thing, just we have “repository” services that fetch our data (using ember-concurrency), and have a general purpose a fetch-action container component. We also pass actions into the block as well, to allow cancelation, or refresh, which is occasionally useful.

We started migrating from using the route loading states around two years ago, it instantly made the customers feel like the app was quicker.

Thanks for the post, they are indeed wise words.