View critical-css
1. yarn add critical --dev
2. copy paste this npm script
"scripts": {
"critical-css": "cat dist/index.html | critical --base dist/ --inline --minify > index.tmp && mv index.tmp dist/index.html"
View index.html
<style id="jsbin-css">
#app {
font-family: 'system-ui';
textarea {
width: 100%;
min-height: 10em;
padding: 0.5em;
line-height: 1.4;
View index.html
<div style=height:100% id=r4-loader><div style=background-color:#e6e6e4;top:0;left:0;right:0;bottom:0;position:fixed aria-label=Loading…><svg height=158 style=color:#888;fill:currentcolor;display:inline-block;max-width:100%;height:72px;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto viewBox="0 0 369 158"width=369><g fill-rule=evenodd><path d="M352.606 44.05c-2.15-18.698-10.6-26.05-24.53-26.05C311.796 18 303 28.045 303 54.513c0 22.92 4.88 33.9 14.097 38.01 2.37 13.442 10.667 20.192 21.873 21.767 15.523 2.18 25.3-5.713 28.964-31.782 3.023-21.513-2.416-34.74-15.328-38.458zm0 0c.363 3.158.547 6.64.547 10.463 0 30.773-8.796 40.02-25.077 40.02-4.154 0-7.82-.6-10.98-2.01-.91-5.176-.944-11.346.075-18.595 3.295-23.443 16.257-32.83 31.78-30.648 1.278.18 2.497.436 3.656.77z"/><path d="M291.52 32.57c-4.616-19.75-14.395-27.276-28.855-26.518-18.844.987-28.31 15.136-26.43 51.01 1.545 29.483 7.413 44.122 17.376 49.822 3.845 7.714 10.166 11.895 17.982 13.133 16.105 2.55 30.037-8.75 35.216-41.445 4.063-25.657-2.777
View .travis.yml
language: node_js
node_js: 7
dist: trusty
# firefox: "latest"
- google-chrome

My Windows 10 wouldn't recognize my phone. After using adb it now works. Here's how.

  • Connect your Android phone via USB
  • When it asks what to connect as, choose "Camera (PTP)"
  • Open Google Chrome and the webpage you want to test
  • Open Chrome Developer Tools and find the "Remote Devices" tab

Now, your phone might or might not appear in this tab.
On my OS X and Fedora, it did. On Windows I had to get Android Debug Bridge ("ADB"):

View index.html
<!DOCTYPE html>
<meta name="description" content="native autocomplete with ajax">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Radio4000 autocomplete</title>
<style id="jsbin-css">
input {
padding: 0.5em;

Run this to recursively delete all node_modules folders.

find . -name "node_modules" -type d -prune -exec rm -rf '{}' +

There is no undo. Please use instead of rm -rf if you want to be safe(r).


Install prettier locally to your project:

yarn add prettier

Then, add a new script to package.json:

  "scripts": {
    "prettier": "prettier --write --use-tabs --single-quote --no-semi --no-bracket-spacing 'src/*/**.js'"

To deploy an ember-cli application all you have to do is build the project (npm run build) and place the contents of the dist folder on a web server. You could of course do this yourself with a webhost and SFTP but that's slow. Here's how you can use surge instead.

How to deploy ember with surge

Make sure is installed: yarn global add surge. Also see You'll need a free account.

  1. Add "deploy": "ember build --environment=production; mv dist/index.html dist/200.html; surge dist" to your npm scripts in package.json
  2. npm run deploy

If you want a specific url, change the script ala ... surge dist


Here's how to (hopefully) improve the initial load performance of your ember-cli project.

  1. Add this gulpfile.js to any ember-cli project
  2. Run yarn add critical gulp --dev
  3. Change the build script in package.json to ember build -prod; gulp critical
  4. Run yarn build

Now, gulp will run the critical task once after each build. The critical task checks what CSS your app needs to render the initial route and puts it inline in your dist/index.html.