Support Ukraine Black Lives Matter

Learning Ember.js

Are you getting started on your Ember.js adventure? Check out our official reading material:

  • Quick Start: An easy breezy introduction to the framework.
  • Tutorial: Follow our tutorial to build, and deploy, your first Ember.js application!
  • Guides: Whether you're just getting started and want to get familiar with Ember, or you're looking to refresh your knowledge on a certain feature, the Guides are the place for you.

API Reference

Explore the available API of the various Ember ecosystem libraries. This is where you want to go to read in details about the various features, including example code.

Deprecation Guides

The broader JavaScript ecosystem is always changing and evolving, so Ember has processes and tools in place to protect your app from churn while still providing the best new web app features.

Ember uses a careful deprecation process to roll out changes to the API. You can read our Deprecation Guides to see past and upcoming deprecations. Major changes are often accompanied by codemod tools, which are often announced in release blog posts.

Ecosystem

One of the main strengths of Ember is how shared conventions enable developers to build on top of each other's work and improve the ecosystem for everyone. For example, here are some projects closely maintained by Ember teams:

  • Ember CLI: The official command line toolkit to develop Ember applications. Check out the Ember CLI Guides, and the documentation on how to extend Ember CLI as an addon developer.
  • Ember Inspector: A browser plugin/bookmarklet that helps you inspect and debug applications. Learn how best to use it in the Ember Inspector Guides.
  • Ember Animated: Core animation primitives for Ember. Learn how best to use it in the Ember Animated documentation.
  • Ember Twiddle: Online code editor so you can share working snippets of code or reproductions of bugs. Try it out today!
  • FastBoot: Server-side rendering library for Ember applications. Check out the Quickstart to get up and running, and the User Guide for more detailed information.
  • Ember Engines: Ember addon that allows multiple logical applications to be composed together into a single application from the user's perspective. Check out the Ember Engines Guides.
  • Ember Observer: Ember Observer provides categorization and scoring for published Ember addons. You can also use Ember Observer to do a code search across the entire addon catalogue.

Showcase

In this section, you will find applications that are maintained by the Ember.js teams with the help of contributors. While software is always a work in progress, the goal is to showcase patterns and solutions applied in real-world applications.

Whether you're simply interested in checking out how some feature is implemented, or you're looking to contribute, one of these projects might pique your interest!

  • API Docs

    Description

    This application was built to display our versioned API docs. You'll be able to learn about:

    • A more full-featured Ember web app in action
    • Usage of Ember FastBoot.

    External Links

  • Deprecations

    Description

    This application was built to showcase Ember deprecations at deprecations app. You'll be able to learn and identify deprecations for each major release such as:

    • Deprecations for each version of Ember from v1 through v3.
    • Ember Data specific deprecations in v2 and v3.
    • Ember CLI specific deprecations in v2.

    External Links

  • Super Rentals

    Description

    If you've gone through our tutorial you will already be familiar with this application! Super Rentals is a good starter project to get acclimated to the Ember.js way of doing things. In this repository you'll be able to see:

    • Basic routing, and routing with dynamic segments
    • Acceptance, integration, and unit tests using Ember CLI Mirage.

    External Links

Frequently Asked Questions

What is Glimmer? Do I need to learn it too?

Glimmer is a rendering engine used in Ember. However, in order to build Ember apps, you don't need to know anything about Glimmer, other than it's super fast and that the contributors to the core codebase love to geek out about it. It's all behind the scenes.

If you're curious to know how the Glimmer project fits into the roadmap for Ember's development, you can learn more in Readers' Questions.

How do I pitch Ember at my company?

Here are some strategies that may help you out.

Is it ok to use controllers?

Yes. Controllers are the right place to put URL query params, actions and attributes that need to be passed from the route level to components, and lifecycle hook code.

How do I future-proof my Ember.js application?

You should not try to future-proof your application. Ember.js has a strong emphasis on developer productivity, which means that framework developers take great care when designing new functionality and provide migration paths.

Here are some ways to keep up-to-date on future changes:

  • Feature Flags: Many new features are implemented under optional flags so that users can try them out and report any issues.
  • RFCs: Ember.js follows a community-driven process for its development that incorporates RFCs for features and deprecations. An RFC is a Request for Comments. Before changes are made to Ember's API, they are proposed publicly and the community is asked to review and comment. Anyone can create an RFC, not just Core Team members. RFCs undergo many edits to incorporate community feedback. If a proposal has enough support, it is merged, meaning that work may begin to integrate the functionality into the codebase.
  • Deprecations: The Deprecation Guides contain upcoming deprecations and how to resolve them.
  • Codemods: When it's time for a major version upgrade, and there are syntax edits to make, tools like codemods are provided to help you make changes quickly.
  • LTS lifecycle: If you won't be updating your app versions frequently, consider using the Long Term Support (LTS) versions of Ember. These are usually every 4 minor releases (for example, 2.8, 2.12, 2.16) and final major releases (2.18). LTS versions have extended windows for bugfixes and security updates.
  • Release schedule: Every six weeks, candidate features are reviewed and either deemed ready to be included in the stable release, or carry on in beta for another cycle until the next release happens.

In short, the best way to make sure you have a healthy application is to comment on RFCs, clean up deprecations when you see them, and when possible, test your application against beta and canary releases of Ember.