diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js
index b47dadb94b6c6b8e090884ceb8539b3fdc27b673..aff537c6875e3257af3ab9140a50e4d51a37acab 100644
--- a/src/store/modules/settings.js
+++ b/src/store/modules/settings.js
@@ -5,19 +5,19 @@ const settings = {
   state: {
     description: [],
     settings: {
-      auto_linker: {},
-      cors_plug: {},
-      esshd: {},
-      http_signatures: {},
-      logger: {},
-      mime: {},
-      phoenix: {},
-      pleroma: {},
-      prometheus: {},
-      quack: {},
-      tesla: {},
-      ueberauth: {},
-      web_push_encryption: {}
+      ':auto_linker': {},
+      ':cors_plug': {},
+      ':esshd': {},
+      ':http_signatures': {},
+      ':logger': {},
+      ':mime': {},
+      ':phoenix': {},
+      ':pleroma': {},
+      ':prometheus': {},
+      ':quack': {},
+      ':tesla': {},
+      ':ueberauth': {},
+      ':web_push_encryption': {}
     },
     updatedSettings: {},
     ignoredIfNotEnabled: ['enabled', 'handler', 'password_authenticator', 'port', 'priv_dir'],
@@ -42,13 +42,12 @@ const settings = {
       state.settings = newSettings
     },
     UPDATE_SETTINGS: (state, { group, tab, data }) => {
-      const groupUPD = group.substr(1)
-      const updatedState = { [tab]: { ...state.settings[groupUPD][tab], ...data }}
-      const updatedSetting = state.updatedSettings[groupUPD]
-        ? { [tab]: { ...state.updatedSettings[groupUPD][tab], ...data }}
+      const updatedState = { [tab]: { ...state.settings[group][tab], ...data }}
+      const updatedSetting = state.updatedSettings[group]
+        ? { [tab]: { ...state.updatedSettings[group][tab], ...data }}
         : { [tab]: data }
-      state.settings[groupUPD] = { ...state.settings[groupUPD], ...updatedState }
-      state.updatedSettings[groupUPD] = { ...state.updatedSettings[groupUPD], ...updatedSetting }
+      state.settings[group] = { ...state.settings[group], ...updatedState }
+      state.updatedSettings[group] = { ...state.updatedSettings[group], ...updatedSetting }
     }
   },
   actions: {
diff --git a/src/views/settings/components/ActivityPub.vue b/src/views/settings/components/ActivityPub.vue
index 0effc24d122e3a7409f54d3cfa138f3c1656999d..4c99296d0864d8420354b4a51b60e74338a8ae22 100644
--- a/src/views/settings/components/ActivityPub.vue
+++ b/src/views/settings/components/ActivityPub.vue
@@ -29,7 +29,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':activitypub')
     },
     activitypubData() {
-      return this.settings.settings.pleroma[':activitypub']
+      return this.settings.settings[':pleroma'][':activitypub']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -44,7 +44,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':user')
     },
     userData() {
-      return this.settings.settings.pleroma[':user']
+      return this.settings.settings[':pleroma'][':user']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Authentication.vue b/src/views/settings/components/Authentication.vue
index 72e7ad91b972ab6e72864d975060478421ef5ef0..c37fe5376b0f4586352fe5a4bd61ed259c0bb9bc 100644
--- a/src/views/settings/components/Authentication.vue
+++ b/src/views/settings/components/Authentication.vue
@@ -37,7 +37,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':auth')
     },
     authData() {
-      return this.settings.settings.pleroma[':auth']
+      return this.settings.settings[':pleroma'][':auth']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -49,7 +49,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':ldap')
     },
     ldapData() {
-      return this.settings.settings.pleroma[':ldap']
+      return this.settings.settings[':pleroma'][':ldap']
     },
     loading() {
       return this.settings.loading
@@ -58,13 +58,13 @@ export default {
       return this.settings.description.find(setting => setting.key === ':oauth2')
     },
     oauth2Data() {
-      return this.settings.settings.pleroma[':oauth2']
+      return this.settings.settings[':pleroma'][':oauth2']
     },
     pleromaAuthenticator() {
       return this.settings.description.find(setting => setting.description === 'Authenticator')
     },
     pleromaAuthenticatorData() {
-      return this.settings.settings.pleroma['Pleroma.Web.Auth.Authenticator']
+      return this.settings.settings[':pleroma']['Pleroma.Web.Auth.Authenticator']
     }
   },
   methods: {
diff --git a/src/views/settings/components/AutoLinker.vue b/src/views/settings/components/AutoLinker.vue
index 138c6646f6255ef8a33cab2c66601960b23fdc53..29c1f69b2a9dd21daf15f32028144988709f82fd 100644
--- a/src/views/settings/components/AutoLinker.vue
+++ b/src/views/settings/components/AutoLinker.vue
@@ -23,7 +23,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':opts')
     },
     autoLinkerData() {
-      return this.settings.settings.auto_linker[':opts']
+      return this.settings.settings[':auto_linker'][':opts']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
diff --git a/src/views/settings/components/Captcha.vue b/src/views/settings/components/Captcha.vue
index 44e3ea05368a323fa9a52653e5f5b7c092b653a6..0a61f0bf6d4b7b1664437937aecec18eb8e729af 100644
--- a/src/views/settings/components/Captcha.vue
+++ b/src/views/settings/components/Captcha.vue
@@ -29,7 +29,7 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Captcha')
     },
     captchaData() {
-      return this.settings.settings.pleroma['Pleroma.Captcha']
+      return this.settings.settings[':pleroma']['Pleroma.Captcha']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -38,7 +38,7 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Captcha.Kocaptcha')
     },
     kocaptchaData() {
-      return this.settings.settings.pleroma['Pleroma.Captcha.Kocaptcha']
+      return this.settings.settings[':pleroma']['Pleroma.Captcha.Kocaptcha']
     },
     labelWidth() {
       return this.isMobile ? '100px' : '240px'
diff --git a/src/views/settings/components/Database.vue b/src/views/settings/components/Database.vue
index 9077d91954f242e118822a8b43de2ab4c0a106ff..206d12488f1e8c1583fdad572211d62270b0736a 100644
--- a/src/views/settings/components/Database.vue
+++ b/src/views/settings/components/Database.vue
@@ -25,7 +25,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':database')
     },
     databaseData() {
-      return this.settings.settings.pleroma[':database']
+      return this.settings.settings[':pleroma'][':database']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
diff --git a/src/views/settings/components/Endpoint.vue b/src/views/settings/components/Endpoint.vue
index a08e084726c0bcd9df839866813e1c17a8739c13..6becdbb2f6acc5821fca99a9bdc0f7eb942e17be 100644
--- a/src/views/settings/components/Endpoint.vue
+++ b/src/views/settings/components/Endpoint.vue
@@ -35,13 +35,13 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Endpoint')
     },
     endpointData() {
-      return this.settings.settings.pleroma['Pleroma.Web.Endpoint']
+      return this.settings.settings[':pleroma']['Pleroma.Web.Endpoint']
     },
     endpointMetricsExporter() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Endpoint.MetricsExporter')
     },
     endpointMetricsExporterData() {
-      return this.settings.settings.prometheus['Pleroma.Web.Endpoint.MetricsExporter']
+      return this.settings.settings[':prometheus']['Pleroma.Web.Endpoint.MetricsExporter']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -56,7 +56,7 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Plugs.RemoteIp')
     },
     remoteIpData() {
-      return this.settings.settings.pleroma['Pleroma.Plugs.RemoteIp']
+      return this.settings.settings[':pleroma']['Pleroma.Plugs.RemoteIp']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Esshd.vue b/src/views/settings/components/Esshd.vue
index 01f9be39e69fb4e19d94c083f410165d85a04bc7..c66ec01b35e5c9f1a429a4dbaecba2e489a5e5ad 100644
--- a/src/views/settings/components/Esshd.vue
+++ b/src/views/settings/components/Esshd.vue
@@ -32,7 +32,7 @@ export default {
       return this.settings.description.find(setting => setting.group === ':esshd')
     },
     esshdData() {
-      return this.settings.settings.esshd
+      return this.settings.settings[':esshd']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
diff --git a/src/views/settings/components/Frontend.vue b/src/views/settings/components/Frontend.vue
index 7c3069eaa126aa773069e567e98d0b838b6c94ed..fb969532cbd471e301b95bc37b5b592e5312b5d8 100644
--- a/src/views/settings/components/Frontend.vue
+++ b/src/views/settings/components/Frontend.vue
@@ -48,31 +48,31 @@ export default {
       return this.settings.description.find(setting => setting.key === ':assets')
     },
     assetsData() {
-      return this.settings.settings.pleroma[':assets']
+      return this.settings.settings[':pleroma'][':assets']
     },
     chat() {
       return this.settings.description.find(setting => setting.key === ':chat')
     },
     chatData() {
-      return this.settings.settings.pleroma[':chat']
+      return this.settings.settings[':pleroma'][':chat']
     },
     emoji() {
       return this.settings.description.find(setting => setting.key === ':emoji')
     },
     emojiData() {
-      return this.settings.settings.pleroma[':emoji']
+      return this.settings.settings[':pleroma'][':emoji']
     },
     frontend() {
       return this.settings.description.find(setting => setting.key === ':frontend_configurations')
     },
     frontendData() {
-      return this.settings.settings.pleroma[':frontend_configurations']
+      return this.settings.settings[':pleroma'][':frontend_configurations']
     },
     markup() {
       return this.settings.description.find(setting => setting.key === ':markup')
     },
     markupData() {
-      return this.settings.settings.pleroma[':markup']
+      return this.settings.settings[':pleroma'][':markup']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
diff --git a/src/views/settings/components/Gopher.vue b/src/views/settings/components/Gopher.vue
index cc9207270baccbc0e1ce9ad6c572796244e11754..bb95aabffbb351c198b78616481b23df6bb795bb 100644
--- a/src/views/settings/components/Gopher.vue
+++ b/src/views/settings/components/Gopher.vue
@@ -23,7 +23,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':gopher')
     },
     gopherData() {
-      return this.settings.settings.pleroma[':gopher']
+      return this.settings.settings[':pleroma'][':gopher']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
diff --git a/src/views/settings/components/Http.vue b/src/views/settings/components/Http.vue
index 9c67ffd34239881aadf906bb5b63145afd0f9392..37100fbf7427ec931f8cbf18d59fb388894b91d8 100644
--- a/src/views/settings/components/Http.vue
+++ b/src/views/settings/components/Http.vue
@@ -41,19 +41,19 @@ export default {
       return this.settings.description.find(setting => setting.group === ':cors_plug')
     },
     corsPlugData() {
-      return this.settings.settings.cors_plug
+      return this.settings.settings[':cors_plug']
     },
     http() {
       return this.settings.description.find(setting => setting.key === ':http')
     },
     httpData() {
-      return this.settings.settings.pleroma[':http']
+      return this.settings.settings[':pleroma'][':http']
     },
     httpSecurity() {
       return this.settings.description.find(setting => setting.key === ':http_security')
     },
     httpSecurityData() {
-      return this.settings.settings.pleroma[':http_security']
+      return this.settings.settings[':pleroma'][':http_security']
     },
     httpSignatures() {
       return this.settings.description.find(setting => setting.group === ':http_signatures')
@@ -74,7 +74,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':web_cache_ttl')
     },
     webCacheTtlData() {
-      return this.settings.settings.pleroma[':web_cache_ttl']
+      return this.settings.settings[':pleroma'][':web_cache_ttl']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Instance.vue b/src/views/settings/components/Instance.vue
index e07c4f796346927991fa5f0de14d9d6c52103125..48f0a6e50fa87999bb54b8a8949e425c489cd80a 100644
--- a/src/views/settings/components/Instance.vue
+++ b/src/views/settings/components/Instance.vue
@@ -56,19 +56,19 @@ export default {
       return this.settings.description.find(setting => setting.description === `Allows to set a token that can be used to authenticate with the admin api without using an actual user by giving it as the 'admin_token' parameter`)
     },
     adminTokenData() {
-      return this.settings.settings.pleroma[':admin_token']
+      return this.settings.settings[':pleroma'][':admin_token']
     },
     fetchInitialPosts() {
       return this.settings.description.find(setting => setting.key === ':fetch_initial_posts')
     },
     fetchInitialPostsData() {
-      return this.settings.settings.pleroma[':fetch_initial_posts']
+      return this.settings.settings[':pleroma'][':fetch_initial_posts']
     },
     instance() {
       return this.settings.description.find(setting => setting.key === ':instance')
     },
     instanceData() {
-      return this.settings.settings.pleroma[':instance']
+      return this.settings.settings[':pleroma'][':instance']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -83,31 +83,31 @@ export default {
       return this.settings.description.find(setting => setting.key === ':manifest')
     },
     manifestData() {
-      return this.settings.settings.pleroma[':manifest']
+      return this.settings.settings[':pleroma'][':manifest']
     },
     pleromaUser() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.User')
     },
     pleromaUserData() {
-      return this.settings.settings.pleroma['Pleroma.User']
+      return this.settings.settings[':pleroma']['Pleroma.User']
     },
     scheduledActivity() {
       return this.$store.state.settings.description.find(setting => setting.key === 'Pleroma.ScheduledActivity')
     },
     scheduledActivityData() {
-      return this.settings.settings.pleroma['Pleroma.ScheduledActivity']
+      return this.settings.settings[':pleroma']['Pleroma.ScheduledActivity']
     },
     suggestions() {
       return this.$store.state.settings.description.find(setting => setting.key === ':suggestions')
     },
     suggestionsData() {
-      return this.settings.settings.pleroma[':suggestions']
+      return this.settings.settings[':pleroma'][':suggestions']
     },
     uriSchemes() {
       return this.$store.state.settings.description.find(setting => setting.key === ':uri_schemes')
     },
     uriSchemesData() {
-      return this.settings.settings.pleroma[':uri_schemes']
+      return this.settings.settings[':pleroma'][':uri_schemes']
     }
   },
   methods: {
diff --git a/src/views/settings/components/JobQueue.vue b/src/views/settings/components/JobQueue.vue
index c6b4e81ab63e19d40a5d858db90171bf4c3be746..a8c01518e8c263426fa36e2b9b296da65cacac92 100644
--- a/src/views/settings/components/JobQueue.vue
+++ b/src/views/settings/components/JobQueue.vue
@@ -31,7 +31,7 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.ActivityExpiration')
     },
     activityExpirationData() {
-      return this.settings.settings.pleroma['Pleroma.ActivityExpiration']
+      return this.settings.settings[':pleroma']['Pleroma.ActivityExpiration']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -46,13 +46,13 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Oban')
     },
     obanQueuesData() {
-      return this.settings.settings.pleroma['Oban']
+      return this.settings.settings[':pleroma']['Oban']
     },
     workers() {
       return this.settings.description.find(setting => setting.key === ':workers')
     },
     workersData() {
-      return this.settings.settings.pleroma[':workers']
+      return this.settings.settings[':pleroma'][':workers']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Logger.vue b/src/views/settings/components/Logger.vue
index 184103cd771369b4f1b9a10abf0640f1b2a1c75c..f8f4ed323155ace307961f9252dce610b5efc111 100644
--- a/src/views/settings/components/Logger.vue
+++ b/src/views/settings/components/Logger.vue
@@ -38,13 +38,13 @@ export default {
       return this.settings.description.find(setting => setting.key === ':console')
     },
     consoleData() {
-      return this.settings.settings.logger[':console']
+      return this.settings.settings[':logger'][':console']
     },
     exsyslogger() {
       return this.settings.description.find(setting => setting.key === ':ex_syslogger')
     },
     exsysloggerData() {
-      return this.settings.settings.logger[':ex_syslogger']
+      return this.settings.settings[':logger'][':ex_syslogger']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -59,13 +59,13 @@ export default {
       return this.settings.description.find(setting => setting.group === ':logger')
     },
     loggerData() {
-      return this.settings.settings.logger[':backends']
+      return this.settings.settings[':logger'][':backends']
     },
     quack() {
       return this.settings.description.find(setting => setting.group === ':quack')
     },
     quackData() {
-      return this.settings.settings.quack
+      return this.settings.settings[':quack']
     }
   },
   methods: {
diff --git a/src/views/settings/components/MRF.vue b/src/views/settings/components/MRF.vue
index d0970c8c0c187142f4c98f641e79ab205a96e2aa..fd3be846982d7c65f437c8ddab8a4fe4db7494e9 100644
--- a/src/views/settings/components/MRF.vue
+++ b/src/views/settings/components/MRF.vue
@@ -60,49 +60,49 @@ export default {
       return this.settings.description.find(setting => setting.key === ':mrf_simple')
     },
     mrfSimpleData() {
-      return this.settings.settings.pleroma[':mrf_simple']
+      return this.settings.settings[':pleroma'][':mrf_simple']
     },
     mrfRejectnonpublic() {
       return this.settings.description.find(setting => setting.key === ':mrf_rejectnonpublic')
     },
     mrfRejectnonpublicData() {
-      return this.settings.settings.pleroma[':mrf_rejectnonpublic']
+      return this.settings.settings[':pleroma'][':mrf_rejectnonpublic']
     },
     mrfHellthread() {
       return this.settings.description.find(setting => setting.key === ':mrf_hellthread')
     },
     mrfHellthreadData() {
-      return this.settings.settings.pleroma[':mrf_hellthread']
+      return this.settings.settings[':pleroma'][':mrf_hellthread']
     },
     mrfKeyword() {
       return this.settings.description.find(setting => setting.key === ':mrf_keyword')
     },
     mrfKeywordData() {
-      return this.settings.settings.pleroma[':mrf_keyword']
+      return this.settings.settings[':pleroma'][':mrf_keyword']
     },
     mrfSubchain() {
       return this.settings.description.find(setting => setting.key === ':mrf_subchain')
     },
     mrfSubchainData() {
-      return this.settings.settings.pleroma[':mrf_subchain']
+      return this.settings.settings[':pleroma'][':mrf_subchain']
     },
     mrfMention() {
       return this.settings.description.find(setting => setting.key === ':mrf_mention')
     },
     mrfMentionData() {
-      return this.settings.settings.pleroma[':mrf_mention']
+      return this.settings.settings[':pleroma'][':mrf_mention']
     },
     mrfNormalizeMarkup() {
       return this.settings.description.find(setting => setting.key === ':mrf_normalize_markup')
     },
     mrfNormalizeMarkupData() {
-      return this.settings.settings.pleroma[':mrf_normalize_markup']
+      return this.settings.settings[':pleroma'][':mrf_normalize_markup']
     },
     mrfVocabulary() {
       return this.settings.description.find(setting => setting.key === ':mrf_vocabulary')
     },
     mrfVocabularyData() {
-      return this.settings.settings.pleroma[':mrf_vocabulary']
+      return this.settings.settings[':pleroma'][':mrf_vocabulary']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Mailer.vue b/src/views/settings/components/Mailer.vue
index a0c5d2fc03fc58ef789fe78a19b738d04c4ae73f..4640ad2fa84514a96328c3f2bd7318f5d9dcec56 100644
--- a/src/views/settings/components/Mailer.vue
+++ b/src/views/settings/components/Mailer.vue
@@ -34,7 +34,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':email_notifications')
     },
     emailNotificationsData() {
-      return this.settings.settings.pleroma[':email_notifications']
+      return this.settings.settings[':pleroma'][':email_notifications']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
@@ -49,13 +49,13 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Emails.Mailer')
     },
     mailerData() {
-      return this.settings.settings.pleroma['Pleroma.Emails.Mailer']
+      return this.settings.settings[':pleroma']['Pleroma.Emails.Mailer']
     },
     userEmail() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Emails.UserEmail')
     },
     userEmailData() {
-      return this.settings.settings.pleroma['Pleroma.Emails.UserEmail']
+      return this.settings.settings[':pleroma']['Pleroma.Emails.UserEmail']
     }
   },
   methods: {
diff --git a/src/views/settings/components/MediaProxy.vue b/src/views/settings/components/MediaProxy.vue
index a86df65d57b11a503f572db1c1c5cacdfc35a5fa..6ec5427c17e4463bf0fbf4e9624758093220e4a2 100644
--- a/src/views/settings/components/MediaProxy.vue
+++ b/src/views/settings/components/MediaProxy.vue
@@ -32,7 +32,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':media_proxy')
     },
     mediaProxyData() {
-      return this.settings.settings.pleroma[':media_proxy']
+      return this.settings.settings[':pleroma'][':media_proxy']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Metadata.vue b/src/views/settings/components/Metadata.vue
index 8cda1d86f9107fb3fbc04fb848223cabfe1a29f7..a13d676bd7be4ec649ac58e6b0242373508ec440 100644
--- a/src/views/settings/components/Metadata.vue
+++ b/src/views/settings/components/Metadata.vue
@@ -38,13 +38,13 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Metadata')
     },
     metadataData() {
-      return this.settings.settings.pleroma['Pleroma.Web.Metadata']
+      return this.settings.settings[':pleroma']['Pleroma.Web.Metadata']
     },
     richMedia() {
       return this.settings.description.find(setting => setting.key === ':rich_media')
     },
     richMediaData() {
-      return this.settings.settings.pleroma[':rich_media']
+      return this.settings.settings[':pleroma'][':rich_media']
     }
   },
   methods: {
diff --git a/src/views/settings/components/Other.vue b/src/views/settings/components/Other.vue
index d717232083534ec6764958dff38023cd3f94b558..650e08e2e627bdfb097d419ca4383aa0234372cb 100644
--- a/src/views/settings/components/Other.vue
+++ b/src/views/settings/components/Other.vue
@@ -38,13 +38,13 @@ export default {
       return this.settings.description.find(setting => setting.group === ':mime')
     },
     mimeTypesData() {
-      return this.settings.settings.mime[':types']
+      return this.settings.settings[':mime'][':types']
     },
     teslaAdapter() {
       return this.settings.description.find(setting => setting.group === ':tesla')
     },
     teslaAdapterData() {
-      return this.settings.settings.tesla[':adapter']
+      return this.settings.settings[':tesla'][':adapter']
     }
   },
   methods: {
diff --git a/src/views/settings/components/RateLimiters.vue b/src/views/settings/components/RateLimiters.vue
index 5e853ef8172a43320b3b6d7914e5d02403e83d2a..fa5259eb9cfda5c5c97159ef468a5762439251c4 100644
--- a/src/views/settings/components/RateLimiters.vue
+++ b/src/views/settings/components/RateLimiters.vue
@@ -23,7 +23,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':rate_limit')
     },
     rateLimitersData() {
-      return this.settings.settings.pleroma[':rate_limit']
+      return this.settings.settings[':pleroma'][':rate_limit']
     },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
