diff --git a/.vscode/settings.json b/.vscode/settings.json
index 031c6a94..095cea1b 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -14,5 +14,6 @@
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
- }
+ },
+ "cSpell.words": ["Gitify"]
}
diff --git a/src/components/Footer.astro b/src/components/Footer.astro
index 5fa7a39a..30463307 100644
--- a/src/components/Footer.astro
+++ b/src/components/Footer.astro
@@ -25,8 +25,9 @@ const isHomepage = currentPathname === '/';
diff --git a/src/constants.ts b/src/constants.ts
index 771546ba..9c3b14d4 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -12,7 +12,7 @@ export const siteMetadata = {
site: 'https://github.com/orgs/gitify-app/people',
},
keywords:
- 'gitify,desktop,application,github,notifications,unread,menu bar,electron,open source,mac,windows,linux',
+ 'gitify,desktop,application,github,gitea,codeberg,forgejo,bitbucket,notifications,unread,menu bar,electron,open source,mac,windows,linux',
google: {
gtags: ['G-QXML81DEDV', 'G-H4MTPZP3HW'],
siteVerification: 'jJNnPZ2wu7F1tlSab57og1N3RNrMqhzTCzRrbztY8WU',
diff --git a/src/faqs/getting-started/authentication-methods.md b/src/faqs/getting-started/authentication-methods.md
index 281ba7ee..6aca0f6d 100644
--- a/src/faqs/getting-started/authentication-methods.md
+++ b/src/faqs/getting-started/authentication-methods.md
@@ -3,10 +3,20 @@ title: "What authentication methods does Gitify support?"
category: "Getting Started"
order: 1
---
-Gitify offers three ways to authenticate with GitHub:
+Authentication methods vary by forge:
+
+### GitHub Cloud & GitHub Enterprise Server
- **Login with GitHub** — The easiest option. Uses the OAuth Device Flow: Gitify generates a code, opens `github.com/login/device` in your browser, and completes authentication automatically. Supports GitHub Cloud only.
- **Personal Access Token (PAT)** — Authenticate with a token generated in your GitHub account settings. Supports both GitHub Cloud and GitHub Enterprise Server.
- **OAuth App** — Authenticate using a Client ID and Client Secret from a GitHub OAuth App you create. Supports both GitHub Cloud and GitHub Enterprise Server.
If you are unsure which method to use, **Login with GitHub** is recommended for most users on GitHub Cloud. For GitHub Enterprise Server, use a PAT or OAuth App.
+
+### Gitea, Forgejo & Codeberg
+
+- **Personal Access Token (PAT)** — Generate a token in your Gitea/Forgejo/Codeberg account under _Settings → Applications_, then enter it in Gitify along with your instance hostname (e.g. `codeberg.org` or your self-hosted URL).
+
+### Bitbucket Cloud
+
+- **Personal Access Token (PAT)** — Generate an app password in your Bitbucket account under _Personal settings → App passwords_ and use it as your token in Gitify.
diff --git a/src/faqs/getting-started/github-enterprise-server.md b/src/faqs/getting-started/github-enterprise-server.md
index 50e04f18..bada8551 100644
--- a/src/faqs/getting-started/github-enterprise-server.md
+++ b/src/faqs/getting-started/github-enterprise-server.md
@@ -3,10 +3,14 @@ title: "Does Gitify support GitHub Enterprise Server?"
category: "Getting Started"
order: 3
---
-Yes. Gitify supports both GitHub Cloud and **GitHub Enterprise Server (GHES)**.
+Yes. Gitify supports **GitHub Enterprise Server (GHES)** and **GitHub Enterprise Cloud with Data Residency** alongside GitHub Cloud.
-When signing in via **Personal Access Token** or **OAuth App**, you will see a _Hostname_ field that defaults to `github.com`. Replace this with your GHES hostname (e.g. `github.mycompany.com`) to connect to your Enterprise instance.
+> **Note:** This entry covers GitHub-specific setup. If you are using Gitea, Forgejo, Codeberg, or Bitbucket Cloud, see [Which Git forges does Gitify support?](/faq/#supported-forges) and [What authentication methods does Gitify support?](/faq/#authentication-methods).
-> **Note:** The **Login with GitHub** (Device Flow) method only supports GitHub Cloud and does not expose a hostname field.
+When signing in via **Personal Access Token** or **OAuth App**, you will see a _Hostname_ field that defaults to `github.com`. Replace this with your instance hostname to connect:
+- **GitHub Enterprise Server**: your self-hosted hostname, e.g. `github.mycompany.com`
+- **GitHub Enterprise Cloud (Data Residency)**: your tenant hostname, e.g. `myorg.ghe.com`
-Multiple accounts across different hostnames (e.g. `github.com` and your GHES instance) can be signed in simultaneously — see _"How do I add multiple GitHub accounts?"_ for details.
+> **Note:** The **Login with GitHub** (Device Flow) method only supports GitHub Cloud (`github.com`) and does not expose a hostname field.
+
+Multiple accounts across different hostnames (e.g. `github.com` and your GHES instance) can be signed in simultaneously — see [How do I add multiple accounts?](/faq/#multiple-accounts) for details.
diff --git a/src/faqs/getting-started/github-scopes.md b/src/faqs/getting-started/github-scopes.md
index ace71991..386384d3 100644
--- a/src/faqs/getting-started/github-scopes.md
+++ b/src/faqs/getting-started/github-scopes.md
@@ -1,9 +1,11 @@
---
title: "What GitHub scopes does Gitify require?"
category: "Getting Started"
-order: 3
+order: 6
---
+> **Note:** This entry covers **GitHub Cloud and GitHub Enterprise Server** only. Gitea, Forgejo, Codeberg, and Bitbucket Cloud use standard read access tokens — see [What authentication methods does Gitify support?](/faq/#authentication-methods).
+
The required GitHub scopes depend on your chosen authentication method.
**Login with GitHub** (Device Flow) and **OAuth App**:
@@ -18,3 +20,5 @@ When generating a PAT, the following scopes are required:
- `repo` — to enrich notification details for public and private repositories
> **Note:** If you only need access to public repositories, you can use `public_repo` instead of `repo`.
+
+For help generating a PAT, see [GitHub → Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens). If notifications still aren't appearing after setting up a PAT, see [Why aren't my notifications showing?](/faq/#notifications-not-showing).
diff --git a/src/faqs/getting-started/github-sso-pat-authorization.md b/src/faqs/getting-started/github-sso-pat-authorization.md
new file mode 100644
index 00000000..804acfd8
--- /dev/null
+++ b/src/faqs/getting-started/github-sso-pat-authorization.md
@@ -0,0 +1,18 @@
+---
+title: "How do I authorize my PAT for a GitHub SSO organization?"
+category: "Getting Started"
+order: 7
+---
+If your GitHub organization enforces **SAML single sign-on (SSO)**, you must explicitly authorize your Personal Access Token to access that organization's data — including notifications. Without this step, Gitify will not show notifications from repositories in that organization even if your PAT has the correct scopes.
+
+To authorize a PAT for SSO:
+- Open [GitHub → Settings → Personal access tokens](https://github.com/settings/tokens)
+- Find the token you use with Gitify
+- Click **Configure SSO** next to the token
+- Click **Authorize** next to each SSO-enabled organization you want to grant access
+- Complete the SSO authentication flow for each organization
+
+Once authorized, Gitify will be able to fetch notifications from repositories in those organizations. Re-authorization may be required if your SSO session expires or your organization's SSO configuration changes.
+
+For more details, see the [GitHub documentation on authorizing a PAT for use with SSO](https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-single-sign-on/authorizing-a-personal-access-token-for-use-with-single-sign-on).
+
diff --git a/src/faqs/getting-started/multiple-accounts.md b/src/faqs/getting-started/multiple-accounts.md
index a954d280..77212d07 100644
--- a/src/faqs/getting-started/multiple-accounts.md
+++ b/src/faqs/getting-started/multiple-accounts.md
@@ -1,15 +1,17 @@
---
-title: "How do I add multiple GitHub accounts?"
+title: "How do I add multiple accounts?"
category: "Getting Started"
order: 4
---
-Gitify supports signing in to multiple accounts simultaneously — for example, a personal GitHub Cloud account alongside a GitHub Enterprise Server account.
+Gitify supports signing in to multiple accounts simultaneously — for example, a personal GitHub Cloud account alongside a Gitea or Bitbucket Cloud account.
To add an account:
- Open the **Accounts** screen from the Gitify sidebar
-- Click **Add new account** and choose your preferred authentication method
+- Click **Add new account** and choose your forge and preferred authentication method
- Complete the sign-in flow for the additional account
All signed-in accounts will appear on the Accounts screen. You can designate a **primary account** by clicking the star icon next to an account — the primary account is used as the default where applicable.
Each account can be individually refreshed or signed out at any time.
+
+For a full list of supported forges, see [Which Git forges does Gitify support?](/faq/#supported-forges).
diff --git a/src/faqs/getting-started/oauth-app-setup.md b/src/faqs/getting-started/oauth-app-setup.md
index 9d212c1d..9c36c597 100644
--- a/src/faqs/getting-started/oauth-app-setup.md
+++ b/src/faqs/getting-started/oauth-app-setup.md
@@ -3,7 +3,9 @@ title: "How do I configure OAuth App authentication?"
category: "Getting Started"
order: 2
---
-To authenticate via an **OAuth App**:
+> **Note:** OAuth App authentication is available for **GitHub Cloud and GitHub Enterprise Server only**. For Gitea, Forgejo, Codeberg, and Bitbucket Cloud, use a [Personal Access Token](/faq/#authentication-methods).
+
+To authenticate via an **OAuth App** with GitHub:
- Open [GitHub → Settings → Developer settings → OAuth Apps](https://github.com/settings/developers)
- Click _New OAuth App_
- Set _Authorization callback URL_ to `gitify://oauth`
diff --git a/src/faqs/getting-started/supported-forges.md b/src/faqs/getting-started/supported-forges.md
new file mode 100644
index 00000000..32a7dae5
--- /dev/null
+++ b/src/faqs/getting-started/supported-forges.md
@@ -0,0 +1,18 @@
+---
+title: "Which Git forges does Gitify support?"
+category: "Getting Started"
+order: 0
+---
+Gitify supports notifications from the following Git forges:
+
+- **GitHub Cloud** — `github.com`
+- **GitHub Enterprise Server (GHES)** — self-hosted GitHub instances
+- **GitHub Enterprise Cloud (Data Residency)** — `[tenant].ghe.com`
+- **Gitea** — including self-hosted instances
+- **Forgejo** — compatible with the Gitea authentication flow
+- **Codeberg** — powered by Forgejo, fully supported
+- **Bitbucket Cloud** — `bitbucket.org`
+
+Multiple accounts across different forges can be signed in simultaneously. See [How do I add multiple accounts?](/faq/#multiple-accounts) for details.
+
+For authentication setup, see [What authentication methods does Gitify support?](/faq/#authentication-methods).
diff --git a/src/faqs/troubleshooting/chrome-sandbox-linux.md b/src/faqs/troubleshooting/chrome-sandbox-linux.md
index a4f14830..abe63dc1 100644
--- a/src/faqs/troubleshooting/chrome-sandbox-linux.md
+++ b/src/faqs/troubleshooting/chrome-sandbox-linux.md
@@ -1,5 +1,5 @@
---
-title: "How do I fix 'Chrome Sandbox' permissions on Linux?"
+title: "How do I fix Chrome Sandbox permissions on Linux?"
category: "Troubleshooting"
order: 3
---
diff --git a/src/faqs/troubleshooting/notifications-not-showing.md b/src/faqs/troubleshooting/notifications-not-showing.md
index d54330d3..75032d16 100644
--- a/src/faqs/troubleshooting/notifications-not-showing.md
+++ b/src/faqs/troubleshooting/notifications-not-showing.md
@@ -3,13 +3,18 @@ title: "Why aren't my notifications showing?"
category: "Troubleshooting"
order: 1
---
-When authenticating via **Personal Access Token (PAT)**:
+
+### GitHub Cloud & GitHub Enterprise Server
+
+**Personal Access Token (PAT):**
- Open [GitHub → Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens)
- Confirm that your PAT has the following recommended permissions: `notifications`, `read:user` and `repo`
-> **Note:** If you only want Gitify to access public repositories, you can use `notifications`, `read:user` and `public_repo` instead.
+> **Note:** If you only want Gitify to access public repositories, you can use `notifications`, `read:user` and `public_repo` instead. See [What GitHub scopes does Gitify require?](/faq/#github-scopes) for full details.
-When authenticating via **Gitify GitHub App**:
+> **Note:** If your organization enforces SAML SSO, your PAT must also be explicitly authorized for that organization. See [How do I authorize my PAT for a GitHub SSO organization?](/faq/#github-sso-pat-authorization).
+
+**Login with GitHub (Device Flow):**
- Some organizations require GitHub Apps to request access prior to allowing access to organization data (including notifications)
- To check if Gitify is approved by your organization:
- Open [GitHub → Settings → Applications → Authorized GitHub Apps](https://github.com/settings/applications)
@@ -22,4 +27,15 @@ When authenticating via **Gitify GitHub App**:
| **Request** button | Access not yet granted — click to ask your org admins to approve |
| _Disallowed by org owner_ | The organization has blocked third-party GitHub App access entirely — contact your org admin |
-> **Note:** If an organization shows **Request** or **Disallowed by org owner**, you will not receive notifications from that organization until access is approved.
\ No newline at end of file
+> **Note:** If an organization shows **Request** or **Disallowed by org owner**, you will not receive notifications from that organization until access is approved.
+
+### Gitea, Forgejo & Codeberg
+
+- Verify your PAT is valid and has not expired — regenerate it in your account under _Settings → Applications_ if needed
+- Confirm the hostname saved in your Gitify account settings exactly matches your instance URL (e.g. `codeberg.org` or your self-hosted domain)
+- Ensure your PAT has sufficient read permissions for notifications and repositories on your instance
+
+### Bitbucket Cloud
+
+- Verify your app password is valid and has not been revoked — regenerate it in _Personal settings → App passwords_ if needed
+- Ensure your app password grants **Read** access to: Account, Repositories, and Pull requests
\ No newline at end of file
diff --git a/src/faqs/using-gitify/unsubscribe-from-thread.md b/src/faqs/using-gitify/unsubscribe-from-thread.md
index 26ba2947..42b90faf 100644
--- a/src/faqs/using-gitify/unsubscribe-from-thread.md
+++ b/src/faqs/using-gitify/unsubscribe-from-thread.md
@@ -1,8 +1,8 @@
---
-title: "What does 'Unsubscribe from Thread' mean?"
+title: "What does the Unsubscribe from Thread option do?"
category: "Using Gitify"
order: 2
---
When you **Unsubscribe from Thread**, you will not receive future notifications for the thread until you either comment on the thread or get a **@mention**.
-> **Note:** If you are watching a repository, you receive notifications for all threads by default.
\ No newline at end of file
+> **Note:** Depending on your notification subscription settings for the repository, you may continue to receive some notifications even after unsubscribing from a specific thread.
\ No newline at end of file
diff --git a/src/pages/index.astro b/src/pages/index.astro
index f860129b..6a2f5a53 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -13,7 +13,7 @@ import SectionRow from '~/layouts/SectionRow.astro';