diff --git a/src/lang/en.js b/src/lang/en.js
index 60d48a837a1c059966d2dd9f0d8e9195c56a5c36..f193abaf31b80893e79569ffc470bdbe76ba5b32 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -469,7 +469,11 @@ export default {
     setLimits: 'Set different limits for unauthenticated and authenticated users',
     unauthenticatedUsers: 'Unauthenticated users',
     authenticatedUsers: 'Authenticated users',
-    setLimitsForAll: 'Set limit for all users'
+    setLimitsForAll: 'Set limit for all users',
+    ref: 'Ref',
+    file: 'File',
+    buildUrl: 'Build URL',
+    buildDir: 'Build Directory'
 
   },
   invites: {
diff --git a/src/views/settings/components/Frontend.vue b/src/views/settings/components/Frontend.vue
index 50cc471995ca6985b1195bb6d7e64ff163fcfb61..26f1e2f0b253554d34dadfb26dde8b37df2bf3b3 100644
--- a/src/views/settings/components/Frontend.vue
+++ b/src/views/settings/components/Frontend.vue
@@ -1,6 +1,6 @@
 <template>
   <div v-if="!loading" :class="isSidebarOpen" class="form-container">
-    <el-form :label-position="labelPosition" :label-width="labelWidth">
+    <el-form :label-position="labelPosition" :label-width="labelWidth" class="frontend-container">
       <el-form-item class="description-container">
         <span class="setting-label">{{ $t('settings.availableFrontends') }}</span>
         <span class="expl no-top-margin"><p>{{ $t('settings.installFrontends') }}</p></span>
@@ -37,8 +37,37 @@
             </template>
           </el-table-column>
         </el-table>
+        <div class="frontends-button-container">
+          <el-button
+            :size="isDesktop ? 'medium' : 'mini'"
+            :icon="frontendInputOpen ? 'el-icon-minus' : 'el-icon-plus'"
+            circle
+            @click="toggleFrontendInput"/>
+          <span class="icons-button-desc">{{ $t('settings.installAnotherFrontend') }}</span>
+        </div>
+        <el-form v-if="frontendInputOpen" :model="frontendFormData" label-width="120px">
+          <el-form-item :label="$t('settings.name')" class="frontend-form-input">
+            <el-input v-model="frontendFormData.name"/>
+          </el-form-item>
+          <el-form-item :label="$t('settings.ref')" class="frontend-form-input">
+            <el-input v-model="frontendFormData.ref"/>
+          </el-form-item>
+          <el-form-item :label="$t('settings.file')" class="frontend-form-input">
+            <el-input v-model="frontendFormData.file"/>
+          </el-form-item>
+          <el-form-item :label="$t('settings.buildUrl')" class="frontend-form-input">
+            <el-input v-model="frontendFormData.buildUrl"/>
+          </el-form-item>
+          <el-form-item :label="$t('settings.buildDir')" class="frontend-form-input">
+            <el-input v-model="frontendFormData.buildDir"/>
+          </el-form-item>
+          <el-form-item class="install-frontend-button">
+            <el-button type="primary" @click="installNewFrontend">{{ $t('settings.install') }}</el-button>
+          </el-form-item>
+        </el-form>
       </el-form-item>
     </el-form>
+    <el-divider v-if="frontend" class="divider thick-line"/>
     <el-form :model="frontendData" :label-position="labelPosition" :label-width="labelWidth">
       <setting :setting-group="frontend" :data="frontendData"/>
     </el-form>
@@ -71,7 +100,7 @@
       <setting :setting-group="preload" :data="preloadData"/>
     </el-form>
     <div class="submit-button-container">
-      <el-button class="submit-button" type="primary" @click="onSubmit">Submit</el-button>
+      <el-button class="submit-button" type="primary" @click="onSubmit">{{ $t('settings.submit') }}</el-button>
     </div>
   </div>
 </template>
@@ -85,6 +114,18 @@ import _ from 'lodash'
 export default {
   name: 'Frontend',
   components: { Setting },
+  data() {
+    return {
+      frontendInputOpen: false,
+      frontendFormData: {
+        name: '',
+        ref: '',
+        file: '',
+        buildUrl: '',
+        buildDir: ''
+      }
+    }
+  },
   computed: {
     ...mapGetters([
       'settings'
@@ -122,6 +163,9 @@ export default {
     frontendsData() {
       return _.get(this.settings.settings, [':pleroma', ':frontends']) || {}
     },
+    isDesktop() {
+      return this.$store.state.app.device === 'desktop'
+    },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
     },
@@ -171,6 +215,9 @@ export default {
   methods: {
     installFrontend({ name }) {
       this.$store.dispatch('InstallFrontend', { name })
+    },
+    installNewFrontend() {
+
     },
     async onSubmit() {
       try {
@@ -182,6 +229,9 @@ export default {
         type: 'success',
         message: i18n.t('settings.success')
       })
+    },
+    toggleFrontendInput() {
+      this.frontendInputOpen = !this.frontendInputOpen
     }
   }
 }
diff --git a/src/views/settings/styles/main.scss b/src/views/settings/styles/main.scss
index 48c7973a5bd8982c21abdf5f24fd0c0678366e8f..e85113be5b25b8500ab3ebd80cfb33ab217621cb 100644
--- a/src/views/settings/styles/main.scss
+++ b/src/views/settings/styles/main.scss
@@ -75,6 +75,16 @@
   .form-container {
     margin-bottom: 80px;
   }
+  .frontend-container {
+    margin-right: 30px;
+  }
+  .frontend-form-input {
+    margin-top: 15px;
+  }
+  .frontends-button-container {
+    width: 100%;
+    margin-top: 15px;
+  }
   .frontends-table {
     width: 100%;
     margin-right: 30px;
@@ -130,6 +140,10 @@
       width: 100%;
     }
   }
+  .install-frontend-button {
+    margin-top: 15px;
+    float: right;
+  }
   .keyword-container {
     width: 100%
   }