mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Webevaluationupdated 28 Sept 2026

ember.js review

Ember.js is a full web application framework with components, routing, reactivity, testing conventions, and an optional default data layer. It solves the coordination problem in large frontends by giving a team one established way to structure most of the application.

+1stars / 7d
Verdict

Our Ember.js install took 16 seconds but placed 2,100 packages and 683 MB on disk, so its cost is ecosystem weight rather than a difficult first build. Choose it for a long-lived application whose team benefits from one routing, component, upgrade, and testing culture. Skip it for a small frontend or a team that sees framework conventions as constraints, and put Chrome in CI before judging the test suite.

We ran it

Lab card: what happened when we ran ember.jsScreenshot of ember.js (emberjs.com)
Install✓ · 16s2100 packages · 683 MB
Build✓ · 24s
Tests✗ · 1sran, no count parsed
Repo1980 files~278,038 lines of source · 9.7 MB · 14 CI workflows · tests dir

Answers from our run

Does ember.js build from source?

Dependencies installed in 16 seconds (2100 packages), and the build succeeded in 24 seconds. We cloned commit 74fb9ba into a clean Debian container with 3 CPUs and no project-specific setup.

Do ember.js's tests pass?

No. The project's own test command exited unsuccessfully after 1 seconds, and its output did not expose an individual test count.

Who should not use ember.js?

Small sites or isolated widgets that do not need a full application framework: our checkout installed 2,100 packages and used 683 MB before any product code.

What are the alternatives to ember.js?

React, Vue, Angular. Our Ember.

Setup3/5Fast install and build, but 2,100 packages and Chrome for tests
Docs5/5Versioned guides cover concepts, upgrades, APIs, and contributions
Community5/522,565 stars with September 2026 pushes, fixes, and releases
Maturity5/5v7.3.0 has LTS policy, deprecations, and an established RFC process

Discussed on

  1. hn"Getting started with Ember.Js is easy." - No it isn't391 points
  2. hnEmber's Glimmer Engine378 points
  3. hnEmber.js 2.0 Released376 points
  4. hnEmber.js 1.0 Released311 points
  5. hnWhy Discourse uses Ember.js267 points

Who it’s for

Teams building long-lived web applications where shared conventions matter more than choosing each library independently.
Organizations maintaining an existing Ember app and planning upgrades through documented releases and deprecations.
Developers who want HTML-first components, URL-aware routing, autotracking, and a standard project layout.
Product teams willing to keep Node, pnpm, a browser, Ember CLI, and the addon set aligned.

Who it’s NOT for

Small sites or isolated widgets that do not need a full application framework: our checkout installed 2,100 packages and used 683 MB before any product code.
Teams that want to assemble routing, state, rendering, and data choices independently: Ember's stated value is a set of strong defaults covering those concerns.
CI environments where a browser cannot be installed: the repository's test command failed immediately in our sandbox because it could not find Chrome.
Projects stuck below Node 20.19: the checked-out package metadata requires Node 20.19 or newer.
Teams counting on template-level dead-code removal for every static branch: open issue 20893 documents that templates do not perform that build-time elimination.

Setup reality

Our sandbox installed 2,100 pnpm packages in 16 seconds and used 683 MB on disk. The build succeeded in 24 seconds. Tests failed after 1 second: the single launcher check passed 0 of 1 because Chrome was not installed. The log says Launcher Chrome not found; it does not show an Ember assertion failure.

The checked-out package metadata requires Node 20.19 or newer and pins pnpm 10.33.2. Local development uses Ember CLI and Vite, while the repository test runner expects Chrome. A basic app does not need an API credential, but its backend, deployment, and Ember Data adapter may.

This is a workspace monorepo with 1,980 files, about 278,038 source lines, and 14 CI workflow files. Teams adopting Ember also own browser testing, framework upgrades, deprecation cleanup, and compatibility across addons, Ember CLI, the build pipeline, and their chosen data layer.

Ember 7.3 supplies the application structure, not only components

Ember takes responsibility for more of a frontend than a component library does. Its documented stack includes HTML-first components, URL-aware routes, autotracking, testing support, and Ember Data as the default data layer. Adapters and serializers can connect other backends, and the README says a team can replace the default data choice. The useful part is the shared grammar: developers joining an Ember app should recognize where routes, templates, services, and tests belong.

That breadth is the buying decision. Version 7.3.0 is useful when a product will outlive its first team and consistency has real value. It is excessive for a marketing page, a widget embedded in another system, or a small interface that needs only rendering. React or Vue lets a team select fewer pieces. Ember earns its weight when repeated architecture debates cost more than the framework's conventions.

The 16-second install still put 683 MB on disk

