diff --git a/README.md b/README.md
index c9dce2c1..7f9fa6ca 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,7 @@
+
+
+
+
# GitHub Tracker
Dashboard SPA tracking GitHub issues, PRs, and GHA workflow runs across multiple repos/orgs. Built with SolidJS on Cloudflare Workers.
@@ -7,7 +11,7 @@ Dashboard SPA tracking GitHub issues, PRs, and GHA workflow runs across multiple
- **Issues Tab** — Open issues where you're the creator, assignee, or mentioned. Sortable, filterable, paginated. Dependency Dashboard issues hidden by default (toggleable).
- **Pull Requests Tab** — Open PRs with CI check status indicators (green/yellow/red dots). Draft badges, reviewer names.
- **Actions Tab** — GHA workflow runs grouped by repo and workflow. Accordion collapse, PR run toggle.
-- **Onboarding Wizard** — Two-step org/repo selection with search filtering and bulk select.
+- **Onboarding Wizard** — Single-step repo selection with search filtering and bulk select.
- **PAT Authentication** — Optional Personal Access Token login as alternative to OAuth. Client-side format validation, detailed token creation instructions for classic and fine-grained PATs.
- **Settings Page** — Refresh interval, notification preferences, theme (light/dark/system), density, GitHub Actions limits. Shows current auth method and hides OAuth-specific options for PAT users.
- **Desktop Notifications** — New item alerts with per-type toggles and batching.
diff --git a/index.html b/index.html
index 3451e16b..5f121633 100644
--- a/index.html
+++ b/index.html
@@ -4,6 +4,9 @@
GitHub Tracker
+
+
+
diff --git a/public/assets/favicon.svg b/public/assets/favicon.svg
new file mode 100644
index 00000000..fe00a74d
--- /dev/null
+++ b/public/assets/favicon.svg
@@ -0,0 +1,12 @@
+
diff --git a/public/assets/logo-192.png b/public/assets/logo-192.png
new file mode 100644
index 00000000..942a280a
Binary files /dev/null and b/public/assets/logo-192.png differ
diff --git a/public/assets/logo-512.png b/public/assets/logo-512.png
new file mode 100644
index 00000000..96662e84
Binary files /dev/null and b/public/assets/logo-512.png differ
diff --git a/public/assets/logo.svg b/public/assets/logo.svg
new file mode 100644
index 00000000..0b3e2a4b
--- /dev/null
+++ b/public/assets/logo.svg
@@ -0,0 +1,19 @@
+
diff --git a/public/assets/social-preview.png b/public/assets/social-preview.png
new file mode 100644
index 00000000..e6c1de50
Binary files /dev/null and b/public/assets/social-preview.png differ
diff --git a/public/assets/social-preview.svg b/public/assets/social-preview.svg
new file mode 100644
index 00000000..6decfae2
--- /dev/null
+++ b/public/assets/social-preview.svg
@@ -0,0 +1,31 @@
+
diff --git a/src/app/components/layout/Header.tsx b/src/app/components/layout/Header.tsx
index a3b9567a..734b032a 100644
--- a/src/app/components/layout/Header.tsx
+++ b/src/app/components/layout/Header.tsx
@@ -29,7 +29,12 @@ export default function Header() {
<>
-
+
+
GitHub Tracker
diff --git a/src/app/lib/notifications.ts b/src/app/lib/notifications.ts
index bdbc6e4e..1956ab73 100644
--- a/src/app/lib/notifications.ts
+++ b/src/app/lib/notifications.ts
@@ -100,7 +100,7 @@ function fireNotification(
tag: string,
url?: string
): void {
- const n = new Notification(title, { body, tag, icon: "/favicon.ico" });
+ const n = new Notification(title, { body, tag, icon: "/assets/logo-192.png" });
if (url) {
const safeUrl = url;
n.onclick = () => openUrl(safeUrl);