diff --git a/src/components/settings_modal/tabs/notifications_tab.vue b/src/components/settings_modal/tabs/notifications_tab.vue
index dd3806ed..5b3a62a9 100644
--- a/src/components/settings_modal/tabs/notifications_tab.vue
+++ b/src/components/settings_modal/tabs/notifications_tab.vue
@@ -65,6 +65,14 @@
             {{ $t('settings.enable_web_push_notifications') }}
           </BooleanSetting>
         </li>
+        <li>
+          <BooleanSetting
+            path="webPushHideIfCW"
+            expert="1"
+          >
+            {{ $t('settings.notification_setting_hide_if_cw') }}
+          </BooleanSetting>
+        </li>
         <li>
           <BooleanSetting
             path="serverSide_webPushHideContents"
diff --git a/src/i18n/en.json b/src/i18n/en.json
index d17310d6..d48c51dd 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -546,6 +546,7 @@
     "notification_setting_block_from_strangers": "Block notifications from users who you do not follow",
     "notification_setting_privacy": "Privacy",
     "notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications",
+    "notification_setting_hide_if_cw": "Hide the contents of push notifications if under a Content Warning",
     "notification_mutes": "To stop receiving notifications from a specific user, use a mute.",
     "notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.",
     "enable_web_push_notifications": "Enable web push notifications",
diff --git a/src/modules/config.js b/src/modules/config.js
index 3afeeebe..6eeafe78 100644
--- a/src/modules/config.js
+++ b/src/modules/config.js
@@ -63,6 +63,7 @@ export const defaultState = {
     polls: true
   },
   webPushNotifications: false,
+  webPushHideIfCW: true,
   muteWords: [],
   highlight: {},
   interfaceLanguage: browserLocale,
diff --git a/src/services/notification_utils/notification_utils.js b/src/services/notification_utils/notification_utils.js
index a221b022..fc5b4d8b 100644
--- a/src/services/notification_utils/notification_utils.js
+++ b/src/services/notification_utils/notification_utils.js
@@ -58,7 +58,7 @@ export const maybeShowNotification = (store, notification) => {
   if (!visibleTypes(store).includes(notification.type)) return
   if (notification.type === 'mention' && isMutedNotification(store, notification)) return
 
-  const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)
+  const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n, store)
   showDesktopNotification(rootState, notificationObject)
 }
 
@@ -74,7 +74,7 @@ export const filteredNotificationsFromStore = (store, types) => {
 export const unseenNotificationsFromStore = store =>
   filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)
 
-export const prepareNotificationObject = (notification, i18n) => {
+export const prepareNotificationObject = (notification, i18n, store) => {
   const notifObj = {
     tag: notification.id
   }
@@ -109,7 +109,15 @@ export const prepareNotificationObject = (notification, i18n) => {
   } else if (i18nString) {
     notifObj.body = i18n.t('notifications.' + i18nString)
   } else if (isStatusNotification(notification.type)) {
-    notifObj.body = notification.status.text
+    if (notification.status.summary) {
+      if (store.getters.mergedConfig.webPushHideIfCW) {
+        notifObj.body = notification.status.summary
+      } else {
+        notifObj.body = `${notification.status.summary}:\n${notification.status.text}`
+      }
+    } else {
+      notifObj.body = notification.status.text
+    }
   }
 
   // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...