diff --git a/web/sidebar/community-drawer-item.css b/web/sidebar/community-drawer-item.css
--- a/web/sidebar/community-drawer-item.css
+++ b/web/sidebar/community-drawer-item.css
@@ -1,8 +1,8 @@
 .threadEntry {
   display: flex;
   flex-direction: row;
-  margin-top: 8px;
-  margin-bottom: 8px;
+  padding-top: 8px;
+  padding-bottom: 8px;
 }
 
 .threadListContainer {
@@ -12,6 +12,7 @@
 
 .titleWrapper {
   overflow: hidden;
+  width: 100%;
 }
 
 .title {
@@ -40,14 +41,9 @@
   display: flex;
 }
 
-.chatItem {
-  margin-left: 16px;
-}
-
 .communityBase {
   padding: 2px;
-  padding-right: 24px;
-  padding-left: 8px;
+  padding-right: 4px;
   overflow: hidden;
 }
 
@@ -58,7 +54,6 @@
 }
 
 .subchannelsButton {
-  margin-left: 24px;
   margin-bottom: 6px;
   margin-top: 4px;
   display: flex;
diff --git a/web/sidebar/community-drawer-item.react.js b/web/sidebar/community-drawer-item.react.js
--- a/web/sidebar/community-drawer-item.react.js
+++ b/web/sidebar/community-drawer-item.react.js
@@ -16,13 +16,18 @@
   +itemData: CommunityDrawerItemData<string>,
   +toggleExpanded: (threadID: string) => void,
   +expanded: boolean,
+  +paddingLeft: number,
 };
 
+const indentation = 14;
+const subchannelsButtonIndentation = 24;
+
 function CommunityDrawerItem(props: DrawerItemProps): React.Node {
   const {
     itemData: { threadInfo, itemChildren, hasSubchannelsButton, labelStyle },
     expanded,
     toggleExpanded,
+    paddingLeft,
   } = props;
 
   const children = React.useMemo(() => {
@@ -30,8 +35,12 @@
       return null;
     }
     if (hasSubchannelsButton) {
+      const buttonPaddingLeft = paddingLeft + subchannelsButtonIndentation;
       return (
-        <div className={css.subchannelsButton}>
+        <div
+          className={css.subchannelsButton}
+          style={{ paddingLeft: buttonPaddingLeft }}
+        >
           <SubchannelsButton threadInfo={threadInfo} />
         </div>
       );
@@ -43,9 +52,10 @@
       <MemoizedCommunityDrawerItemChat
         itemData={item}
         key={item.threadInfo.id}
+        paddingLeft={paddingLeft + indentation}
       />
     ));
-  }, [expanded, hasSubchannelsButton, itemChildren, threadInfo]);
+  }, [expanded, hasSubchannelsButton, itemChildren, paddingLeft, threadInfo]);
 
   const onExpandToggled = React.useCallback(
     () => toggleExpanded(threadInfo.id),
@@ -79,10 +89,12 @@
   const { uiName } = useResolvedThreadInfo(threadInfo);
   const titleLabel = classnames(css.title, css[labelStyle]);
 
+  const style = React.useMemo(() => ({ paddingLeft }), [paddingLeft]);
+
   return (
     <>
       <Handler setHandler={setHandler} threadInfo={threadInfo} />
-      <div className={css.threadEntry}>
+      <div className={css.threadEntry} style={style}>
         {itemExpandButton}
         <a onClick={handler.onClick} className={css.titleWrapper}>
           <div className={titleLabel}>{uiName}</div>
@@ -95,6 +107,7 @@
 
 export type CommunityDrawerItemChatProps = {
   +itemData: CommunityDrawerItemData<string>,
+  +paddingLeft: number,
 };
 
 function CommunityDrawerItemChat(
@@ -107,13 +120,11 @@
   }, []);
 
   return (
-    <div className={css.chatItem}>
-      <MemoizedCommunityDrawerItem
-        {...props}
-        expanded={expanded}
-        toggleExpanded={toggleExpanded}
-      />
-    </div>
+    <MemoizedCommunityDrawerItem
+      {...props}
+      expanded={expanded}
+      toggleExpanded={toggleExpanded}
+    />
   );
 }
 
diff --git a/web/sidebar/community-drawer.react.js b/web/sidebar/community-drawer.react.js
--- a/web/sidebar/community-drawer.react.js
+++ b/web/sidebar/community-drawer.react.js
@@ -52,6 +52,7 @@
           key={item.threadInfo.id}
           toggleExpanded={setOpenCommunityOrClose}
           expanded={item.threadInfo.id === openCommunity}
+          paddingLeft={10}
         />
       )),
     [drawerItemsData, openCommunity, setOpenCommunityOrClose],