diff --git a/src/components/CustomRoadmap/RoadmapHeader.tsx b/src/components/CustomRoadmap/RoadmapHeader.tsx
index 5775d89e3..b45fb9ba2 100644
--- a/src/components/CustomRoadmap/RoadmapHeader.tsx
+++ b/src/components/CustomRoadmap/RoadmapHeader.tsx
@@ -196,7 +196,6 @@ export function RoadmapHeader(props: RoadmapHeaderProps) {
diff --git a/src/components/CustomRoadmap/RoadmapHint.tsx b/src/components/CustomRoadmap/RoadmapHint.tsx
index 183c21537..680c05d09 100644
--- a/src/components/CustomRoadmap/RoadmapHint.tsx
+++ b/src/components/CustomRoadmap/RoadmapHint.tsx
@@ -4,42 +4,19 @@ import { ResourceProgressStats } from './ResourceProgressStats';
type RoadmapHintProps = {
roadmapId: string;
roadmapTitle: string;
- hasTNSBanner?: boolean;
- tnsBannerLink?: string;
};
export function RoadmapHint(props: RoadmapHintProps) {
- const {
- roadmapTitle,
- roadmapId,
- hasTNSBanner = false,
- tnsBannerLink = '',
- } = props;
+ const { roadmapTitle, roadmapId } = props;
return (
- {hasTNSBanner && (
-
+ className={cn(
+ 'mb-0 mt-4 rounded-md border-0 sm:-mb-[65px] sm:mt-7 sm:border',
)}
-
+ >
diff --git a/src/components/RoadmapHeader.astro b/src/components/RoadmapHeader.astro
index 2e6c8124c..e8c6666eb 100644
--- a/src/components/RoadmapHeader.astro
+++ b/src/components/RoadmapHeader.astro
@@ -18,7 +18,11 @@ export interface Props {
title: string;
description: string;
note?: string;
- tnsBannerLink?: string;
+ partner?: {
+ description: string;
+ link: string;
+ linkText: string;
+ };
roadmapId: string;
isUpcoming?: boolean;
hasSearch?: boolean;
@@ -26,14 +30,14 @@ export interface Props {
question?: RoadmapFrontmatter['question'];
hasTopics?: boolean;
isForkable?: boolean;
- activeTab?: 'roadmap' | 'projects';
+ activeTab?: 'roadmap' | 'projects' | 'courses';
}
const {
title,
description,
roadmapId,
- tnsBannerLink,
+ partner,
isUpcoming = false,
note,
hasTopics = false,
@@ -53,13 +57,13 @@ const roadmapTitle =
{
- tnsBannerLink && (
+ partner && (
diff --git a/src/components/RoadmapHint.astro b/src/components/RoadmapHint.astro
index 8b38bb097..ac93723c8 100644
--- a/src/components/RoadmapHint.astro
+++ b/src/components/RoadmapHint.astro
@@ -5,13 +5,11 @@ import ResourceProgressStats from './ResourceProgressStats.astro';
export interface Props {
roadmapId: string;
- tnsBannerLink?: string;
titleQuestion?: string;
titleAnswer?: string;
}
-const { roadmapId, tnsBannerLink } = Astro.props;
-const hasTnsBanner = !!tnsBannerLink;
+const { roadmapId } = Astro.props;
---
diff --git a/src/data/roadmaps/backend/backend.md b/src/data/roadmaps/backend/backend.md
index b8b136818..dbf8b2cb0 100644
--- a/src/data/roadmaps/backend/backend.md
+++ b/src/data/roadmaps/backend/backend.md
@@ -9,7 +9,10 @@ title: 'Backend Developer'
description: 'Step by step guide to becoming a modern backend developer in 2025'
hasTopics: true
isForkable: false
-tnsBannerLink: 'https://thenewstack.io?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert'
+partner:
+ description: "Get the latest Backend news from our sister site"
+ link: "https://thenewstack.io/?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert"
+ linkText: "TheNewStack.io"
question:
title: 'What is Backend Development?'
description: |
diff --git a/src/data/roadmaps/devops/devops.md b/src/data/roadmaps/devops/devops.md
index 25aed6d77..55b405fe2 100644
--- a/src/data/roadmaps/devops/devops.md
+++ b/src/data/roadmaps/devops/devops.md
@@ -9,7 +9,10 @@ title: 'DevOps Roadmap'
description: 'Step by step guide for DevOps, SRE or any other Operations Role in 2025'
hasTopics: true
isForkable: false
-tnsBannerLink: 'https://thenewstack.io?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert'
+partner:
+ description: "Get the latest Frontend news from our sister site"
+ link: "https://thenewstack.io/?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert"
+ linkText: "TheNewStack.io"
question:
title: 'What is DevOps?'
description: |
diff --git a/src/data/roadmaps/engineering-manager/engineering-manager.md b/src/data/roadmaps/engineering-manager/engineering-manager.md
index beb43ab0b..af769edd4 100644
--- a/src/data/roadmaps/engineering-manager/engineering-manager.md
+++ b/src/data/roadmaps/engineering-manager/engineering-manager.md
@@ -9,6 +9,10 @@ hasTopics: true
isHidden: false
isUpcoming: false
isNew: true
+partner:
+ description: "Ready-to use free on/offboarding templates for new employees"
+ link: "https://www.silo.team/book-a-demo-silo-team?utm_source=affiliate1&utm_medium=referral&utm_campaign=free_onboarding_checklist"
+ linkText: "silo.team"
seo:
title: Engineering Manager
description: Learn what engineering management is, what engineering managers do and how to become one using our community-driven roadmap.
diff --git a/src/data/roadmaps/frontend/frontend.md b/src/data/roadmaps/frontend/frontend.md
index 35c257d0e..49db89e17 100644
--- a/src/data/roadmaps/frontend/frontend.md
+++ b/src/data/roadmaps/frontend/frontend.md
@@ -8,7 +8,10 @@ briefDescription: 'Step by step guide to becoming a frontend developer in 2025'
title: 'Frontend Developer'
description: 'Step by step guide to becoming a modern frontend developer in 2025'
hasTopics: true
-tnsBannerLink: 'https://thenewstack.io?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert'
+partner:
+ description: "Get the latest Frontend news from our sister site"
+ link: "https://thenewstack.io/?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert"
+ linkText: "TheNewStack.io"
question:
title: 'What is a Frontend Developer?'
description: |
diff --git a/src/data/roadmaps/kubernetes/kubernetes.md b/src/data/roadmaps/kubernetes/kubernetes.md
index 127018b03..429e7a20a 100644
--- a/src/data/roadmaps/kubernetes/kubernetes.md
+++ b/src/data/roadmaps/kubernetes/kubernetes.md
@@ -8,7 +8,10 @@ title: 'Kubernetes Roadmap'
description: 'Step by step guide to learning Kubernetes in 2025'
isNew: false
hasTopics: true
-tnsBannerLink: 'https://thenewstack.io/kubernetes?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert'
+partner:
+ description: "Get the latest Kubernetes news from our sister site"
+ link: "https://thenewstack.io/?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert"
+ linkText: "TheNewStack.io"
dimensions:
width: 968
height: 1785.73
diff --git a/src/data/roadmaps/product-manager/product-manager.md b/src/data/roadmaps/product-manager/product-manager.md
index f580ec887..4d0e40fe2 100644
--- a/src/data/roadmaps/product-manager/product-manager.md
+++ b/src/data/roadmaps/product-manager/product-manager.md
@@ -9,6 +9,10 @@ hasTopics: true
isHidden: false
isUpcoming: false
isNew: false
+partner:
+ description: "Ready-to use free on/offboarding templates for new employees"
+ link: "https://www.silo.team/book-a-demo-silo-team?utm_source=affiliate1&utm_medium=referral&utm_campaign=free_onboarding_checklist"
+ linkText: "silo.team"
seo:
title: Product Manager
description: Learn what product management is, what product managers do and how to become one using our community-driven roadmap.
diff --git a/src/data/roadmaps/software-architect/software-architect.md b/src/data/roadmaps/software-architect/software-architect.md
index 980eb2e0a..eedd99f8f 100644
--- a/src/data/roadmaps/software-architect/software-architect.md
+++ b/src/data/roadmaps/software-architect/software-architect.md
@@ -9,6 +9,10 @@ title: 'Software Architect'
description: 'Step by step guide to becoming a Software Architect in 2025'
isNew: false
hasTopics: true
+partner:
+ description: "Ready-to use free on/offboarding templates for new employees"
+ link: "https://www.silo.team/book-a-demo-silo-team?utm_source=affiliate1&utm_medium=referral&utm_campaign=free_onboarding_checklist"
+ linkText: "silo.team"
dimensions:
width: 968
height: 2525
diff --git a/src/lib/roadmap.ts b/src/lib/roadmap.ts
index 34b1d66ed..5715a68b1 100644
--- a/src/lib/roadmap.ts
+++ b/src/lib/roadmap.ts
@@ -28,7 +28,11 @@ export interface RoadmapFrontmatter {
isHidden: boolean;
isNew: boolean;
isUpcoming: boolean;
- tnsBannerLink?: string;
+ partner?: {
+ description: string;
+ link: string;
+ linkText: string;
+ };
note?: string;
question?: {
title: string;
diff --git a/src/pages/[roadmapId]/courses.astro b/src/pages/[roadmapId]/courses.astro
index f344a624d..d5f9778a9 100644
--- a/src/pages/[roadmapId]/courses.astro
+++ b/src/pages/[roadmapId]/courses.astro
@@ -65,7 +65,7 @@ const seoDescription = `Seeking ${nounTitle.toLowerCase()} courses to enhance yo
title={title}
description={description}
note={roadmapData.note}
- tnsBannerLink={roadmapData.tnsBannerLink}
+ partner={roadmapData.partner}
roadmapId={roadmapId}
hasTopics={roadmapData.hasTopics}
isUpcoming={roadmapData.isUpcoming}
diff --git a/src/pages/[roadmapId]/index.astro b/src/pages/[roadmapId]/index.astro
index ddc79a19d..346f9fca7 100644
--- a/src/pages/[roadmapId]/index.astro
+++ b/src/pages/[roadmapId]/index.astro
@@ -107,7 +107,7 @@ const projects = await getProjectsByRoadmapId(roadmapId);
title={roadmapData.title}
description={roadmapData.description}
note={roadmapData.note}
- tnsBannerLink={roadmapData.tnsBannerLink}
+ partner={roadmapData.partner}
roadmapId={roadmapId}
hasTopics={roadmapData.hasTopics}
isUpcoming={roadmapData.isUpcoming}
diff --git a/src/pages/[roadmapId]/projects.astro b/src/pages/[roadmapId]/projects.astro
index 6f606499a..ca9ec9a68 100644
--- a/src/pages/[roadmapId]/projects.astro
+++ b/src/pages/[roadmapId]/projects.astro
@@ -75,7 +75,7 @@ const { response: userCounts } =
title={title}
description={description}
note={roadmapData.note}
- tnsBannerLink={roadmapData.tnsBannerLink}
+ partner={roadmapData.partner}
roadmapId={roadmapId}
hasTopics={roadmapData.hasTopics}
isUpcoming={roadmapData.isUpcoming}