diff --git a/web/app.react.js b/web/app.react.js
--- a/web/app.react.js
+++ b/web/app.react.js
@@ -17,7 +17,10 @@
   createLoadingStatusSelector,
   combineLoadingStatuses,
 } from 'lib/selectors/loading-selectors';
-import { mostRecentReadThreadSelector } from 'lib/selectors/thread-selectors';
+import {
+  mostRecentReadThreadSelector,
+  unreadCount,
+} from 'lib/selectors/thread-selectors';
 import { isLoggedIn } from 'lib/selectors/user-selectors';
 import type { LoadingStatus } from 'lib/types/loading-types';
 import type { Dispatch } from 'lib/types/redux-types';
@@ -39,6 +42,7 @@
 import Splash from './splash/splash.react';
 import './typography.css';
 import css from './style.css';
+import getTitle from './title/getTitle';
 import { type NavInfo, updateNavInfoActionType } from './types/nav-types';
 import { canonicalURLFromReduxState, navInfoFromURL } from './url-utils';
 
@@ -207,6 +211,11 @@
         !!state.threadStore.threadInfos[activeChatThreadID]?.currentUser.unread,
     );
 
+    const boundUnreadCount = useSelector(unreadCount);
+    React.useEffect(() => {
+      document.title = getTitle(boundUnreadCount);
+    }, [boundUnreadCount]);
+
     const dispatch = useDispatch();
     const modalContext = useModalContext();
 
diff --git a/web/sidebar/app-switcher.react.js b/web/sidebar/app-switcher.react.js
--- a/web/sidebar/app-switcher.react.js
+++ b/web/sidebar/app-switcher.react.js
@@ -12,7 +12,6 @@
 
 import { useSelector } from '../redux/redux-utils';
 import SWMansionIcon from '../SWMansionIcon.react';
-import getTitle from '../title/getTitle';
 import { updateNavInfoActionType } from '../types/nav-types';
 import css from './left-layout-aside.css';
 
@@ -31,13 +30,8 @@
     state => state.currentUserInfo && state.currentUserInfo.id,
   );
 
-  const boundUnreadCount = useSelector(unreadCount);
   const isCalendarEnabled = useSelector(state => state.enabledApps.calendar);
 
-  React.useEffect(() => {
-    document.title = getTitle(boundUnreadCount);
-  }, [boundUnreadCount]);
-
   const dispatch = useDispatch();
 
   const onClickCalendar = React.useCallback(
@@ -85,6 +79,8 @@
     [dispatch],
   );
 
+  const boundUnreadCount = useSelector(unreadCount);
+
   invariant(viewerID, 'should be set');
   let chatBadge = null;
   if (boundUnreadCount > 0) {