diff --git a/src/views/settings/components/Upload.vue b/src/views/settings/components/Upload.vue
index 1beb2f9dcf1afa58aff6b8a8f170b89d3cd72b17..df980f77ddccdd09221a84064fcab346997c62a6 100644
--- a/src/views/settings/components/Upload.vue
+++ b/src/views/settings/components/Upload.vue
@@ -53,37 +53,37 @@ export default {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Upload')
     },
     uploadData() {
-      return this.settings.settings.pleroma['Pleroma.Upload']
+      return this.settings.settings[':pleroma']['Pleroma.Upload']
     },
     uploadersLocal() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Uploaders.Local')
     },
     uploadersLocalData() {
-      return this.settings.settings.pleroma['Pleroma.Uploaders.Local']
+      return this.settings.settings[':pleroma']['Pleroma.Uploaders.Local']
     },
     uploadersS3() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Uploaders.S3')
     },
     uploadersS3Data() {
-      return this.settings.settings.pleroma['Pleroma.Uploaders.S3']
+      return this.settings.settings[':pleroma']['Pleroma.Uploaders.S3']
     },
     uploadersMDII() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Uploaders.MDII')
     },
     uploadersMDIIData() {
-      return this.settings.settings.pleroma['Pleroma.Uploaders.MDII']
+      return this.settings.settings[':pleroma']['Pleroma.Uploaders.MDII']
     },
     uploadFilterMogrify() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Upload.Filter.Mogrify')
     },
     uploadFilterMogrifyData() {
-      return this.settings.settings.pleroma['Pleroma.Upload.Filter.Mogrify']
+      return this.settings.settings[':pleroma']['Pleroma.Upload.Filter.Mogrify']
     },
     uploadAnonymizeFilename() {
       return this.settings.description.find(setting => setting.key === 'Pleroma.Upload.Filter.AnonymizeFilename')
     },
     uploadAnonymizeFilenameData() {
-      return this.settings.settings.pleroma['Pleroma.Upload.Filter.AnonymizeFilename']
+      return this.settings.settings[':pleroma']['Pleroma.Upload.Filter.AnonymizeFilename']
     }
   },
   methods: {
diff --git a/src/views/settings/components/WebPush.vue b/src/views/settings/components/WebPush.vue
index 15cff61a69e5260b2a213ad290c4b0e1cea0a833..51324668268304b22d0c752622f28a945520e948 100644
--- a/src/views/settings/components/WebPush.vue
+++ b/src/views/settings/components/WebPush.vue
@@ -32,7 +32,7 @@ export default {
       return this.settings.description.find(setting => setting.key === ':vapid_details')
     },
     vapidDetailsData() {
-      return this.settings.settings.web_push_encryption[':vapid_details']
+      return this.settings.settings[':web_push_encryption'][':vapid_details']
     }
   },
   methods: {