diff --git a/public/favicon.ico b/public/favicon.ico
index 57614f9..2105d98 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/src/index.html b/src/index.html
index 5b09a1b..1672871 100644
--- a/src/index.html
+++ b/src/index.html
@@ -20,7 +20,7 @@
-
+
diff --git a/tools/icons/favicon.py b/tools/icons/favicon.py
new file mode 100644
index 0000000..ba0ac9c
--- /dev/null
+++ b/tools/icons/favicon.py
@@ -0,0 +1,12 @@
+"""Builds public/favicon.ico (16, 32 and 48 px) from public/assets/app_icon_512.png.
+
+Run from the repo root: python tools/icons/favicon.py (needs Pillow: pip install Pillow)
+"""
+from pathlib import Path
+
+from PIL import Image
+
+root = Path(__file__).resolve().parents[2]
+src = Image.open(root / "public/assets/app_icon_512.png").convert("RGBA")
+src.save(root / "public/favicon.ico", sizes=[(16, 16), (32, 32), (48, 48)])
+print("wrote public/favicon.ico")