We cloned commit 74fb9ba into a fresh unprivileged container with 3 CPUs and 8 GB of RAM. The pnpm install succeeded in 16 seconds, adding 2,100 packages and occupying 683 MB. The build then completed in 24 seconds. Those are quick results for a 1,980-file monorepo containing about 278,038 lines of source, but the dependency count makes clear that this is a full framework development environment.

The package metadata requires Node 20.19 or newer and names pnpm 10.33.2 as the package manager. The repository uses workspaces, Ember CLI, Vite, Rollup, TypeScript, QUnit, and Testem among its development pieces. Application developers do not need to understand every internal package. Maintainers and CI owners still have to keep the Node version, package manager, browser, CLI, addons, and build tooling compatible.

What happened when we ran it

Our run installed all 2,100 packages in 16 seconds and built the repository in 24 seconds. The clean checkout consumed 9.7 MB before dependencies and 683 MB after installation. There were 14 CI workflow files and a tests directory, with no Dockerfile. That makes the local path well defined for a Node workstation, while teams using containers must supply their own image and browser setup.

The test command failed after 1 second with exit code 1. Testem launched one check, passed 0 of 1, and reported Launcher Chrome not found. Not installed? Available: . The final lines then showed the lifecycle failure. This log does not establish a failed Ember behavior test because no Chrome session started. It establishes a setup requirement: the documented repository test command needs a discoverable Chrome installation in this kind of clean environment.

Installing Chrome and rerunning would be the next useful verification step for a contributor image. We did not do that in this measurement, so there is no honest test-pass count beyond 0 of 1 for the launcher run. The build result still stands. Teams should separate those two signals in CI: compiler and bundle work can pass while browser tests never start.

Strong defaults replace many local architecture decisions

Ember's README describes routing, a data layer, autotracking, HTML-first components, and zero-config applications as parts of one system. That gives a multi-team codebase common expectations. A route owns URL behavior, templates stay close to HTML, tracked state drives updates, and the CLI supplies the project machinery. The framework also uses an RFC process for feature proposals, which slows casual API changes and leaves a record for maintainers.

The same policy can frustrate a team that already has preferred libraries for every layer. Replacing Ember Data is supported, but doing so removes one part of the standard path. Addons reduce custom work until their release support trails the framework version. Before adopting Ember, build a small vertical slice with your authentication, API errors, forms, route transitions, deployment target, and two or three likely addons. That exercise tests the actual stack rather than the starter screen.

Version 7.3 cuts old weight while one template limit remains

The v7.3.0 release set sideEffects metadata so tree shaking could remove unused ember-source code, and its notes report a 42.5% smaller hello-world result. The release also stopped small apps from pulling in the old renderer and some classic code. Those changes answer a long-running complaint about framework payload with concrete work in the current stable line.

They do not make every static template branch disappear. Open issue 20893 demonstrates that a false conditional inside a GJS or GTS template remains outside build-time dead-code elimination. That may not matter in an ordinary application. It matters to teams treating source-level feature switches as a bundle-size guarantee. Measure the production bundle your app produces, including addons and templates, rather than transferring the release's hello-world percentage to your code.

September 2026 activity supports a long-lived app choice

GitHub listed 22,565 stars and 275 combined issues and pull requests when fetched. The repository was pushed on September 27, 2026. Version 7.3.0 had shipped on September 14 with routing fixes, a memory-leak fix, documentation changes, and the tree-shaking work. An issue about component cleanup was also closed that day. The push and issue activity together show current maintenance.

The README promises regular LTS releases and 30 weeks of security fixes, a more useful commitment for an enterprise app than star count alone. Ember is still a deliberate commitment because upgrades and deprecations become part of the product's maintenance calendar. For a team that wants one set of conventions and expects to keep the application for years, that bargain makes sense. For a short-lived or narrowly scoped frontend, 2,100 installed packages are a clear signal to choose less framework.

Alternatives

ProjectWhat it isPick it when
React gh↗A component library that leaves routing, data, and much of the application structure to other packages.pick this instead when your team wants to choose the surrounding stack and accepts more architectural decisions.
Vue gh↗A progressive component framework with official routing and state libraries available separately.pick this instead when you want an approachable component model with less framework policy at the start.
Angular gh↗A TypeScript application framework with routing, dependency injection, forms, and a large official toolset.pick this instead when your organization wants another full framework with a broader hiring pool and Angular-specific tooling.

What people are saying

  1. [velocity-scout] emberjs/ember.js

Sources

  1. Ember.js README
  2. Ember.js contributing guide
  3. Ember.js v7.3.0 release notes
  4. Template dead-code elimination issue 20893

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →