The Ember Times - Issue No. 161

– By Chris Ng, Amy Lam, Isaac Lee, Jared Galanis

👋 Emberistas! 🐹

ember-component-template-colocation-migrator now supports addons 🎉, built with Ember.js: 10001 virtual art exhibit 🎨, ember-mobile-menu v2 released 📱, help with Embroider readiness 🔥, and last, but not least, new free video and instructor at EmberMap 📹!

Release of ember-component-template-colocation-migrator 1.1.0 🎉

The ember-component-template-colocation-migrator codemod co-locates component JS and HBS files as described in the Component Templates Co-location RFC. The v1.1.0 release adds support for migrating addons, but templates shared by multiple components are excluded. In this case, it is up to end users how to list those; they are reported in the same way other skipped templates (like partials) are. Similarly, mixins that use layout are not migrated.

When running the codemod, instead of:


You will get:


Try it out today by running the migrator in your app or addon:

npx github:ember-codemods/ember-component-template-colocation-migrator

Built with Ember.js: 10001 virtual art exhibit 🎨

Moacir P. de Sá Pereira (@muziejus) announced in a tweet that while on vacation 🏝, he's been helping an art gallery put together a website for a virtual exhibition:

On August 5, Undercurrent launched “10001,” a collaborative virtual project that continues through September 12. This project is co-organized by the European Union National Institutes of Culture’s New York Cluster. Borrowing the zip code from both the Empire State Building and New York City’s Central Post Office, “10001” focuses on the collaboration of strangers and the narrative of their collective creative process using New York City as the linchpin. Coming from a variety of disciplines, twelve European Union artists who have never met each other will be randomly paired, making up a total of six teams. Through a series of Zoom sessions, each team will spend a six-week period developing a single project that will reimagine NYC post March 20, 2020.

The 10001 website is built with Ember 3.18! It's fantastic to see Ember.js being used in the wild, and we think that the site design is pretty rad too. Look forward to checking out the content as the artists continue their work on this pandemic-friendly exhibition.

ember-mobile-menu v2 released 📱

Earlier in August, Nick Schot (@nickschot) announced the v2 release of ember-mobile-menu.

In case you weren't aware, ember-mobile-menu provides a gesture-enabled hamburger menu. You can check out a real-world implementation in Empress Hummingbird.

For a complete list of new features in v2, we encourage you to check out Nick's tweet and the repo changelog. Here are a few of the best:

  • Written in Octane (v3.20 at the time of writing)
  • Spring physics and cancellable/resumable finishing animations
  • Various menu styles
  • FastBoot support

Help with Embroider readiness 🔥

This week, Yehuda Katz (@wycats) opened a meta issue concerning the readiness of Embroider, Ember's next build system. The issue is meant to track the steps that must be taken before people can practically use Ember with Embroider as a supported option with route-based code splitting ("Embroider readiness").

An app that enables Embroider's route-based code splitting with splitAtRoutes mode must be able to operate in the presence of the following flags (which means the app is not using classic dynamic features):

  • staticAddonTestSupportTrees
  • staticAddonTrees
  • staticHelpers
  • staticComponents

The first target for Emroider readiness is to create a transition path to route-based code splitting, which means that all addons included in the default blueprint must be able to do so. It also means that addons that are frequently used in real-world applications, such as ember-concurrency, need to be able to enable these flags.

Embroider is a really important next step for the future of Ember. It would be helpful for anyone interested to test out Embroider readiness in their addon or application in splitAtRoutes mode with these flags enabled and provide feedback. If you are inclined, head on over to the meta issue and give it a read.

It is worth mentioning that other things need to be done in order to get Embroider stabilized for use in Ember. You can check that list out in Ed Faulkner's (@ef4) tracking issue.

New free video and instructor at EmberMap 📹

EmberMap has a new instructor! Lindsay Cade (@cadeParade) has joined the EmberMap crew and released her first video, which covers testing loading states 🎉. Bonus, this instructional video is free!

Lindsay teaches us how to use the wait helpers built into ember-test-helpers to ensure that you can write robust tests around loading state that wait for async behavior to resolve before making assertions.

Check out the free video at EmberMap.

Contributors' corner 👏

This week we'd like to thank Amy Lam (@amyrlam), Ben Demboski (@bendemboski), Bryan Mishkin (@bmish), Jan Buschtöns (@buschtoens), Chris Ng (@chrisrng), Isaac Lee (@ijlee2), Jared Galanis (@jaredgalanis), Jenny Judova (@JennyJudova), James Herdman (@jherdman), Jonathan Johnson (@jrjohnson), Katie Gengler (@kategengler), Kelly Selden (@kellyselden), gguri4549 (@kookyungmin), Kris Selden (@krisselden), Chris Manson (@mansona), Chris Garrett (@pzuraq), Robert Jackson (@rwjblue), Sourabh Mandal (@sourabhmandal), Thomas Wang (@xg-wang) for their contributions to Ember and related repositories! 💖

Connect with us 🤓

Office Hours Tomster Mascot

Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readers’ Questions are just for you!

Submit your own short and sweet question under And don’t worry, there are no silly questions, we appreciate them all - promise! 🤞

Want to write for the Ember Times? Have a suggestion for next week's issue? Join us at #support-ember-times on the Ember Community Discord or ping us @embertimes on Twitter.

Keep on top of what's been going on in Emberland this week by subscribing to our e-mail newsletter! You can also find our posts on the Ember blog.

That's another wrap! ✨

Be kind,

Chris Ng, Amy Lam, Isaac Lee, Jared Galanis, and the Learning Team