diff --git a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidTopBar.kt b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidTopBar.kt
index 798b8a854e1f3f726788cdf94414f39e830f2c81..9cca0a10c5ee128963f2529a6a45cae66fd27285 100644
--- a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidTopBar.kt
+++ b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidTopBar.kt
@@ -25,12 +25,12 @@
 package de.chaosdorf.meteroid.ui.navigation
 
 import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.clickable
 import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.CircleShape
 import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.automirrored.filled.ArrowBack
-import androidx.compose.material3.Icon
-import androidx.compose.material3.IconButton
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Text
 import androidx.compose.material3.TopAppBar
@@ -38,9 +38,12 @@ import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.clip
 import androidx.compose.ui.draw.shadow
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import coil.compose.AsyncImage
 import de.chaosdorf.meteroid.model.Server
 import de.chaosdorf.meteroid.model.User
 
@@ -58,9 +61,16 @@ fun MeteroidTopBar(
       )
     },
     navigationIcon = {
-      IconButton(onClick = { onNavigate(Routes.Users.Root) }) {
-        Icon(Icons.AutoMirrored.Default.ArrowBack, contentDescription = "Back")
-      }
+      AsyncImage(
+        account?.second?.gravatarUrl(),
+        contentDescription = "User List",
+        contentScale = ContentScale.Crop,
+        modifier = Modifier
+          .size(48.dp)
+          .clip(CircleShape)
+          .border(1.dp, Color.White, CircleShape)
+          .background(MaterialTheme.colorScheme.primaryContainer)
+      )
     },
     actions = {
       account?.second?.let { user ->
@@ -84,6 +94,8 @@ fun MeteroidTopBar(
         )
       }
     },
-    modifier = Modifier.shadow(4.dp)
+    modifier = Modifier
+      .shadow(4.dp)
+      .clickable { onNavigate(Routes.Users.Root) }
   )
 }
diff --git a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/users/UserListScreen.kt b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/users/UserListScreen.kt
index 92cbdad4aea35a18fd0b5292e6b3430b5031767f..25eb6f7ff0da2e3e034543c465074bd653f972fe 100644
--- a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/users/UserListScreen.kt
+++ b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/users/UserListScreen.kt
@@ -24,17 +24,18 @@
 
 package de.chaosdorf.meteroid.ui.users
 
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
 import androidx.compose.foundation.clickable
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.lazy.LazyColumn
 import androidx.compose.foundation.lazy.items
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.automirrored.filled.ArrowBack
-import androidx.compose.material3.Icon
-import androidx.compose.material3.IconButton
+import androidx.compose.foundation.shape.CircleShape
 import androidx.compose.material3.LinearProgressIndicator
 import androidx.compose.material3.ListItem
+import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Scaffold
 import androidx.compose.material3.Text
 import androidx.compose.material3.TopAppBar
@@ -42,8 +43,12 @@ import androidx.compose.runtime.Composable
 import androidx.compose.runtime.collectAsState
 import androidx.compose.runtime.getValue
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
 import androidx.compose.ui.draw.shadow
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.unit.dp
+import coil.compose.AsyncImage
 import de.chaosdorf.mete.UserId
 import de.chaosdorf.meteroid.sync.SyncHandler
 
@@ -68,11 +73,20 @@ fun UserListScreen(
           )
         },
         navigationIcon = {
-          IconButton(onClick = { onBack() }) {
-            Icon(Icons.AutoMirrored.Default.ArrowBack, contentDescription = "Back")
-          }
+          AsyncImage(
+            server?.first?.logoUrl,
+            contentDescription = "User List",
+            contentScale = ContentScale.Crop,
+            modifier = Modifier
+              .size(48.dp)
+              .clip(CircleShape)
+              .border(1.dp, Color.White, CircleShape)
+              .background(MaterialTheme.colorScheme.primaryContainer)
+          )
         },
-        modifier = Modifier.shadow(4.dp)
+        modifier = Modifier
+          .shadow(4.dp)
+          .clickable { onBack() }
       )
     }
   ) { paddingValues ->
diff --git a/persistence/src/main/kotlin/de/chaosdorf/meteroid/model/User.kt b/persistence/src/main/kotlin/de/chaosdorf/meteroid/model/User.kt
index 5e1b16671c9786bb004e5e23e308c457ceea8f92..40d52aeec9d3096a47b95eab34a97349e02ae123 100644
--- a/persistence/src/main/kotlin/de/chaosdorf/meteroid/model/User.kt
+++ b/persistence/src/main/kotlin/de/chaosdorf/meteroid/model/User.kt
@@ -34,6 +34,8 @@ import de.chaosdorf.mete.UserId
 import de.chaosdorf.mete.v1.UserModelV1
 import kotlinx.coroutines.flow.Flow
 import kotlinx.datetime.Instant
+import java.security.MessageDigest
+import java.util.Locale
 
 @Entity(
   primaryKeys = ["serverId", "userId"],
@@ -67,6 +69,15 @@ data class User(
       value.updatedAt
     )
   }
+
+  @OptIn(ExperimentalStdlibApi::class)
+  fun gravatarUrl(): String {
+    val normalised: String = email.lowercase(Locale.ROOT)
+    val binaryData: ByteArray = normalised.toByteArray(Charsets.UTF_8)
+    val binaryHash: ByteArray = MessageDigest.getInstance("MD5").digest(binaryData)
+    val hash: String = binaryHash.toHexString()
+    return "https://www.gravatar.com/avatar/$hash?d=404"
+  }
 }
 
 @Dao