diff --git a/packages/web/src/components/ide/GitPanel.vue b/packages/web/src/components/ide/GitPanel.vue
new file mode 100644
index 0000000..1848b3d
--- /dev/null
+++ b/packages/web/src/components/ide/GitPanel.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
diff --git a/packages/web/src/components/ide/GroupsPanel.vue b/packages/web/src/components/ide/GroupsPanel.vue
new file mode 100644
index 0000000..4dfcd4f
--- /dev/null
+++ b/packages/web/src/components/ide/GroupsPanel.vue
@@ -0,0 +1,32 @@
+
+
+
+ {{ t('ide.activity.groups') }}
+
+
+
+
+
+
{{ t('groups.empty') }}
+
+
+ {{ g.label }}
+ {{ t('groups.repoCount', groups.reposInGroup(g.id).length) }}
+
+
+
+
+
+
diff --git a/packages/web/src/components/ide/PrimarySidebar.vue b/packages/web/src/components/ide/PrimarySidebar.vue
index f510be0..3b088ae 100644
--- a/packages/web/src/components/ide/PrimarySidebar.vue
+++ b/packages/web/src/components/ide/PrimarySidebar.vue
@@ -4,32 +4,18 @@
:style="{ width: `${ide.leftWidth}px` }"
>
-
-
-
-
+
+
+
diff --git a/packages/web/src/components/ide/SessionsPanel.vue b/packages/web/src/components/ide/SessionsPanel.vue
new file mode 100644
index 0000000..4b2708c
--- /dev/null
+++ b/packages/web/src/components/ide/SessionsPanel.vue
@@ -0,0 +1,53 @@
+
+
+
+ {{ t('ide.activity.sessions') }}
+
+
+
+
+
+
{{ t('sessions.empty') }}
+
+
+
+
+
+