diff --git a/src/app/page.tsx b/src/app/page.tsx index e0114b5..c48cfb6 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,16 +2,24 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import ReactLenis from "lenis/react"; -import ContactCTA from '@/components/sections/contact/ContactCTA'; -import FeatureBento from '@/components/sections/feature/FeatureBento'; -import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; -import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi'; -import MetricCardThree from '@/components/sections/metrics/MetricCardThree'; +import dynamic from 'next/dynamic'; +import { Suspense } from 'react'; + +// Dynamically imported sections for code splitting and lazy loading +const DynamicContactCTA = dynamic(() => import('@/components/sections/contact/ContactCTA')); +const DynamicFeatureBento = dynamic(() => import('@/components/sections/feature/FeatureBento')); +const DynamicFooterBaseCard = dynamic(() => import('@/components/sections/footer/FooterBaseCard')); +const DynamicHeroSplitKpi = dynamic(() => import('@/components/sections/hero/HeroSplitKpi')); +const DynamicMetricCardThree = dynamic(() => import('@/components/sections/metrics/MetricCardThree')); +const DynamicPricingCardThree = dynamic(() => import('@/components/sections/pricing/PricingCardThree')); +const DynamicSocialProofOne = dynamic(() => import('@/components/sections/socialProof/SocialProofOne')); +const DynamicTestimonialAboutCard = dynamic(() => import('@/components/sections/about/TestimonialAboutCard')); +const DynamicTestimonialCardOne = dynamic(() => import('@/components/sections/testimonial/TestimonialCardOne')); + +// Keep static import for Navbar as it's critical for immediate interaction import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; -import PricingCardThree from '@/components/sections/pricing/PricingCardThree'; -import SocialProofOne from '@/components/sections/socialProof/SocialProofOne'; -import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard'; -import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne'; + +// Lucide icons, these are small and used in multiple sections, keeping them static for now import { Activity, Apple, Award, Bell, Calendar, Crown, Flame, Heart, Settings, ShoppingBag, Signal, Sparkles, Star, Trophy, User, Users, Weight } from "lucide-react"; export default function LandingPage() { @@ -56,296 +64,314 @@ export default function LandingPage() {