diff --git a/src/main/kotlin/org/briarproject/briar/desktop/login/ErrorScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/login/ErrorScreen.kt
index bad371c4c82ef021de02b3bad852bba4d8b0c92e..4ea03ecc1542e777cd9ca7159b9dac395ba77852 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/login/ErrorScreen.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/login/ErrorScreen.kt
@@ -19,6 +19,7 @@
 package org.briarproject.briar.desktop.login
 
 import androidx.compose.foundation.layout.Arrangement.spacedBy
+import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxSize
@@ -34,11 +35,13 @@ import androidx.compose.material.Text
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.ArrowBack
 import androidx.compose.material.icons.filled.Error
+import androidx.compose.material.icons.filled.Info
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.unit.dp
@@ -69,16 +72,19 @@ fun main() = preview {
         }
     }
 
-    ErrorScreen(error) {}
+    ErrorScreen(error, {}) {}
 }
 
 @Composable
-fun ErrorScreen(viewHolder: ErrorSubViewModel) =
-    ErrorScreen(viewHolder.error, viewHolder.onBackButton)
+fun ErrorScreen(
+    onShowAbout: () -> Unit,
+    viewHolder: ErrorSubViewModel
+) = ErrorScreen(viewHolder.error, onShowAbout, viewHolder.onBackButton)
 
 @Composable
 fun ErrorScreen(
     error: ErrorSubViewModel.Error,
+    onShowAbout: () -> Unit,
     onBackButton: (() -> Unit)?,
 ) {
     val text = when (error) {
@@ -95,37 +101,47 @@ fun ErrorScreen(
         }
     }
 
-    ErrorScreen(text, onBackButton)
+    ErrorScreen(text, onShowAbout, onBackButton)
 }
 
 @Composable
 fun ErrorScreen(
     text: String,
+    onShowAbout: () -> Unit,
     onBackButton: (() -> Unit)? = null,
 ) = Surface {
-    if (onBackButton != null) {
-        IconButton(onClick = onBackButton) {
-            Icon(Icons.Filled.ArrowBack, i18n("back"))
+    Box {
+        Column(
+            modifier = Modifier.fillMaxSize().padding(32.dp),
+            horizontalAlignment = CenterHorizontally,
+            verticalArrangement = spacedBy(32.dp)
+        ) {
+            Icon(
+                imageVector = Icons.Filled.Error,
+                contentDescription = i18n("error"),
+                modifier = Modifier.size(128.dp),
+                tint = Red500
+            )
+
+            Text(i18n("sorry"), style = MaterialTheme.typography.h5)
+            Text(
+                text = text,
+                style = MaterialTheme.typography.body1,
+                modifier = Modifier.widthIn(max = STARTUP_FIELDS_WIDTH)
+            )
         }
-    }
 
-    Column(
-        modifier = Modifier.fillMaxSize().padding(32.dp),
-        horizontalAlignment = CenterHorizontally,
-        verticalArrangement = spacedBy(32.dp)
-    ) {
-        Icon(
-            imageVector = Icons.Filled.Error,
-            contentDescription = i18n("error"),
-            modifier = Modifier.size(128.dp),
-            tint = Red500
-        )
+        if (onBackButton != null) {
+            IconButton(onClick = onBackButton) {
+                Icon(Icons.Filled.ArrowBack, i18n("back"))
+            }
+        }
 
-        Text(i18n("sorry"), style = MaterialTheme.typography.h5)
-        Text(
-            text = text,
-            style = MaterialTheme.typography.body1,
-            modifier = Modifier.widthIn(max = STARTUP_FIELDS_WIDTH)
-        )
+        IconButton(
+            onClick = onShowAbout,
+            modifier = Modifier.align(Alignment.BottomStart)
+        ) {
+            Icon(Icons.Filled.Info, i18n("access.about_briar_desktop"))
+        }
     }
 }
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt
index a6eeb71f506f3e2c4f28b6fb3af9f9c2d2f8edea..540cc31fa74e1750ae9ebf20accca96e6bb60439 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt
@@ -47,8 +47,12 @@ import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n
 @OptIn(ExperimentalMaterialApi::class)
 @Composable
 fun LoginScreen(
+    onShowAbout: () -> Unit,
     viewHolder: LoginSubViewModel,
-) = StartupScreenScaffold(i18n("startup.title.login")) {
+) = StartupScreenScaffold(
+    title = i18n("startup.title.login"),
+    onShowAbout = onShowAbout,
+) {
     when (viewHolder.state.value) {
         SIGNED_OUT ->
             FormScaffold(
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt
index 6d40b83b6a230ff9b2617ea0a0a9654c30465579..d223cb9b17996e26bb25c14dc292d13f2a517c9b 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt
@@ -47,9 +47,11 @@ import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n
 
 @Composable
 fun RegistrationScreen(
+    onShowAbout: () -> Unit,
     viewHolder: RegistrationSubViewModel,
 ) = StartupScreenScaffold(
     title = i18n("startup.title.registration"),
+    onShowAbout = onShowAbout,
     showBackButton = viewHolder.showBackButton.value,
     onBackButton = viewHolder::goBack
 ) {
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/login/StartupScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/login/StartupScreen.kt
index bc40de1c498ec8274c4dc630b48c58999e86794b..0485c3e38ce8f54f90088c0bd5309b00fa68ca06 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/login/StartupScreen.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/login/StartupScreen.kt
@@ -19,6 +19,7 @@
 package org.briarproject.briar.desktop.login
 
 import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxSize
@@ -31,7 +32,9 @@ import androidx.compose.material.Surface
 import androidx.compose.material.Text
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.ArrowBack
+import androidx.compose.material.icons.filled.Info
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
 import androidx.compose.ui.Alignment.Companion.CenterVertically
 import androidx.compose.ui.Modifier
@@ -42,12 +45,13 @@ import org.briarproject.briar.desktop.viewmodel.viewModel
 
 @Composable
 fun StartupScreen(
+    onShowAbout: () -> Unit,
     viewModel: StartupViewModel = viewModel(),
 ) {
     when (val holder = viewModel.currentSubViewModel.value) {
-        is LoginSubViewModel -> LoginScreen(holder)
-        is RegistrationSubViewModel -> RegistrationScreen(holder)
-        is ErrorSubViewModel -> ErrorScreen(holder)
+        is LoginSubViewModel -> LoginScreen(onShowAbout, holder)
+        is RegistrationSubViewModel -> RegistrationScreen(onShowAbout, holder)
+        is ErrorSubViewModel -> ErrorScreen(onShowAbout, holder)
     }
 }
 
@@ -56,20 +60,33 @@ fun StartupScreenScaffold(
     title: String,
     showBackButton: Boolean = false,
     onBackButton: () -> Unit = {},
+    onShowAbout: () -> Unit = {},
     content: @Composable () -> Unit
 ) = Surface {
-    if (showBackButton) {
-        IconButton(onClick = onBackButton) {
-            Icon(Icons.Filled.ArrowBack, i18n("back"))
+    Box {
+        Column(
+            modifier = Modifier.padding(16.dp).fillMaxSize(),
+            horizontalAlignment = CenterHorizontally
+        ) {
+            HeaderLine(title)
+            content()
         }
-    }
 
-    Column(
-        modifier = Modifier.padding(16.dp).fillMaxSize(),
-        horizontalAlignment = CenterHorizontally
-    ) {
-        HeaderLine(title)
-        content()
+        if (showBackButton) {
+            IconButton(
+                onClick = onBackButton,
+                modifier = Modifier.align(Alignment.TopStart)
+            ) {
+                Icon(Icons.Filled.ArrowBack, i18n("back"))
+            }
+        }
+
+        IconButton(
+            onClick = onShowAbout,
+            modifier = Modifier.align(Alignment.BottomStart)
+        ) {
+            Icon(Icons.Filled.Info, i18n("access.about_briar_desktop"))
+        }
     }
 }
 
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt
index fb0066b873303541a2abd26cad1008b93f402d3b..2cb889f21b53d0e2c3ea413ef64bf6f51da64355 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt
@@ -126,9 +126,9 @@ constructor(
                     Column(Modifier.fillMaxSize()) {
                         ExpirationBanner { screenState = EXPIRED; stop() }
                         when (screenState) {
-                            STARTUP -> StartupScreen()
+                            STARTUP -> StartupScreen(onShowAbout = { showAbout = true })
                             MAIN -> MainScreen(settingsViewModel, showAbout = { showAbout = true })
-                            EXPIRED -> ErrorScreen(i18n("startup.failed.expired"))
+                            EXPIRED -> ErrorScreen(i18n("startup.failed.expired"), onShowAbout = { showAbout = true })
                         }
                     }
                     if (showAbout) {