From 71af663ea1f8ec9b056f1c5ea8ba6d645facafd9 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Wed, 29 Apr 2026 21:58:59 +0000 Subject: [PATCH 1/2] Bob AI: Add services page --- src/App.tsx | 2 ++ src/components/Layout.tsx | 4 ++- src/pages/ServicesPage.tsx | 63 ++++++++++++++++++++++++++++++++++++++ src/routes.ts | 1 + 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 src/pages/ServicesPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..31ec78f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom'; import Layout from './components/Layout'; import HomePage from './pages/HomePage'; +import ServicesPage from "@/pages/ServicesPage"; export default function App() { return ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index a1cc363..5fe667d 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -33,7 +33,9 @@ export default function Layout() { { "name": "Testimonials", "href": "#testimonials" - } + }, + { name: "Services", href: "/services" }, + ]; return ( diff --git a/src/pages/ServicesPage.tsx b/src/pages/ServicesPage.tsx new file mode 100644 index 0000000..a4b9e57 --- /dev/null +++ b/src/pages/ServicesPage.tsx @@ -0,0 +1,63 @@ +import { routes } from "@/routes"; +import NavbarCentered from "@/components/ui/NavbarCentered"; +import HeroBillboard from "@/components/sections/hero/HeroBillboard"; +import FeaturesDetailedCards from "@/components/sections/features/FeaturesDetailedCards"; +import TestimonialQuoteCards from "@/components/sections/testimonial/TestimonialQuoteCards"; +import ContactCta from "@/components/sections/contact/ContactCta"; +import FooterSimple from "@/components/sections/footer/FooterSimple"; + +const services = [ + { title: "Web Development", description: "Crafting responsive and high-performance websites tailored to your needs." }, + { title: "Mobile App Development", description: "Building intuitive and engaging mobile experiences for iOS and Android." }, + { title: "Cloud Solutions", description: "Scalable and secure cloud infrastructure management and optimization." }, + { title: "AI & Machine Learning", description: "Leveraging intelligent systems for data-driven insights and automation." }, +]; + +const testimonials = [ + { quote: "Their web development transformed our online presence. Highly recommend!", author: "Client A, CEO" }, + { quote: "The mobile app they built exceeded our expectations in every way.", author: "Client B, Founder" }, + { quote: "Exceptional cloud expertise, they truly optimized our infrastructure.", author: "Client C, CTO" }, +]; + +export default function ServicesPage() { + return ( +
+ ({ name: r.label, href: r.path }))} + ctaButton={{ text: "Contact Us", href: "/contact" }} + /> +
+ +
+ +
+
+ +
+
+ +
+
+ ({ name: r.label, href: r.path }))} + /> +
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..6b7660e 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -6,4 +6,5 @@ export interface Route { export const routes: Route[] = [ { path: '/', label: 'Home', pageFile: 'HomePage' }, + { path: '/services', label: 'Services', pageFile: 'ServicesPage' }, ]; -- 2.49.1 From 5e46b5258a677ca310af58dca000615a24df454f Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Wed, 29 Apr 2026 21:59:18 +0000 Subject: [PATCH 2/2] Bob AI: Populate src/pages/ServicesPage.tsx (snippet builder, 3 sections) --- src/pages/ServicesPage.tsx | 80 ++++++++++++-------------------------- 1 file changed, 24 insertions(+), 56 deletions(-) diff --git a/src/pages/ServicesPage.tsx b/src/pages/ServicesPage.tsx index a4b9e57..6033250 100644 --- a/src/pages/ServicesPage.tsx +++ b/src/pages/ServicesPage.tsx @@ -1,63 +1,31 @@ -import { routes } from "@/routes"; -import NavbarCentered from "@/components/ui/NavbarCentered"; -import HeroBillboard from "@/components/sections/hero/HeroBillboard"; -import FeaturesDetailedCards from "@/components/sections/features/FeaturesDetailedCards"; -import TestimonialQuoteCards from "@/components/sections/testimonial/TestimonialQuoteCards"; +import HeroSplit from "@/components/sections/hero/HeroSplit"; +import FeaturesAlternatingSplit from "@/components/sections/features/FeaturesAlternatingSplit"; import ContactCta from "@/components/sections/contact/ContactCta"; -import FooterSimple from "@/components/sections/footer/FooterSimple"; - -const services = [ - { title: "Web Development", description: "Crafting responsive and high-performance websites tailored to your needs." }, - { title: "Mobile App Development", description: "Building intuitive and engaging mobile experiences for iOS and Android." }, - { title: "Cloud Solutions", description: "Scalable and secure cloud infrastructure management and optimization." }, - { title: "AI & Machine Learning", description: "Leveraging intelligent systems for data-driven insights and automation." }, -]; - -const testimonials = [ - { quote: "Their web development transformed our online presence. Highly recommend!", author: "Client A, CEO" }, - { quote: "The mobile app they built exceeded our expectations in every way.", author: "Client B, Founder" }, - { quote: "Exceptional cloud expertise, they truly optimized our infrastructure.", author: "Client C, CTO" }, -]; export default function ServicesPage() { return ( -
- ({ name: r.label, href: r.path }))} - ctaButton={{ text: "Contact Us", href: "/contact" }} + <> + -
- -
- -
-
- -
-
- -
-
- ({ name: r.label, href: r.path }))} + -
+ + ); -} \ No newline at end of file +} -- 2.49.1