{ "projectName": "The Bay Chiro", "businessType": "chiropractic-clinic", "industry": "healthcare", "tone": "Professional yet warm and approachable, health-focused, reassuring, community-oriented", "tier": 2, "serviceType": "services", "studioProfile": "clinic", "design": { "artDirection": "soft-organic", "variant": "river", "displayFont": "Sora", "bodyFont": "DM_Sans", "colorSource": "typed" }, "generatedAt": "2026-09-15T16:26:47.044Z", "sections": [ { "name": "HeroSection", "importPath": "@/components/sections/HeroSection", "position": 0, "role": "hero", "hasImage": true, "hasForm": false, "itemCount": 4, "layout": "flex-row", "headings": [], "buttonLabels": [], "people": [ "The Bay Chiro" ], "allText": [ "next/image", "next/link", "hero", "relative flex flex-col md:flex-row min-h-[82vh]", "relative w-full md:w-1/2 h-72 md:h-auto min-h-[320px] overflow-hidden", "The Bay Chiro", "object-cover", "(max-width: 768px) 100vw, 50vw", "absolute inset-0 bg-gradient-to-br from-primary to-secondary", "w-full md:w-1/2 flex flex-col justify-center px-8 lg:px-16 py-14", "#f2f4f5", "#1f2a33", "text-4xl lg:text-5xl font-semibold tracking-[-0.02em] leading-[1.12] mb-6 max-w-4xl", "The Bay", "text-accent", "Chiro", "text-base lg:text-lg mb-8 max-w-lg", "#535d65", "A specialised chiropractic practice led by Dr. K.P. Khumalo (M.TECH.CHIRO.S.A) offering tailored, evidence-based treatment plans for the whole family — from 6-week-old babies to pregnant mothers and athletes — addressing the root cause of musculoskeletal and nervous system disorders, not just symptoms.", "w-fit", "#contact", "inline-block bg-primary text-primary-foreground px-9 py-4 text-[15px] font-semibold rounded-full shadow-xl hover:-translate-y-0.5 transition-all duration-200", "Book an appointment" ] }, { "name": "AboutThePracticeSection", "importPath": "@/components/sections/AboutThePracticeSection", "position": 1, "role": "about", "hasImage": true, "hasForm": false, "itemCount": 9, "layout": "grid", "headings": [], "buttonLabels": [], "people": [], "allText": [ "next/image", "next/link", "@/components/ui/Button", "Full case history and examination before a single adjustment", "Manual adjustment, spinal decompression and soft-tissue work", "Home exercises that hold the change between visits", "One practice for the whole household — babies, moms, athletes, desk workers", "aboutthepractice", "about-the-practice", "bg-primary py-20 text-primary-foreground lg:py-28", "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", "grid items-center gap-12 lg:grid-cols-2 lg:gap-16", "text-sm font-semibold uppercase tracking-[0.18em] text-primary-foreground/70", "Led by Dr. K.P. Khumalo · M.TECH.CHIRO.S.A", "mt-4 text-3xl font-bold leading-tight sm:text-4xl", "Care that starts with a", "text-accent", "diagnosis", ", not a guess", "mt-5 max-w-[44ch] text-base leading-relaxed text-primary-foreground/85", "The Bay Chiro is a specialised, family-friendly chiropractic practice in Richards\n Bay. Every visit begins with finding out where the pain is actually coming from and\n why your body started compensating around it — then the treatment plan is built from\n that answer.", "mt-4 max-w-[44ch] text-base leading-relaxed text-primary-foreground/85", "That is the difference between chasing a symptom and treating a root cause.\n Adjustments, spinal decompression and soft-tissue work are matched to your age, your\n work and the sport you play — from a six-week-old baby with colic to a runner nursing\n a knee.", "Ubuntu shapes how the practice runs. We treat the person and the household around\n them — the mom carrying a toddler, the father who drives long distances, the student\n hunched over a laptop since lockdown.", "mt-8 divide-y divide-primary-foreground/20 border-y border-primary-foreground/20", "py-3 text-sm text-primary-foreground/90", "mt-8", "lg", "secondary", "Book an appointment", "relative", "overflow-hidden", "999px 999px 24px 24px", "relative h-[360px] w-full sm:h-[460px] lg:h-[540px]", "Chiropractor guiding a patient through spinal care at The Bay Chiro", "(max-width: 1024px) 100vw, 45vw", "object-cover", "mt-4 rounded-lg bg-background p-6 text-foreground shadow-md sm:absolute sm:-bottom-8 sm:left-6 sm:mt-0 sm:max-w-xs", "text-sm font-semibold", "Dr. K.P. Khumalo", "mt-1 text-sm text-muted-foreground", "M.TECH.CHIRO.S.A — diagnosing, treating and preventing musculoskeletal and nervous\n system disorders." ] }, { "name": "ChiropracticServicesSection", "importPath": "@/components/sections/ChiropracticServicesSection", "position": 2, "role": "services", "hasImage": true, "hasForm": false, "itemCount": 17, "layout": "grid", "headings": [ "{service.title}" ], "buttonLabels": [], "people": [], "allText": [ "use client", "next/image", "next/link", "lucide-react", "@/hooks/useProducts", "@/components/ui/Button", "@/components/ui/Card", "KSh", "zar", "Neck, back and joint pain", "Headaches and migraines", "Nerve impingement", "Sports and accident recovery", "Spinal decompression", "Fibromyalgia and infant colic", "one", "two", "three", "four", "chiropracticservices", "chiropractic-services", "bg-background py-20 text-foreground lg:py-28", "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", "max-w-3xl", "text-sm font-semibold uppercase tracking-[0.18em] text-primary", "Services", "mt-4 text-3xl font-bold leading-tight sm:text-4xl", "A plan shaped by", "text-primary", "your body", ", not a queue", "mt-4 max-w-[44ch] text-lg text-muted-foreground", "Book the appointment that fits. Every session opens with a proper diagnosis and closes\n with something you can do at home before the next visit.", "mt-8 flex flex-wrap items-center gap-x-6 gap-y-2 text-sm text-muted-foreground", "flex items-center gap-2", "h-1.5 w-1.5 rounded-full bg-secondary", "mt-12 grid gap-6 sm:grid-cols-2 lg:grid-cols-4", "overflow-hidden rounded-lg bg-card shadow-md", "aspect-video w-full animate-pulse bg-muted", "space-y-3 p-6", "h-4 w-2/3 animate-pulse rounded bg-muted", "h-3 w-full animate-pulse rounded bg-muted", "h-3 w-4/5 animate-pulse rounded bg-muted", "group overflow-hidden rounded-lg shadow-md transition-all duration-200 ease-out hover:-translate-y-1 hover:shadow-xl", "block cursor-pointer", "relative aspect-video w-full overflow-hidden bg-muted", "(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 25vw", "object-cover transition-transform duration-500 ease-out group-hover:scale-105", "flex h-full w-full items-center justify-center text-muted-foreground", "h-8 w-8" ] }, { "name": "MeetTheTeamSection", "importPath": "@/components/sections/MeetTheTeamSection", "position": 3, "role": "team", "hasImage": true, "hasForm": false, "itemCount": 11, "layout": "grid", "headings": [ "{person.name}" ], "buttonLabels": [], "people": [ "Sister Nomvula Mthembu", "Thandi Zulu" ], "allText": [ "next/image", "next/link", "@/components/ui/Badge", "@/components/ui/Button", "Dr. K.P. Khumalo", "Lead Chiropractor — M.TECH.CHIRO.S.A", "Registered with the Allied Health Professions Council of South Africa. Dr Khumalo works the whole spine, not only the spot that hurts: paediatric adjustments for babies from six weeks, the Webster technique for pregnant moms, spinal decompression for disc injuries, and dry needling for shoulders that tighten over long desk hours.", "Paediatric adjustments", "Pregnancy and Webster", "Spinal decompression", "Sister Nomvula Mthembu", "Practice nurse", "Runs the vitals screen and intake checks, and keeps each treatment room turning over on time.", "Thandi Zulu", "Reception and scheduling", "Books appointments, handles medical aid paperwork, and calls the day before a first adjustment.", "meettheteam", "meet-the-team", "bg-muted text-foreground py-20 sm:py-24", "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", "max-w-[44ch]", "text-sm font-medium uppercase tracking-wide text-primary", "Meet the team", "mt-3 text-3xl sm:text-4xl font-bold tracking-tight", "One chiropractor,", "text-primary", "one unhurried room", "mt-12 grid grid-cols-1 lg:grid-cols-2 gap-6", "lg:col-span-2 grid grid-cols-1 lg:grid-cols-12 gap-8 lg:gap-12 items-center bg-card rounded-3xl shadow-md hover:shadow-xl transition-all duration-200 hover:-translate-y-1 p-6 sm:p-8", "lg:col-span-5 relative aspect-[4/5] w-full overflow-hidden", "999px 999px 28px 28px", "Portrait of", "(max-width: 1024px) 100vw, 40vw", "object-cover", "lg:col-span-7", "text-2xl sm:text-3xl font-bold", "mt-2 text-sm font-medium text-primary", "mt-4 max-w-[44ch] leading-relaxed text-muted-foreground", "mt-6 flex flex-wrap gap-2", "secondary", "bg-card rounded-3xl shadow-md hover:shadow-xl transition-all duration-200 hover:-translate-y-1 p-6 flex items-start gap-5", "relative h-20 w-20 shrink-0 overflow-hidden rounded-full", "80px", "text-lg font-semibold", "text-sm font-medium text-primary", "mt-2 text-sm leading-relaxed text-muted-foreground", "mt-10 flex flex-col sm:flex-row sm:items-center gap-4", "Book with Dr Khumalo", "text-sm text-muted-foreground", "Medical aid and private patients · Babies welcome from six weeks" ] }, { "name": "ClinicGallerySection", "importPath": "@/components/sections/ClinicGallerySection", "position": 4, "role": "gallery", "hasImage": true, "hasForm": false, "itemCount": 4, "layout": "grid", "headings": [], "buttonLabels": [], "people": [], "allText": [ "next/image", "Chiropractic treatment room with an adjustment table in natural daylight", "Babies welcome from six weeks", "col-span-2 row-span-2 lg:col-span-2 lg:row-span-2", "rounded-[120px_120px_28px_28px]", "Quiet waiting area with seating and soft light", "Reception and waiting area", "col-span-2 lg:col-span-2", "rounded-3xl", "Practitioner reading patient notes before a consultation", "Assessment before treatment", "col-span-1 lg:col-span-1", "Hands-on chiropractic adjustment in the treatment room", "Adjustment room", "Athlete stretching during recovery work", "Sports injury and recovery", "rounded-[28px_120px_28px_120px]", "Parent with a young child in a family-friendly clinic space", "Family appointments", "Babies from six weeks", "Pregnancy-friendly tables", "clinicgallery", "clinic-gallery", "bg-background text-foreground py-20 sm:py-24", "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", "max-w-[44ch]", "text-sm font-medium uppercase tracking-wide text-primary", "Clinic gallery", "mt-3 text-3xl sm:text-4xl font-bold tracking-tight", "Built for", "text-primary", "whole families", ", not only sore backs.", "mt-4 leading-relaxed text-muted-foreground", "Adjustment rooms, a waiting area that copes with prams, and tables that adjust for pregnancy. Every surface is cleaned down between patients.", "mt-12 grid grid-cols-2 lg:grid-cols-4 auto-rows-[150px] sm:auto-rows-[195px] gap-4 sm:gap-6", "relative overflow-hidden group", "(max-width: 768px) 100vw, 50vw", "object-cover transition-transform duration-500 ease-out group-hover:scale-105", "absolute bottom-3 left-3 rounded-full bg-background/95 px-3 py-1.5 text-xs font-medium text-foreground shadow-md", "mt-8 flex flex-wrap items-center gap-x-6 gap-y-3 text-sm text-muted-foreground", "flex items-center gap-2", "h-1.5 w-1.5 rounded-full bg-primary" ] }, { "name": "PatientStoriesSection", "importPath": "@/components/sections/PatientStoriesSection", "position": 5, "role": "unknown", "hasImage": false, "hasForm": false, "itemCount": 3, "layout": "grid", "headings": [], "buttonLabels": [], "people": [], "allText": [ "next/link", "@/components/ui/Button", "Our daughter was four months old and cried every evening with colic. After two adjustments the evenings went quiet, and Dr Khumalo explained every movement before he made it.", "Nokwanda D.", "Mom of a four-month-old, Richards Bay", "I ran a qualifier three weeks after my last lower-back flare-up. The plan was specific: adjustments in the room, then the exercises he wrote out for me by hand.", "Sipho M.", "Club runner and shift worker", "At thirty-one weeks pregnant I could not sleep for hip pain. The table adjusts for your bump, and I walked out standing straighter. I still come in every second week.", "Ayesha K.", "Third pregnancy", "patientstories", "patient-stories", "bg-primary text-primary-foreground py-20 sm:py-24", "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", "max-w-[44ch]", "text-sm font-medium uppercase tracking-wide text-primary-foreground/70", "From Richards Bay families, athletes and parents", "mt-3 text-3xl sm:text-4xl font-bold tracking-tight", "Relief that", "text-accent", "holds", ", in their own words.", "mt-12 grid grid-cols-1 md:grid-cols-3 gap-6", "bg-background text-foreground rounded-3xl shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-1 p-6 flex flex-col", "text-lg tracking-widest text-primary", "true", "★★★★★", "mt-4 leading-relaxed", "mt-6 border-t border-border/60 pt-4", "font-semibold", "text-sm text-muted-foreground", "mt-12 flex flex-col sm:flex-row sm:items-center justify-between gap-6 rounded-3xl bg-background text-foreground shadow-lg p-6 sm:p-8", "text-lg font-semibold", "Not sure whether chiropractic is right for you?", "mt-1 text-sm text-muted-foreground", "A first consultation covers your history, an examination, and an explanation of what we found — before anything is adjusted.", "Book an appointment" ] }, { "name": "ChiropracticFaqSection", "importPath": "@/components/sections/ChiropracticFaqSection", "position": 6, "role": "faq", "hasImage": false, "hasForm": false, "itemCount": 6, "layout": "grid", "headings": [], "buttonLabels": [], "people": [], "allText": [ "use client", "react", "next/link", "lucide-react", "@/components/ui/Button", "What actually happens on a first visit?", "Dr Khumalo starts with a full case history, then examines how your spine, joints and nerves are moving. You get a plain-language explanation of what he found before anything is adjusted, and you decide whether to go ahead with the plan.", "Is chiropractic safe for babies and during pregnancy?", "Babies from six weeks are welcome. On an infant the pressure used is barely firmer than testing a ripe tomato: no cracking, no twisting. Pregnant moms are treated side-lying with pillows, avoiding the positions that get uncomfortable in the second and third trimester.", "Can you help with a sports injury?", "Yes. Sports care runs in two stages: restore the range the joint lost, then load it so the fix holds. A rugby shoulder, a runner’s knee or a stiff ankle all get the same question asked first — which joint stopped moving properly?", "How is this different from painkillers and rest?", "Painkillers turn the signal down. Chiropractic looks for the joint that stopped moving properly, which is often why the signal started. It is also why the same lower-back flare returns a few weeks after you stop resting.", "What conditions can chiropractic care help with?", "Neck, back and joint pain. Headaches and migraines. Extremity pain and nerve impingement. Sports injuries and auto-accident recovery. Spinal decompression, plus supportive care for fibromyalgia and infant colic.", "Do I need a referral, and how does booking work?", "No referral needed. Book straight from the services page: choose a time that suits you and the practice confirms it with you directly. Bring your medical aid card and you will get a fully coded receipt to submit with your claim.", "chiropracticfaq", "chiropractic-faq", "bg-background text-foreground py-20 sm:py-24", "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", "grid gap-12 lg:grid-cols-12", "lg:col-span-5 lg:sticky lg:top-28 lg:self-start", "text-xs font-semibold uppercase tracking-[0.18em] text-primary", "Chiropractic care", "mt-3 text-3xl font-bold leading-tight sm:text-4xl", "The questions people ask", "text-primary", "before", "their first adjustment.", "mt-4 max-w-[44ch] text-base text-muted-foreground", "Straight answers on what a visit involves, who we treat, and how booking works. If yours is not on this list, send it through rather than putting the visit off.", "outline", "mt-6", "See services and book", "ml-2 h-4 w-4", "space-y-4 lg:col-span-7", "rounded-lg bg-card shadow-md transition-all duration-200 ease-out hover:-translate-y-1 hover:shadow-xl", "button", "w-full cursor-pointer p-6 text-left", "flex items-center justify-between gap-4", "text-base font-semibold text-foreground sm:text-lg", "rotate-180", "px-6 pb-6 text-sm leading-relaxed text-muted-foreground" ] }, { "name": "VisitTheClinicSection", "importPath": "@/components/sections/VisitTheClinicSection", "position": 7, "role": "unknown", "hasImage": false, "hasForm": true, "itemCount": 15, "layout": "grid", "headings": [ "Come in for an adjustment, or send us a message first.", "Where to find us", "Clinic hours" ], "buttonLabels": [], "people": [], "allText": [ "use client", "react", "next/link", "lucide-react", "@/components/ui/Button", "@/components/ui/Input", "@/components/ui/Card", "@/components/BusinessContact", "@/components/BusinessHours", "@/components/BusinessMap", "@/hooks/useEnquiry", "visittheclinic", "visit-the-clinic", "bg-muted text-foreground py-20 sm:py-24", "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", "grid gap-12 lg:grid-cols-12", "lg:col-span-7", "text-xs font-semibold uppercase tracking-[0.18em] text-primary", "Visit the clinic", "mt-3 text-3xl font-bold leading-tight sm:text-4xl", "Come in for an adjustment, or send us a message first.", "mt-4 max-w-[44ch] text-base text-muted-foreground", "The practice is set up for families: a pram fits through the door, there is room for kids in the waiting area, and a newborn check does not need a full adult appointment slot.", "mt-8 space-y-6", "text-sm font-semibold uppercase tracking-wide text-muted-foreground", "Where to find us", "mt-2 text-sm text-muted-foreground", "Clinic hours", "mt-8", "lg:col-span-5", "Send a message", "text-sm leading-relaxed text-foreground", "space-y-4", "Your name", "name", "Phone or WhatsApp number", "phone", "Email (optional)", "email", "visit-message", "mb-1 block text-sm font-medium text-foreground", "What would you like help with?", "message", "w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition-all duration-200 ease-out focus:border-primary focus:ring-2 focus:ring-primary/30", "text-sm font-medium text-foreground", "flex flex-col gap-3 pt-2", "button", "whatsapp", "default", "outline" ] } ], "navigationLinks": [ "Chiro", "Home", "About", "Services", "Team", "Gallery", "Contact", "Book Appointment" ], "cmsCollections": [ { "slug": "business_hours", "label": "Opening Hours", "icon": "Clock", "aiEnabled": false, "seedCount": 3, "fields": [ { "name": "open", "type": "text", "label": "Opens" }, { "name": "close", "type": "text", "label": "Closes" } ] }, { "slug": "meet_the_team", "label": "Meet The Team", "icon": "LayoutGrid", "aiEnabled": true, "seedCount": 3, "fields": [ { "name": "name", "type": "text", "label": "Name" }, { "name": "role", "type": "text", "label": "Role" }, { "name": "bio", "type": "textarea", "label": "Bio" }, { "name": "image", "type": "image", "label": "Image" }, { "name": "tags", "type": "list", "label": "Tags" } ], "promoted": true }, { "slug": "clinic_gallery", "label": "Clinic Gallery", "icon": "LayoutGrid", "aiEnabled": true, "seedCount": 3, "fields": [ { "name": "src", "type": "image", "label": "Src" }, { "name": "alt", "type": "text", "label": "Alt" }, { "name": "caption", "type": "text", "label": "Caption" } ], "promoted": true }, { "slug": "patient_stories", "label": "Patient Stories", "icon": "LayoutGrid", "aiEnabled": true, "seedCount": 3, "fields": [ { "name": "quote", "type": "textarea", "label": "Quote" }, { "name": "name", "type": "text", "label": "Name" }, { "name": "detail", "type": "text", "label": "Detail" } ], "promoted": true }, { "slug": "chiropractic_faq", "label": "Chiropractic Faq", "icon": "LayoutGrid", "aiEnabled": true, "seedCount": 3, "fields": [ { "name": "q", "type": "text", "label": "Q" }, { "name": "a", "type": "textarea", "label": "A" } ], "promoted": true } ], "platformAuthored": [ "src/components/ui/Button.tsx", "src/components/ui/Input.tsx", "src/app/icon.svg", "package.json", "tsconfig.json", "components.json", "next.config.js", "postcss.config.js", "tailwind.config.js", "src/lib/utils.ts", "src/components/BusinessContact.tsx", "src/components/BusinessMap.tsx", "src/hooks/useEnquiry.ts", "src/components/BusinessSchema.tsx", "src/components/BusinessSocials.tsx", "src/lib/siteMeta.ts", "src/app/sitemap.ts", "src/app/robots.ts", "src/components/layout/Navigation.tsx", ".env.local", "src/hooks/useProducts.ts", "src/app/api/products/route.ts", "src/app/services/page.tsx", "src/app/booking/[productId]/page.tsx", "src/app/services/layout.tsx", "src/app/booking/layout.tsx", "src/app/b/[code]/page.tsx", "src/app/b/layout.tsx", "src/lib/cms.ts", "src/app/api/content/[collection]/route.ts", "src/hooks/useVulaContent.ts", "src/components/BusinessHours.tsx" ] }