diff --git a/BUILD b/BUILD
index 2d4dd7d..823f272 100644
--- a/BUILD
+++ b/BUILD
@@ -7,6 +7,7 @@
     manifest_entries = [
         "Gerrit-PluginName: reviewers-by-blame",
         "Gerrit-Module: com.googlesource.gerrit.plugins.reviewersbyblame.ReviewersByBlameModule",
+        "Gerrit-HttpModule: com.googlesource.gerrit.plugins.reviewersbyblame.HttpModule",
         "Implementation-Title: Reviewers By Blame",
         "Implementation-URL: https://gerrit.googlesource.com/plugins/reviewers-by-blame",
     ],
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/HttpModule.java
new file mode 100644
index 0000000..25d3d7c
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/HttpModule.java
@@ -0,0 +1,29 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.reviewersbyblame;
+
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.extensions.webui.JavaScriptPlugin;
+import com.google.gerrit.extensions.webui.WebUiPlugin;
+import com.google.gerrit.httpd.plugins.HttpPluginModule;
+
+public class HttpModule extends HttpPluginModule {
+
+  @Override
+  protected void configureServlets() {
+    DynamicSet.bind(binder(), WebUiPlugin.class)
+        .toInstance(new JavaScriptPlugin("gr-reviewers-by-blame.html"));
+  }
+}
diff --git a/src/main/resources/static/gr-reviewers-by-blame-config.html b/src/main/resources/static/gr-reviewers-by-blame-config.html
new file mode 100644
index 0000000..01269b9
--- /dev/null
+++ b/src/main/resources/static/gr-reviewers-by-blame-config.html
@@ -0,0 +1,79 @@
+<!--
+@license
+Copyright (C) 2019 The Android Open Source Project
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<dom-module id="gr-reviewers-by-blame-config">
+  <template>
+    <style include="shared-styles"></style>
+    <style include="gr-form-styles"></style>
+    <style>
+      .sectionTitle {
+        padding-top: 2em;
+      }
+    </style>
+    <fieldset class="gr-form-styles">
+      <h2 class="sectionTitle">Reviewers-By-Blame Options</h2>
+      <section>
+        <span class="title">Ignore file regex</span>
+        <span class="value">
+          <iron-input bind-value="{{_changedConfig.ignoreFileRegEx.value}}">
+            <input id="ignoreFileRegEx"
+                   value="{{_changedConfig.ignoreFileRegEx.value::input}}"
+                   type="text"
+                   on-input="_handlePrefsChanged">
+          </iron-input>
+        </span>
+        <span class="value">
+          [[_formatInheritedValue(_appliedConfig.ignoreFileRegEx.inherited_value)]]
+        </span>
+      </section>
+      <section>
+        <span class="title">Ignore regex</span>
+        <span class="value">
+          <iron-input bind-value="{{_changedConfig.ignoreSubjectRegEx.value}}">
+            <input id="ignoreSubjectRegEx"
+                   value="{{_changedConfig.ignoreSubjectRegEx.value::input}}"
+                   type="text"
+                   on-input="_handlePrefsChanged">
+          </iron-input>
+        </span>
+        <span class="value">
+          [[_formatInheritedValue(_appliedConfig.ignoreSubjectRegEx.inherited_value)]]
+        </span>
+      </section>
+      <section>
+        <span class="title">Max reviewers</span>
+        <span class="value">
+          <iron-input bind-value="{{_changedConfig._maxReviewers.value}}">
+            <input id="maxReviewers"
+                   value="{{_changedConfig.maxReviewers.value::input}}"
+                   prevent-invalid-input
+                   allowed-pattern="[0-9]"
+                   type="number"
+                   on-keypress="_handlePrefsChanged"
+                   on-change="_handlePrefsChanged">
+          </iron-input>
+        </span>
+        <span class="value">
+          [[_formatInheritedValue(_appliedConfig.maxReviewers.inherited_value)]]
+        </span>
+      </section>
+      <gr-button id="saveButton"
+                 on-click="_handlePrefsSave"
+                 disabled="[[!_prefsChanged]]">
+        Save Changes
+      </gr-button>
+    </fieldset>
+  </template>
+  <script src="gr-reviewers-by-blame-config.js"></script>
+</dom-module>
diff --git a/src/main/resources/static/gr-reviewers-by-blame-config.js b/src/main/resources/static/gr-reviewers-by-blame-config.js
new file mode 100644
index 0000000..ec8b1bd
--- /dev/null
+++ b/src/main/resources/static/gr-reviewers-by-blame-config.js
@@ -0,0 +1,78 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the 'License');
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an 'AS IS' BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+(function () {
+  'use strict';
+
+  Polymer({
+    is: 'gr-reviewers-by-blame-config',
+
+    properties: {
+      repoName: String,
+      _appliedConfig: Object,
+      _changedConfig: Object,
+      _prefsChanged: {
+        type: Boolean,
+        value: false,
+      },
+      _projectRestApi: Object,
+    },
+
+    attached() {
+      this._projectRestApi = this.plugin.restApi('/projects/');
+
+      this._getPreferences().then(() => {
+        this._changedConfig = Object.assign({}, this._appliedConfig);
+      });
+    },
+
+    _getPreferences() {
+      return this._projectRestApi.get(`${this.repoName}/config`)
+        .then(config => {
+          if (!config) {
+            return;
+          }
+
+          if (config.plugin_config
+            && config.plugin_config['reviewers-by-blame']) {
+            this._appliedConfig = config.plugin_config['reviewers-by-blame'];
+          }
+        })
+    },
+
+    _handlePrefsChanged() {
+      this._prefsChanged = true;
+    },
+
+    _handlePrefsSave() {
+      let body = { plugin_config_values: {} };
+      body.plugin_config_values['reviewers-by-blame'] = this._changedConfig;
+
+      this._projectRestApi.put(`${this.repoName}/config`, body)
+        .then(() => {
+          this._prefsChanged = false;
+        }).catch(response => {
+          this.fire('show-error', { message: response });
+        });
+    },
+
+    _formatInheritedValue(value) {
+      if (value) {
+        return `inherited: ${value}`;
+      }
+
+      return '';
+    },
+  });
+})();
diff --git a/src/main/resources/static/gr-reviewers-by-blame.html b/src/main/resources/static/gr-reviewers-by-blame.html
new file mode 100644
index 0000000..b5d2046
--- /dev/null
+++ b/src/main/resources/static/gr-reviewers-by-blame.html
@@ -0,0 +1,26 @@
+<!--
+@license
+Copyright (C) 2019 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<link rel="import" href="./gr-reviewers-by-blame-config.html">
+
+<dom-module id="gr-reviewers-by-blame">
+  <script>
+    Gerrit.install(plugin => {
+      plugin.registerCustomComponent('repo-config', 'gr-reviewers-by-blame-config');
+    });
+  </script>
+</dom-module>
