diff --git a/src/components/Hero/index.ts b/src/components/Hero/index.ts
index 63d0131a664..c3e14baf76d 100644
--- a/src/components/Hero/index.ts
+++ b/src/components/Hero/index.ts
@@ -1,4 +1,4 @@
export { default as ContentHero, type ContentHeroProps } from "./ContentHero"
-export { default as HomeHero, type HomeHeroProps } from "./HomeHero"
+export { default as HomeHero } from "./HomeHero"
export { default as HubHero } from "./HubHero"
export { default as MdxHero, type MdxHeroProps } from "./MdxHero"
diff --git a/src/components/Homepage/HomepageSectionImage.tsx b/src/components/Homepage/HomepageSectionImage.tsx
new file mode 100644
index 00000000000..0eb616b4c10
--- /dev/null
+++ b/src/components/Homepage/HomepageSectionImage.tsx
@@ -0,0 +1,97 @@
+import type { StaticImageData } from "next/image"
+import { getImageProps } from "next/image"
+
+import { breakpointAsNumber } from "@/lib/utils/screen"
+
+// Import all landscape images (all PNG now)
+import developersHubHero from "@/public/images/heroes/developers-hub-hero.png"
+// Import all portrait images (all PNG)
+import developersHubHeroPortrait from "@/public/images/heroes/developers-hub-hero-portrait.png"
+import layerTwoHubHero from "@/public/images/heroes/layer-2-hub-hero.png"
+import layerTwoHubHeroPortrait from "@/public/images/heroes/layer-2-hub-hero-portrait.png"
+import learnHubHero from "@/public/images/heroes/learn-hub-hero.png"
+import learnHubHeroPortrait from "@/public/images/heroes/learn-hub-hero-portrait.png"
+import quizzesHubHero from "@/public/images/heroes/quizzes-hub-hero.png"
+import quizzesHubHeroPortrait from "@/public/images/heroes/quizzes-hub-hero-portrait.png"
+
+const imageMap: Record<
+ string,
+ {
+ mobile: StaticImageData
+ desktop: StaticImageData
+ }
+> = {
+ activity: {
+ mobile: layerTwoHubHero,
+ desktop: layerTwoHubHeroPortrait,
+ },
+ learn: {
+ mobile: learnHubHero,
+ desktop: learnHubHeroPortrait,
+ },
+ builders: {
+ mobile: developersHubHero,
+ desktop: developersHubHeroPortrait,
+ },
+ community: {
+ mobile: quizzesHubHero,
+ desktop: quizzesHubHeroPortrait,
+ },
+}
+
+type HomepageSectionImageProps = {
+ sectionId: string // e.g. "activity", "learn", "builders", "community"
+ alt: string
+ className?: string
+}
+
+export default function HomepageSectionImage({
+ sectionId,
+ alt,
+ className,
+}: HomepageSectionImageProps) {
+ const images = imageMap[sectionId]
+
+ if (!images) {
+ throw new Error(
+ `Image not found for section: ${sectionId}. Available sections: ${Object.keys(imageMap).join(", ")}`
+ )
+ }
+
+ const common = {
+ alt,
+ // Be very specific: Desktop max 512px, Mobile 100vw
+ sizes: `(max-width: ${breakpointAsNumber.md}px) 100vw, 512px`,
+ priority: false,
+ }
+
+ const {
+ props: { srcSet: desktop },
+ } = getImageProps({
+ ...common,
+ ...images.desktop,
+ quality: 25,
+ })
+
+ const {
+ props: { srcSet: mobile, ...rest },
+ } = getImageProps({
+ ...common,
+ ...images.mobile,
+ quality: 40,
+ })
+
+ return (
+
+
+
+
+
+ )
+}
diff --git a/src/data/roadmap/releases.tsx b/src/data/roadmap/releases.tsx
index 70d57f6ffc5..ba7c5b4b64d 100644
--- a/src/data/roadmap/releases.tsx
+++ b/src/data/roadmap/releases.tsx
@@ -1,8 +1,8 @@
import { StaticImageData } from "next/image"
-import DevelopersHubHeroImage from "@/public/images/heroes/developers-hub-hero.jpg"
+import DevelopersHubHeroImage from "@/public/images/heroes/developers-hub-hero.png"
import GuidesHubHeroImage from "@/public/images/heroes/guides-hub-hero.jpg"
-import Layer2HubHeroImage from "@/public/images/heroes/layer-2-hub-hero.jpg"
+import Layer2HubHeroImage from "@/public/images/heroes/layer-2-hub-hero.png"
import QuizzesHubHeroImage from "@/public/images/heroes/quizzes-hub-hero.png"
import FusakaImage from "@/public/images/roadmap/roadmap-fusaka.png"
import PectraImage from "@/public/images/roadmap/roadmap-pectra.png"
diff --git a/src/layouts/BaseLayout.tsx b/src/layouts/BaseLayout.tsx
index cd984372b02..e35840211fd 100644
--- a/src/layouts/BaseLayout.tsx
+++ b/src/layouts/BaseLayout.tsx
@@ -4,7 +4,7 @@ import dynamic from "next/dynamic"
import type { Root } from "@/lib/types"
import Footer from "@/components/Footer"
-import Nav from "@/components/Nav"
+// import Nav from "@/components/Nav"
import { SkipLink } from "@/components/SkipLink"
// import TranslationBanner from "@/components/TranslationBanner"
@@ -52,8 +52,6 @@ export const BaseLayout = async ({
*/}
-
-
{/* TODO: FIX TRANSLATION BANNER LOGIC FOR https://github.com/ethereum/ethereum-org-website/issues/11305 */}
{/*