diff --git a/.eslintrc.js b/.eslintrc.js
index d41c52c987976b5560086e5be456279adbe5b347..7379d8a483ba08196ee3fe77559bfbbdc46dae53 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,36 +1,19 @@
 "use strict";
 
 module.exports = {
-  // When adding items to this file please check for effects on sub-directories.
+  // New rules and configurations should generally be added in
+  // tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js to
+  // allow external repositories that use the plugin to pick them up as well.
+  "extends": [
+    "plugin:mozilla/recommended"
+  ],
   "plugins": [
     "mozilla"
   ],
-  "rules": {
-    "mozilla/avoid-removeChild": "error",
-    "mozilla/avoid-nsISupportsString-preferences": "error",
-    "mozilla/import-browser-window-globals": "error",
-    "mozilla/import-globals": "warn",
-    "mozilla/no-import-into-var-and-global": "error",
-    "mozilla/no-useless-parameters": "error",
-    "mozilla/no-useless-removeEventListener": "error",
-    "mozilla/use-default-preference-values": "error",
-    "mozilla/use-ownerGlobal": "error",
-    // No (!foo in bar) or (!object instanceof Class)
-    "no-unsafe-negation": "error",
-    // No eval() and no strings in the first param of setTimeout or setInterval
-    "no-implied-eval": "error",
-    "no-eval": "error",
-  },
   // The html plugin is enabled via a command line option on eslint. To avoid
   // bad interactions with the xml preprocessor in eslint-plugin-mozilla, we
   // turn off processing of the html plugin for .xml files.
   "settings": {
     "html/xml-extensions": [ ".xhtml" ]
   },
-  "env": {
-    "es6": true
-  },
-  "parserOptions": {
-    "ecmaVersion": 8,
-  },
 };
