diff --git a/web/navigation-sidebar/navigation-sidebar.css b/web/navigation-sidebar/navigation-sidebar.css
new file mode 100644
--- /dev/null
+++ b/web/navigation-sidebar/navigation-sidebar.css
@@ -0,0 +1,15 @@
+.container {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  background-color: var(--panel-background-secondary-default);
+}
+
+.footer {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  border-top: 1px solid var(--separator-background-primary-default);
+  row-gap: 16px;
+  padding: 16px 0;
+}
diff --git a/web/navigation-sidebar/navigation-sidebar.react.js b/web/navigation-sidebar/navigation-sidebar.react.js
new file mode 100644
--- /dev/null
+++ b/web/navigation-sidebar/navigation-sidebar.react.js
@@ -0,0 +1,24 @@
+// @flow
+
+import * as React from 'react';
+
+import AccountSettingsButton from './account-settings-button.react.js';
+import CommunityCreationButton from './community-creation-button.react.js';
+import CommunityList from './community-list.react.js';
+import NavigationSidebarHomeButton from './navigation-sidebar-home-button.react.js';
+import css from './navigation-sidebar.css';
+
+function NavigationSidebar(): React.Node {
+  return (
+    <div className={css.container}>
+      <NavigationSidebarHomeButton />
+      <CommunityList />
+      <div className={css.footer}>
+        <CommunityCreationButton />
+        <AccountSettingsButton />
+      </div>
+    </div>
+  );
+}
+
+export default NavigationSidebar;
diff --git a/web/theme.css b/web/theme.css
--- a/web/theme.css
+++ b/web/theme.css
@@ -253,6 +253,7 @@
 :root {
   /* Panel */
   --panel-background-primary-default: var(--shades-black-95);
+  --panel-background-secondary-default: var(--shades-black-85);
   --panel-background-tertiary-default: var(--shades-black-75);
 
   /* Text */
@@ -323,6 +324,7 @@
 [data-theme='light'] {
   /* Panel */
   --panel-background-primary-default: var(--shades-white-100);
+  --panel-background-secondary-default: var(--shades-white-80);
   --panel-background-tertiary-default: var(--shades-white-60);
 
   /* Text */