5 Commits

Author SHA1 Message Date
d18f7de06f Merge version_5_1781822648132 into main
Merge version_5_1781822648132 into main
2026-06-18 22:45:17 +00:00
kudinDmitriyUp
c751f81bff Bob AI: Update agency name to Digital Grace Marketing in layout 2026-06-18 22:44:37 +00:00
68ee274d37 Merge version_4_1781822591382 into main
Merge version_4_1781822591382 into main
2026-06-18 22:43:14 +00:00
05839b27f1 Merge version_3_1781822470501 into main
Merge version_3_1781822470501 into main
2026-06-18 22:41:14 +00:00
655a288c4c Merge version_2_1781822464026 into main
Merge version_2_1781822464026 into main
2026-06-18 22:41:07 +00:00
10 changed files with 347 additions and 246 deletions

View File

@@ -42,7 +42,7 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarDropdown
logo="Agency"
logo="Digital Grace Marketing"
ctaButton={{
text: "Get Started",
href: "#contact",
@@ -54,7 +54,7 @@ export default function Layout() {
</main>
<SectionErrorBoundary name="footer">
<FooterBrand
brand="Agency"
brand="Digital Grace Marketing"
columns={[
{
items: [

View File

@@ -1,256 +1,36 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import { Target, TrendingUp, Users } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import MetricsSection from './HomePage/sections/Metrics';
import PricingSection from './HomePage/sections/Pricing';
import TestimonialsSection from './HomePage/sections/Testimonials';
import ProofSection from './HomePage/sections/Proof';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
title="Strategic marketing that drives measurable growth"
description="We partner with ambitious brands to craft campaigns that connect, convert, and scale. Let's build something remarkable together."
primaryButton={{
text: "Explore Our Work",
href: "#services",
}}
secondaryButton={{
text: "Contact Us",
href: "#contact",
}}
imageSrc="http://img.b2bpic.net/free-photo/keyboard-glasses-marble-surface_140725-23257.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Our Story"
descriptions={[
"We believe in marketing that doesn't just look good, but performs. Founded on the principle of transparency and ROI, we bridge the gap between creative vision and business impact.",
"Our team of strategists and creators are dedicated to scaling brands that matter. We don't just execute; we innovate.",
]}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Expertise"
title="Our Core Services"
description="Comprehensive marketing solutions tailored to your growth goals."
items={[
{
title: "Brand Strategy",
description: "Crafting identity and positioning.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/colorful-triangle-paper-pack_23-2148547766.jpg",
},
{
title: "Performance Marketing",
description: "Driving measurable conversions.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-man-working-computer_53876-31625.jpg",
},
{
title: "Content Creation",
description: "Engaging storytelling and production.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/open-laptop-with-diagram-glasses-mobile-office-supplies_1163-2754.jpg",
},
{
title: "SEO & Growth",
description: "Optimizing for visibility.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/innovation-development-rocket-graphic-concept_53876-120019.jpg",
},
{
title: "Email Campaigns",
description: "Automated nurture streams.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/people-working-together-animation-studio_23-2149207973.jpg",
},
{
title: "Social Strategy",
description: "Building community engagement.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/business-work-area_1388-82.jpg",
},
{
title: "Analytics & Reporting",
description: "Deep-dive performance insights.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-multicolored-growth-cones_23-2148780633.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Impact"
title="Proven Results"
description="Numbers that define our success and your growth."
metrics={[
{
icon: TrendingUp,
title: "Growth Delivered",
value: "$50M+",
},
{
icon: Users,
title: "Clients Scaled",
value: "120+",
},
{
icon: Target,
title: "Conversion Lift",
value: "240%",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingSplitCards
tag="Partnership"
title="Transparent Packages"
description="Tailored solutions for your business size and needs."
plans={[
{
tag: "Launch",
price: "$5,000",
period: "/mo",
description: "Essential support for early-stage teams.",
primaryButton: {
text: "Choose Plan",
href: "#contact",
},
featuresTitle: "Included features:",
features: [
"Strategy Session",
"Basic Analytics",
"Brand Audit",
"Monthly Reporting",
],
},
{
tag: "Scale",
price: "$12,000",
period: "/mo",
description: "Advanced strategy for scaling companies.",
primaryButton: {
text: "Choose Plan",
href: "#contact",
},
featuresTitle: "Everything in Launch plus:",
features: [
"Performance Ads",
"Content Production",
"Advanced SEO",
"Dedicated PM",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Clients"
title="Client Success"
description="Hear from the brands we've helped grow."
testimonials={[
{
name: "Sarah Johnson",
role: "CEO",
quote: "They transformed our marketing strategy completely.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smile-woman-talking-phone-looking-camera_23-2148317284.jpg",
},
{
name: "Michael Chen",
role: "CTO",
quote: "Reliable, strategic, and always delivering ROI.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/positive-middle-aged-business-leader-window_1262-5388.jpg",
},
{
name: "Emily Rodriguez",
role: "Marketing Director",
quote: "Best agency partner we've had in 5 years.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/confident-african-american-businessman-black-classic-jacket-isolated-dark-background_613910-17869.jpg",
},
{
name: "David Kim",
role: "Founder",
quote: "Data-driven results that exceeded our targets.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-woman-posing-wrapping-up-grey-cloth_176420-16804.jpg",
},
{
name: "Jane Smith",
role: "COO",
quote: "Seamless execution and visionary strategy.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-business-woman-with-executive-job-working-with-management-marketing-statistics-computer-office-worker-analyzing-research-charts-data-reports_482257-41126.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="proof" data-section="proof">
<SectionErrorBoundary name="proof">
<SocialProofMarquee
tag="Partners"
title="Trusted By Industry Leaders"
description="Working with the world's most ambitious brands."
names={[
"InnovateLab",
"GrowthCo",
"TechCorp",
"StartupXYZ",
"BrandNext",
"ScaleFast",
"FutureBound",
]}
/>
</SectionErrorBoundary>
</div>
<ProofSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Contact"
text="Ready to scale? Let's discuss your marketing strategy."
primaryButton={{
text: "Contact Us",
href: "#contact",
}}
secondaryButton={{
text: "Our Portfolio",
href: "#services",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// 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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Our Story"
descriptions={[
"We believe in marketing that doesn't just look good, but performs. Founded on the principle of transparency and ROI, we bridge the gap between creative vision and business impact.",
"Our team of strategists and creators are dedicated to scaling brands that matter. We don't just execute; we innovate.",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// 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 ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Contact"
text="Ready to scale? Let's discuss your marketing strategy."
primaryButton={{
text: "Contact Us",
href: "#contact",
}}
secondaryButton={{
text: "Our Portfolio",
href: "#services",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
title="Strategic marketing that drives measurable growth"
description="We partner with ambitious brands to craft campaigns that connect, convert, and scale. Let's build something remarkable together."
primaryButton={{
text: "Explore Our Work",
href: "#services",
}}
secondaryButton={{
text: "Contact Us",
href: "#contact",
}}
imageSrc="http://img.b2bpic.net/free-photo/keyboard-glasses-marble-surface_140725-23257.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import { Target, TrendingUp, Users } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Impact"
title="Proven Results"
description="Numbers that define our success and your growth."
metrics={[
{
icon: TrendingUp,
title: "Growth Delivered",
value: "$50M+",
},
{
icon: Users,
title: "Clients Scaled",
value: "120+",
},
{
icon: Target,
title: "Conversion Lift",
value: "240%",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,56 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingSplitCards
tag="Partnership"
title="Transparent Packages"
description="Tailored solutions for your business size and needs."
plans={[
{
tag: "Launch",
price: "$5,000",
period: "/mo",
description: "Essential support for early-stage teams.",
primaryButton: {
text: "Choose Plan",
href: "#contact",
},
featuresTitle: "Included features:",
features: [
"Strategy Session",
"Basic Analytics",
"Brand Audit",
"Monthly Reporting",
],
},
{
tag: "Scale",
price: "$12,000",
period: "/mo",
description: "Advanced strategy for scaling companies.",
primaryButton: {
text: "Choose Plan",
href: "#contact",
},
featuresTitle: "Everything in Launch plus:",
features: [
"Performance Ads",
"Content Production",
"Advanced SEO",
"Dedicated PM",
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "proof" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProofSection(): React.JSX.Element {
return (
<div id="proof" data-section="proof">
<SectionErrorBoundary name="proof">
<SocialProofMarquee
tag="Partners"
title="Trusted By Industry Leaders"
description="Working with the world's most ambitious brands."
names={[
"InnovateLab",
"GrowthCo",
"TechCorp",
"StartupXYZ",
"BrandNext",
"ScaleFast",
"FutureBound",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Expertise"
title="Our Core Services"
description="Comprehensive marketing solutions tailored to your growth goals."
items={[
{
title: "Brand Strategy",
description: "Crafting identity and positioning.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/colorful-triangle-paper-pack_23-2148547766.jpg",
},
{
title: "Performance Marketing",
description: "Driving measurable conversions.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-man-working-computer_53876-31625.jpg",
},
{
title: "Content Creation",
description: "Engaging storytelling and production.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/open-laptop-with-diagram-glasses-mobile-office-supplies_1163-2754.jpg",
},
{
title: "SEO & Growth",
description: "Optimizing for visibility.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/innovation-development-rocket-graphic-concept_53876-120019.jpg",
},
{
title: "Email Campaigns",
description: "Automated nurture streams.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/people-working-together-animation-studio_23-2149207973.jpg",
},
{
title: "Social Strategy",
description: "Building community engagement.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/business-work-area_1388-82.jpg",
},
{
title: "Analytics & Reporting",
description: "Deep-dive performance insights.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-multicolored-growth-cones_23-2148780633.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Clients"
title="Client Success"
description="Hear from the brands we've helped grow."
testimonials={[
{
name: "Sarah Johnson",
role: "CEO",
quote: "They transformed our marketing strategy completely.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smile-woman-talking-phone-looking-camera_23-2148317284.jpg",
},
{
name: "Michael Chen",
role: "CTO",
quote: "Reliable, strategic, and always delivering ROI.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/positive-middle-aged-business-leader-window_1262-5388.jpg",
},
{
name: "Emily Rodriguez",
role: "Marketing Director",
quote: "Best agency partner we've had in 5 years.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/confident-african-american-businessman-black-classic-jacket-isolated-dark-background_613910-17869.jpg",
},
{
name: "David Kim",
role: "Founder",
quote: "Data-driven results that exceeded our targets.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-woman-posing-wrapping-up-grey-cloth_176420-16804.jpg",
},
{
name: "Jane Smith",
role: "COO",
quote: "Seamless execution and visionary strategy.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-business-woman-with-executive-job-working-with-management-marketing-statistics-computer-office-worker-analyzing-research-charts-data-reports_482257-41126.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}