diff --git a/accessible/.eslintrc.js b/accessible/.eslintrc.js
index 887fd4770dc13b92f4a0777ddf06599314f21cda..6e9f7a2e35d282a4abd27e52bbb9c40d14da0643 100644
--- a/accessible/.eslintrc.js
+++ b/accessible/.eslintrc.js
@@ -1,9 +1,6 @@
 "use strict";
 
 module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
   "rules": {
     // Warn about cyclomatic complexity in functions.
     "complexity": ["error", 42],
diff --git a/browser/.eslintrc.js b/browser/.eslintrc.js
index 856a17e0cf97bc27c8fc85cb7455ff8c6dee9753..1cdede3f1b7cfbbc788e17df145e8a6d4b27ae92 100644
--- a/browser/.eslintrc.js
+++ b/browser/.eslintrc.js
@@ -1,10 +1,6 @@
 "use strict";
 
 module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
-
   "rules": {
     // XXX Bug 1326071 - This should be reduced down - probably to 20 or to
     // be removed & synced with the mozilla/recommended value.
diff --git a/caps/.eslintrc.js b/caps/.eslintrc.js
deleted file mode 100644
index 810a54bd55f7d7ad1813b782b4b682d693769815..0000000000000000000000000000000000000000
--- a/caps/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ]
-};
diff --git a/dom/indexedDB/test/.eslintrc.js b/dom/indexedDB/test/.eslintrc.js
index 22dcddd1f510c623a2d5fcf5ab338e0e4a2be61e..2f3ea6a3aa4080f8eb9aa3217fb062c2993d5de0 100644
--- a/dom/indexedDB/test/.eslintrc.js
+++ b/dom/indexedDB/test/.eslintrc.js
@@ -2,7 +2,6 @@
 
 module.exports = {
   "extends": [
-    "plugin:mozilla/recommended",
     "plugin:mozilla/browser-test",
     "plugin:mozilla/chrome-test",
     "plugin:mozilla/mochitest-test",
diff --git a/js/src/builtin/.eslintrc.js b/js/src/builtin/.eslintrc.js
index 458f725de206627298ceb5e6fafb25f0f80e2235..2df086436ed93cdc703ce5f79b3d0ff0101edbfd 100644
--- a/js/src/builtin/.eslintrc.js
+++ b/js/src/builtin/.eslintrc.js
@@ -1,10 +1,6 @@
 "use strict";
 
 module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
-
   "plugins": [
     "spidermonkey-js"
   ],
diff --git a/js/src/shell/.eslintrc.js b/js/src/shell/.eslintrc.js
index fb19390940ae848b78c82d92867efdd91a7da39d..a44eb3dae311b1dcc96264fccbd0619c1e030427 100644
--- a/js/src/shell/.eslintrc.js
+++ b/js/src/shell/.eslintrc.js
@@ -1,10 +1,6 @@
 "use strict";
 
 module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
-
   "rules": {
     // SpiderMonkey's style doesn't match any of the possible options.
     "brace-style": "off",
diff --git a/mobile/android/.eslintrc.js b/mobile/android/.eslintrc.js
index 11524b0d8492f4cd7977364002fbe4a88b2ddbc2..c3ccaa1807295d0bf9d30b33e1908e4b57c2715b 100644
--- a/mobile/android/.eslintrc.js
+++ b/mobile/android/.eslintrc.js
@@ -1,10 +1,6 @@
 "use strict";
 
 module.exports = {
-  extends: [
-    "plugin:mozilla/recommended"
-  ],
-
   globals: {
     // TODO: Create custom rule for `Cu.import`
     "AddonManager": false,
diff --git a/security/.eslintrc.js b/security/.eslintrc.js
index ea9475bc379a72993393acaaa694cf660ecc98c1..65c520604912f2ed5952d4ad99dda8d05fc21de3 100644
--- a/security/.eslintrc.js
+++ b/security/.eslintrc.js
@@ -1,9 +1,6 @@
 "use strict";
 
 module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
   "rules": {
     // Enforce return statements in callbacks of array methods.
     "array-callback-return": "error",
diff --git a/services/.eslintrc.js b/services/.eslintrc.js
index 0c441ce41635c317dece9558907888a33a52742f..30dfbdebfbb70862b5b7f22afe0bed3b1aa46808 100644
--- a/services/.eslintrc.js
+++ b/services/.eslintrc.js
@@ -1,10 +1,6 @@
 "use strict";
 
 module.exports = {
-  extends: [
-    "plugin:mozilla/recommended"
-  ],
-
   plugins: [
     "mozilla"
   ]
diff --git a/storage/.eslintrc.js b/storage/.eslintrc.js
deleted file mode 100644
index 1315af97f9fb0b97e760572bf4bc24fecf0537f6..0000000000000000000000000000000000000000
--- a/storage/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
-};
diff --git a/taskcluster/docker/index-task/.eslintrc.js b/taskcluster/docker/index-task/.eslintrc.js
index 26e10cb2ef2d4b0d598273e1fd1c117f0a702f0f..0775c5797dc88e6adad6cd0292b2aacaf5cba329 100644
--- a/taskcluster/docker/index-task/.eslintrc.js
+++ b/taskcluster/docker/index-task/.eslintrc.js
@@ -1,14 +1,6 @@
 "use strict";
 
 module.exports = {
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
-
-  "plugins": [
-    "mozilla"
-  ],
-
   "env": {
     "node": true
   }
diff --git a/toolkit/.eslintrc.js b/toolkit/.eslintrc.js
index e668160ce114492fa47c711d25ed9bead44cfdf9..e24bc6285f62a1e5f2322db1a92e272e5cb7f27b 100644
--- a/toolkit/.eslintrc.js
+++ b/toolkit/.eslintrc.js
@@ -1,10 +1,6 @@
 "use strict";
 
 module.exports = {
-  extends: [
-    "plugin:mozilla/recommended"
-  ],
-
   rules: {
     // XXX Bug 1326071 - This should be reduced down - probably to 20 or to
     // be removed & synced with the mozilla/recommended value.
diff --git a/tools/.eslintrc.js b/tools/.eslintrc.js
deleted file mode 100644
index 0c441ce41635c317dece9558907888a33a52742f..0000000000000000000000000000000000000000
--- a/tools/.eslintrc.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = {
-  extends: [
-    "plugin:mozilla/recommended"
-  ],
-
-  plugins: [
-    "mozilla"
-  ]
-}
diff --git a/tools/lint/eslint/.eslintrc.js b/tools/lint/eslint/.eslintrc.js
index b30a8b361db3921c1a3248e18d51ce23217c9068..8bcbe53022dec908badc43fc91fe980b12e45217 100644
--- a/tools/lint/eslint/.eslintrc.js
+++ b/tools/lint/eslint/.eslintrc.js
@@ -14,14 +14,6 @@ module.exports = {
     "node": true
   },
 
-  "plugins": [
-    "mozilla"
-  ],
-
-  "extends": [
-    "plugin:mozilla/recommended"
-  ],
-
   "rules": {
     "camelcase": "error",
     "comma-dangle": ["error", "never"],