diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx
index f5875cb..d2e6a1b 100644
--- a/src/pages/HomePage.tsx
+++ b/src/pages/HomePage.tsx
@@ -1,118 +1,35 @@
+// AUTO-GENERATED shell by per-section-migrate.
+// Section bodies live in the sibling sections/ folder (one file per section).
+// Edit those section files directly. Non-block content (wrappers,
+// non-inlinable sections) is preserved inline; extracted section blocks
+// become component refs.
+
import { StyleProvider } from "@/components/ui/StyleProvider";
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
import PageTransitionSwirl from "@/components/ui/PageTransitionSwirl";
-import HeroBillboardBrandFloatingCards from "@/components/sections/hero/HeroBillboardBrandFloatingCards";
-import AboutCursorTrail from "@/components/sections/about/AboutCursorTrail";
-import FeaturesFilterGrid from "@/components/sections/features/FeaturesFilterGrid";
-import FeaturesGridSplitLarge from "@/components/sections/features/FeaturesGridSplitLarge";
-import ContactBar from "@/components/sections/contact/ContactBar";
-import { Phone, MessageCircle, Mail } from "lucide-react";
+import React from 'react';
+import HeroSection from './HomePage/sections/Hero';
+import AboutSection from './HomePage/sections/About';
+import MenuSection from './HomePage/sections/Menu';
+import FeaturesSection from './HomePage/sections/Features';
+import ContactSection from './HomePage/sections/Contact';
-export default function HomePage() {
+export default function HomePage(): React.JSX.Element {
return (
-
-
-
+
-
-
-
+
-
-
-
+
-
-
-
+
-
-
-
+
diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx
new file mode 100644
index 0000000..5aaef03
--- /dev/null
+++ b/src/pages/HomePage/sections/About.tsx
@@ -0,0 +1,29 @@
+// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
+// file as the canonical source for the "about" section.
+
+import React from 'react';
+import AboutCursorTrail from "@/components/sections/about/AboutCursorTrail";
+
+export default function AboutSection(): React.JSX.Element {
+ return (
+
+
+
+ );
+}
diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx
new file mode 100644
index 0000000..68ec9db
--- /dev/null
+++ b/src/pages/HomePage/sections/Contact.tsx
@@ -0,0 +1,23 @@
+// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
+// file as the canonical source for the "contact" section.
+
+import React from 'react';
+import ContactBar from "@/components/sections/contact/ContactBar";
+import { Phone, MessageCircle, Mail } from "lucide-react";
+
+export default function ContactSection(): React.JSX.Element {
+ return (
+
+
+
+ );
+}
diff --git a/src/pages/HomePage/sections/Features.tsx b/src/pages/HomePage/sections/Features.tsx
new file mode 100644
index 0000000..ad877a3
--- /dev/null
+++ b/src/pages/HomePage/sections/Features.tsx
@@ -0,0 +1,133 @@
+/* eslint-disable */
+// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
+import Button from "@/components/ui/Button";
+import TextAnimation from "@/components/ui/TextAnimation";
+import AvatarGroup from "@/components/ui/AvatarGroup";
+import ImageOrVideo from "@/components/ui/ImageOrVideo";
+import ScrollReveal from "@/components/ui/ScrollReveal";
+
+const topItems = [
+ {
+ title: "Private Events",
+ description: "Book our space for birthdays, meetings, or just a good excuse to get together. Great coffee and good vibes included.",
+ imageSrc: "https://storage.googleapis.com/webild/default/templates/joes-coffee/features/private-events.webp"
+ },
+ {
+ title: "Catering",
+ description: "Let us handle the coffee and pastries for your next event. We'll set up, pour, and make sure nobody runs on empty.",
+ imageSrc: "https://storage.googleapis.com/webild/default/templates/joes-coffee/features/catering.webp"
+ },
+ {
+ title: "Birthday Parties",
+ description: "Celebrate your special day with us. We'll provide the space, the coffee, and the perfect atmosphere for your birthday bash.",
+ imageSrc: "https://images.unsplash.com/photo-1530103862676-de8892bc952f?q=80&w=2070&auto=format&fit=crop"
+ }
+];
+const bottomItem = {
+ title: "Custom Menus",
+ description: "Work with our team to build a tailored menu for your event — from espresso bars to pastry platters, we've got you covered.",
+ imageSrc: "https://storage.googleapis.com/webild/default/templates/joes-coffee/features/custom-menus.webp",
+ primaryButton: {
+ text: "Get in Touch",
+ href: "#contact"
+ }
+};
+
+type FeatureItem = {
+ title: string;
+ description: string;
+} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
+
+type BottomFeatureItem = FeatureItem & {
+ primaryButton: { text: string; href: string };
+ avatarsSrc?: string[];
+ avatarsLabel?: string;
+};
+
+type FeaturesGridSplitLargeProps = {
+ tag: string;
+ title: string;
+ description: string;
+ primaryButton?: { text: string; href: string };
+ secondaryButton?: { text: string; href: string };
+ topItems: [FeatureItem, FeatureItem];
+ bottomItem: BottomFeatureItem;
+ textAnimation: "slide-up" | "fade-blur" | "fade";
+};
+
+const FeaturesInline = () => {
+ return (
+
+
+ );
+}
diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx
new file mode 100644
index 0000000..e94e034
--- /dev/null
+++ b/src/pages/HomePage/sections/Hero.tsx
@@ -0,0 +1,24 @@
+// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
+// file as the canonical source for the "hero" section.
+
+import React from 'react';
+import HeroBillboardBrandFloatingCards from "@/components/sections/hero/HeroBillboardBrandFloatingCards";
+
+export default function HeroSection(): React.JSX.Element {
+ return (
+
+
+
+ );
+}
diff --git a/src/pages/HomePage/sections/Menu.tsx b/src/pages/HomePage/sections/Menu.tsx
new file mode 100644
index 0000000..6bebe23
--- /dev/null
+++ b/src/pages/HomePage/sections/Menu.tsx
@@ -0,0 +1,33 @@
+// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
+// file as the canonical source for the "menu" section.
+
+import React from 'react';
+import FeaturesFilterGrid from "@/components/sections/features/FeaturesFilterGrid";
+
+export default function MenuSection(): React.JSX.Element {
+ return (
+