From 3bc45a1b0b59f551118ee4b4d431caf94306abbb Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Wed, 28 Oct 2026 13:39:15 +0100 Subject: [PATCH 1/2] web: hide the Jobs header link unless PUBLIC_SHOW_JOBS_LINK is set We've stopped hiring, so the Jobs link in the desktop header and mobile menu now only shows when PUBLIC_SHOW_JOBS_LINK=true. It defaults to hidden, so turning hiring back on is an env change, not a code change. Co-Authored-By: Claude Opus 5.5 --- .../src/lib/components/marketing/Header.svelte | 14 ++++++++++---- .../routes/(home)/components/MobileMenu.svelte | 17 +++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/apps/web/src/lib/components/marketing/Header.svelte b/apps/web/src/lib/components/marketing/Header.svelte index 49ea35646ba..1c310dbd2d3 100644 --- a/apps/web/src/lib/components/marketing/Header.svelte +++ b/apps/web/src/lib/components/marketing/Header.svelte @@ -4,12 +4,16 @@ import HeaderAuthSection from "$lib/components/HeaderAuthSection.svelte"; import * as jsonLinks from "$lib/data/links.json"; import { Icon, type IconName } from "@gitbutler/ui-svelte"; + import { env } from "$env/dynamic/public"; interface Props { disableLogoLink?: boolean; } const { disableLogoLink }: Props = $props(); + + // Hidden unless explicitly turned on, so the link only shows while we're hiring. + const showJobsLink = env.PUBLIC_SHOW_JOBS_LINK === "true"; @@ -51,10 +55,12 @@ href: jsonLinks.resources.downloads.url, label: jsonLinks.resources.downloads.label, })} - {@render link({ - href: jsonLinks.resources.jobs.url, - label: jsonLinks.resources.jobs.label, - })} + {#if showJobsLink} + {@render link({ + href: jsonLinks.resources.jobs.url, + label: jsonLinks.resources.jobs.label, + })} + {/if} {@render link({ href: jsonLinks.resources.blog.url, label: jsonLinks.resources.blog.label, diff --git a/apps/web/src/routes/(home)/components/MobileMenu.svelte b/apps/web/src/routes/(home)/components/MobileMenu.svelte index 1e4b583d225..12e40427efc 100644 --- a/apps/web/src/routes/(home)/components/MobileMenu.svelte +++ b/apps/web/src/routes/(home)/components/MobileMenu.svelte @@ -2,6 +2,9 @@ import HeaderAuthSection from "$lib/components/HeaderAuthSection.svelte"; import linkJson from "$lib/data/links.json"; import { scale } from "svelte/transition"; + import { env } from "$env/dynamic/public"; + + const showJobsLink = env.PUBLIC_SHOW_JOBS_LINK === "true"; let isMenuOpen = $state(false); @@ -65,12 +68,14 @@ rel="noopener noreferrer" class="mobile-link">Blog - {linkJson.resources.jobs.label} + {#if showJobsLink} + {linkJson.resources.jobs.label} + {/if} From d56664f1a13c199d7f7688b8d388d159110dca4a Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Wed, 28 Oct 2026 14:16:48 +0100 Subject: [PATCH 2/2] web: hide the Jobs footer link behind PUBLIC_SHOW_JOBS_LINK too The footer lists every resource link, so it showed Jobs even with the header link hidden. Co-Authored-By: Claude Opus 5.5 --- apps/web/src/lib/components/marketing/Footer.svelte | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/web/src/lib/components/marketing/Footer.svelte b/apps/web/src/lib/components/marketing/Footer.svelte index 6c9be18ebfa..24f38a7c2fa 100644 --- a/apps/web/src/lib/components/marketing/Footer.svelte +++ b/apps/web/src/lib/components/marketing/Footer.svelte @@ -2,12 +2,18 @@ import ThemeSwitcher from "$lib/components/marketing/ThemeSwitcher.svelte"; import * as jsonLinks from "$lib/data/links.json"; import osIcons from "$lib/data/os-icons.json"; + import { env } from "$env/dynamic/public"; interface Props { showDownloadLinks?: boolean; } const { showDownloadLinks = true }: Props = $props(); + + const showJobsLink = env.PUBLIC_SHOW_JOBS_LINK === "true"; + const resources = Object.values(jsonLinks.resources).filter( + (resource) => resource.id !== "jobs" || showJobsLink, + );