diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000000000000000000000000000000000000..70fa045e816539292b653dad3df26c6f68b99be0
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,2 @@
+!.eslintrc.js
+src/vendor/*
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000000000000000000000000000000000000..730839944e6422b6e7b0489916bfd42133955d01
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,22 @@
+module.exports = {
+  parser: "babel-eslint",
+  env: {
+    browser: true,
+    es6: true,
+    node: true
+  },
+  globals: {
+    THREE: true,
+    AFRAME: true,
+    NAF: true
+  },
+  plugins: ["prettier", "react"],
+  rules: {
+    "prettier/prettier": "error",
+    "prefer-const": "error",
+    "no-var": "error",
+    // Light console usage is useful but remove debug logs before merging to master.
+    "no-console": "off"
+  },
+  extends: ["prettier", "plugin:react/recommended", "eslint:recommended"]
+};
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index 8ab63d8cc0f6d8854b53e96c03a7889080ecb650..0000000000000000000000000000000000000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "parser": "babel-eslint",
-  "plugins": [
-    "prettier",
-    "react"
-  ],
-  "rules": {
-    "prettier/prettier": "error",
-    "prefer-const": "error",
-    "no-var": "error"
-  },
-  "extends": [
-    "prettier",
-    "plugin:react/recommended"
-  ]
-}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d6dbc895d32156812c8b650b93d72dc2e92fc1dd
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+install: yarn 
+script: yarn lint
diff --git a/package.json b/package.json
index cb743e54e67530297fa28fa495e35da272b966af..6553a30e9703ca996bc9dfb558559e4ddfe7b2b7 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,8 @@
     "postinstall": "node ./scripts/postinstall.js",
     "start": "cross-env NODE_ENV=development webpack-dev-server",
     "build": "rimraf ./public && cross-env NODE_ENV=production webpack --mode=production",
-    "prettier": "prettier --write src/**/*.js"
+    "prettier": "prettier --write src/**/*.js",
+    "lint": "eslint *.js src/**/*.js"
   },
   "dependencies": {
     "aframe-billboard-component": "^1.0.0",