diff --git a/web/src/lib/components/MobileAppDownload.svelte b/web/src/lib/components/MobileAppDownload.svelte
new file mode 100644
index 00000000..6c4e49d8
--- /dev/null
+++ b/web/src/lib/components/MobileAppDownload.svelte
@@ -0,0 +1,54 @@
+
+
+{#if info}
+
+
+
+ Get the Android app
+
+ {info.version}{info.sizeBytes > 0 ? ` · ${formatSize(info.sizeBytes)}` : ''}
+
+
+
+{/if}
diff --git a/web/src/routes/login/+page.svelte b/web/src/routes/login/+page.svelte
index 82a2caf1..3293e968 100644
--- a/web/src/routes/login/+page.svelte
+++ b/web/src/routes/login/+page.svelte
@@ -4,6 +4,7 @@
import { goto } from '$app/navigation';
import { login } from '$lib/auth/store.svelte';
import type { ApiError } from '$lib/api/client';
+ import MobileAppDownload from '$lib/components/MobileAppDownload.svelte';
let username = $state('');
let password = $state('');
@@ -88,5 +89,9 @@
Don't have an account?
Register
+
+
+
+
diff --git a/web/src/routes/settings/+page.svelte b/web/src/routes/settings/+page.svelte
index ffacb011..60ec8465 100644
--- a/web/src/routes/settings/+page.svelte
+++ b/web/src/routes/settings/+page.svelte
@@ -17,6 +17,7 @@
} from '$lib/api/me';
import { errCode } from '$lib/api/errors';
import { pushToast } from '$lib/stores/toast.svelte';
+ import MobileAppDownload from '$lib/components/MobileAppDownload.svelte';
const queryClient = useQueryClient();
@@ -323,4 +324,12 @@
+
+
+ Mobile app
+
+ Install the Android app paired to this server. Sign in with the same account.
+
+
+