Compare commits
17 Commits
version_2_
...
version_8_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d9b839aee3 | ||
|
|
434a021adc | ||
|
|
ff19f49f34 | ||
| adda4432d8 | |||
| 72492b2f9e | |||
| f0bfe761a5 | |||
| 4504cf18b2 | |||
| c07c980b7d | |||
| 7f88d73556 | |||
| 7d377837dc | |||
| 517328199f | |||
| f797161b8a | |||
| f57649a2fe | |||
| bb1a6f13d9 | |||
| 49d3a40dfd | |||
| f99e4dcbd4 | |||
| abb47b679c |
@@ -102,7 +102,6 @@ export default function Layout() {
|
||||
href: "#",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/customer-service-feedback-interface-concept_53876-124955.jpg?_wi=2"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</StyleProvider>
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #F7F8FA;
|
||||
--card: #FFFFFF;
|
||||
--background: #FFFFFF;
|
||||
--card: #F7F8FA;
|
||||
--foreground: #0F172A;
|
||||
--primary-cta: #2563EB;
|
||||
--primary-cta: #000000;
|
||||
--primary-cta-text: #FFFFFF;
|
||||
--secondary-cta: #FFFFFF;
|
||||
--secondary-cta-text: #0F172A;
|
||||
--accent: #2563EB;
|
||||
--accent: #000000;
|
||||
--background-accent: #E2E8F0;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
|
||||
@@ -1,315 +1,39 @@
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
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 TickerSection from './HomePage/sections/Ticker';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import HowItWorksSection from './HomePage/sections/HowItWorks';
|
||||
import BenefitsSection from './HomePage/sections/Benefits';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import ReviewsSection from './HomePage/sections/Reviews';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardTiltedCarousel
|
||||
tag="⭐⭐⭐⭐⭐ 60+ websites opgeleverd"
|
||||
title="Professionele website voor uw zaak. Klaar in 48 uur."
|
||||
description="Eenmalig €00. U wordt eigenaar. Gevonden op Google. Geen maandverplichting."
|
||||
primaryButton={{
|
||||
text: "Vraag uw gratis voorbeeld aan",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Bekijk ons werk",
|
||||
href: "/#work",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/website-development-layout-sketch-drawing_53876-124188.jpg?_wi=1",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-graphic-design-office_23-2151345397.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/modern-laptop-with-blank-white-screen-isolated-black-background-close-up_169016-63906.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/organizational-staff-looking-device-with-green-screen-meeting_482257-115581.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/y2k-website-window-illustration_23-2151874930.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-business-manager-working-with-isolated-copy-space-her-tablet_482257-107523.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="ticker" data-section="ticker">
|
||||
<SectionErrorBoundary name="ticker">
|
||||
<SocialProofMarquee
|
||||
title="38+ lokale bedrijven gingen u voor"
|
||||
names={[
|
||||
"Nagelstudio Lena",
|
||||
"Schildersbedrijf De Moor",
|
||||
"Trimsalon Bello",
|
||||
"Kapperszaak Nora",
|
||||
"Schoonheidssalon Lumière",
|
||||
"Loodgieter Van den Berg",
|
||||
"Koffiedealers",
|
||||
"Bakkerij Aldo",
|
||||
"Top Wash Cleaning",
|
||||
]}
|
||||
tag="Trusted by"
|
||||
description="Samen bouwen we aan lokale online groei."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TickerSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
title="Data gedreven resultaat"
|
||||
description="Zonder website mist u kansen. Uw concurrenten zijn u voor."
|
||||
metrics={[
|
||||
{
|
||||
value: "72%",
|
||||
title: "Zoekintentie",
|
||||
description: "van klanten zoekt eerst op Google.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/customer-service-feedback-interface-concept_53876-124955.jpg?_wi=1",
|
||||
},
|
||||
{
|
||||
value: "5x",
|
||||
title: "Klantenverlies",
|
||||
description: "tot 5 nieuwe klanten per week.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/digital-art-style-illustration-graphic-designer_23-2151536936.jpg",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
title: "Eigenaarschap",
|
||||
description: "van uw volledige website.",
|
||||
imageSrc: "http://img.b2bpic.net/free-vector/hand-drawn-start-up-concept-with-rocket_23-2147789007.jpg",
|
||||
},
|
||||
]}
|
||||
tag="De digitale realiteit"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="how-it-works" data-section="how-it-works">
|
||||
<SectionErrorBoundary name="how-it-works">
|
||||
<FeaturesTaggedCards
|
||||
tag="Werkwijze"
|
||||
title="In drie stappen live"
|
||||
description="Snel, professioneel en zonder zorgen."
|
||||
items={[
|
||||
{
|
||||
tag: "Stap 01",
|
||||
title: "Gratis voorbeeld",
|
||||
description: "U vult ons formulier in. Binnen 24 uur ontvangt u een vrijblijvend voorbeeld.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blank-billboard-structure-building-facade-with-lights_9975-133802.jpg",
|
||||
primaryButton: {
|
||||
text: "Start nu",
|
||||
href: "/contact",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Stap 02",
|
||||
title: "Bouw op maat",
|
||||
description: "Wij bouwen uw website razendsnel binnen 48 uur na akkoord.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/programming-background-collage_23-2149901782.jpg",
|
||||
primaryButton: {
|
||||
text: "Bekijk proces",
|
||||
href: "/over-ons",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Stap 03",
|
||||
title: "Lancering",
|
||||
description: "We zetten de site live, optimaliseren voor Google en begeleiden u.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hand-arrange-white-letters-as-growth_1384-121.jpg",
|
||||
primaryButton: {
|
||||
text: "Laten starten",
|
||||
href: "/contact",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HowItWorksSection />
|
||||
|
||||
<div id="benefits" data-section="benefits">
|
||||
<SectionErrorBoundary name="benefits">
|
||||
<FeaturesImageBento
|
||||
tag="Waarom Nexora?"
|
||||
title="Voordelen voor uw zaak"
|
||||
description="Alles wat u nodig heeft om lokaal te groeien."
|
||||
items={[
|
||||
{
|
||||
title: "Fractie van de prijs",
|
||||
description: "Slechts €900 eenmalig.",
|
||||
imageSrc: "http://img.b2bpic.net/free-vector/digital-medicine-icons_1284-5245.jpg",
|
||||
},
|
||||
{
|
||||
title: "Live in 48 uur",
|
||||
description: "Razendsnelle oplevering.",
|
||||
imageSrc: "http://img.b2bpic.net/free-vector/mobile-line-banner-set_1284-34339.jpg",
|
||||
},
|
||||
{
|
||||
title: "SEO-klaar",
|
||||
description: "Gevonden worden in Google.",
|
||||
imageSrc: "http://img.b2bpic.net/free-vector/startup-company-pack_78370-11283.jpg",
|
||||
},
|
||||
{
|
||||
title: "Mobile-first",
|
||||
description: "Werkt op elk toestel.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/business-branding-label-chart-graphic_53876-133806.jpg",
|
||||
},
|
||||
{
|
||||
title: "100% Eigenaar",
|
||||
description: "Geen lock-in contract.",
|
||||
imageSrc: "http://img.b2bpic.net/free-vector/group-office-workers-collaborating-tasks_1262-19784.jpg",
|
||||
},
|
||||
{
|
||||
title: "Optioneel onderhoud",
|
||||
description: "€49/maand voor service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/rag-doll-word-success_1156-188.jpg",
|
||||
},
|
||||
{
|
||||
title: "Snelle ondersteuning",
|
||||
description: "Altijd bereikbaar.",
|
||||
imageSrc: "http://img.b2bpic.net/free-vector/corporate-brochure-poster-template_53876-80525.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<BenefitsSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingSplitCards
|
||||
title="Eerlijke prijs"
|
||||
description="Geen verrassingen, enkel resultaat."
|
||||
plans={[
|
||||
{
|
||||
tag: "Meest gekozen",
|
||||
price: "€900",
|
||||
period: "eenmalig",
|
||||
description: "Professionele website voor uw zaak.",
|
||||
primaryButton: {
|
||||
text: "Vraag voorbeeld aan",
|
||||
href: "/contact",
|
||||
},
|
||||
featuresTitle: "Alles inbegrepen:",
|
||||
features: [
|
||||
"Design op maat",
|
||||
"Tot 5 pagina's",
|
||||
"Mobiel-vriendelijk",
|
||||
"Basis SEO",
|
||||
"Hosting & Domein",
|
||||
"48-uur levering",
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: "Optioneel",
|
||||
price: "€49",
|
||||
period: "per maand",
|
||||
description: "Zorgeloos onderhoud voor uw website.",
|
||||
primaryButton: {
|
||||
text: "Bekijk details",
|
||||
href: "/onderhoud",
|
||||
},
|
||||
featuresTitle: "Onderhoudsservice:",
|
||||
features: [
|
||||
"Technische updates",
|
||||
"Veiligheidsbewaking",
|
||||
"Tekstwijzigingen",
|
||||
"Prioriteitsondersteuning",
|
||||
],
|
||||
},
|
||||
]}
|
||||
tag="Prijzen"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="reviews" data-section="reviews">
|
||||
<SectionErrorBoundary name="reviews">
|
||||
<TestimonialTrustCard
|
||||
quote="Nexora heeft mijn zaak echt een boost gegeven. Ik krijg wekelijks nieuwe aanvragen en de website was binnen 48 uur klaar. Absoluut top!"
|
||||
rating={5}
|
||||
author="M.D. — Schildersbedrijf Antwerpen"
|
||||
avatars={[
|
||||
{
|
||||
name: "David",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bearded-man-wearing-white-shirt-looking-smiling-confident-showing-ok-sign-standing-pink-wall_141793-55819.jpg",
|
||||
},
|
||||
{
|
||||
name: "Ilya",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-posing-studio_23-2150275662.jpg",
|
||||
},
|
||||
{
|
||||
name: "Vincent",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-age-latin-businesswoman-smiling-happy-standing-with-arms-crossed-gesture-city_839833-17431.jpg",
|
||||
},
|
||||
{
|
||||
name: "L.V.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-black-suit_23-2148401442.jpg",
|
||||
},
|
||||
{
|
||||
name: "Top Wash",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-corporate-woman-young-intern-walks-street-office-holds-mobile-phone-texts_1258-119521.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ReviewsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="FAQ"
|
||||
title="Veelgestelde vragen"
|
||||
items={[
|
||||
{
|
||||
question: "Wat is inbegrepen in de prijs?",
|
||||
answer: "U ontvangt een volledige website met 5 pagina's, basis SEO en hosting.",
|
||||
},
|
||||
{
|
||||
question: "Hoe snel is de oplevering?",
|
||||
answer: "Binnen 48 uur na goedkeuring van het ontwerp.",
|
||||
},
|
||||
{
|
||||
question: "Ben ik eigenaar?",
|
||||
answer: "Ja, 100% eigendom. Geen lock-in.",
|
||||
},
|
||||
]}
|
||||
description="Hier vindt u antwoorden op de meest gestelde vragen."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="GRATIS VOORBEELD"
|
||||
text="Start vandaag. Vraag uw gratis voorbeeld aan. Vrijblijvend en zonder kosten."
|
||||
primaryButton={{
|
||||
text: "Vraag gratis voorbeeld aan",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Bel +32 468 05 02 01",
|
||||
href: "tel:+32468050201",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
21
src/pages/HomePage/sections/Benefits.tsx
Normal file
21
src/pages/HomePage/sections/Benefits.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "benefits" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function BenefitsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="benefits" data-section="benefits">
|
||||
<SectionErrorBoundary name="benefits">
|
||||
<FeaturesImageBento
|
||||
tag="Waarom Nexora?"
|
||||
title="Voordelen voor uw zaak"
|
||||
description="Alles wat u nodig heeft om lokaal te groeien."
|
||||
items={[{"title":"Fractie van de prijs","imageSrc":"https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&q=80&w=2611&ixlib=rb-4.0.3","description":"Slechts €900 eenmalig."},{"imageSrc":"https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&q=80&w=2672&ixlib=rb-4.0.3","title":"Live in 48 uur","description":"Razendsnelle oplevering."},{"description":"Gevonden worden in Google.","imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=2426&ixlib=rb-4.0.3","title":"SEO-klaar"},{"description":"Werkt op elk toestel.","imageSrc":"https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3","title":"Mobile-first"},{"imageSrc":"https://images.unsplash.com/photo-1450101499163-c8848c66cb85?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3","title":"100% Eigenaar","description":"Geen lock-in contract."},{"imageSrc":"https://images.unsplash.com/photo-1504384308090-c894fdcc538d?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3","title":"Optioneel onderhoud","description":"€49/maand voor service."},{"description":"Altijd bereikbaar.","title":"Snelle ondersteuning","imageSrc":"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal 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="GRATIS VOORBEELD"
|
||||
text="Start vandaag. Vraag uw gratis voorbeeld aan. Vrijblijvend en zonder kosten."
|
||||
primaryButton={{
|
||||
text: "Vraag gratis voorbeeld aan",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Bel +32 468 05 02 01",
|
||||
href: "tel:+32468050201",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="FAQ"
|
||||
title="Veelgestelde vragen"
|
||||
items={[
|
||||
{
|
||||
question: "Wat is inbegrepen in de prijs?",
|
||||
answer: "U ontvangt een volledige website met 5 pagina's, basis SEO en hosting.",
|
||||
},
|
||||
{
|
||||
question: "Hoe snel is de oplevering?",
|
||||
answer: "Binnen 48 uur na goedkeuring van het ontwerp.",
|
||||
},
|
||||
{
|
||||
question: "Ben ik eigenaar?",
|
||||
answer: "Ja, 100% eigendom. Geen lock-in.",
|
||||
},
|
||||
]}
|
||||
description="Hier vindt u antwoorden op de meest gestelde vragen."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Hero.tsx
Normal file
29
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// 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 HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardTiltedCarousel
|
||||
tag="⭐⭐⭐⭐⭐ 60+ websites opgeleverd"
|
||||
title="Professionele website voor uw zaak. Klaar in 48 uur."
|
||||
description="Eenmalig €00. U wordt eigenaar. Gevonden op Google. Geen maandverplichting."
|
||||
primaryButton={{
|
||||
text: "Vraag uw gratis voorbeeld aan",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Bekijk ons werk",
|
||||
href: "/#work",
|
||||
}}
|
||||
items={[{"imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=2426&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1507238691740-187a5b1d37b8?auto=format&fit=crop&q=80&w=2555&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&q=80&w=2672&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1522542550221-31fd19575a2d?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1481481322814-3c64d8e04871?auto=format&fit=crop&q=80&w=2669&ixlib=rb-4.0.3"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/HowItWorks.tsx
Normal file
52
src/pages/HomePage/sections/HowItWorks.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "how-it-works" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HowItWorksSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="how-it-works" data-section="how-it-works">
|
||||
<SectionErrorBoundary name="how-it-works">
|
||||
<FeaturesTaggedCards
|
||||
tag="Werkwijze"
|
||||
title="In drie stappen live"
|
||||
description="Snel, professioneel en zonder zorgen."
|
||||
items={[
|
||||
{
|
||||
tag: "Stap 01",
|
||||
title: "Gratis voorbeeld",
|
||||
description: "U vult ons formulier in. Binnen 24 uur ontvangt u een vrijblijvend voorbeeld en ",
|
||||
imageSrc: "https://images.pexels.com/photos/34140/pexels-photo.jpg?auto=compress&cs=tinysrgb&h=650&w=940&id=34140",
|
||||
primaryButton: {
|
||||
text: "Start nu",
|
||||
href: "/contact",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Stap 02",
|
||||
title: "Bouw op jouw maat",
|
||||
description: "Wij bouwen uw website razendsnel binnen 48 uur na akkoord.",
|
||||
imageSrc: "https://images.pexels.com/photos/12899151/pexels-photo-12899151.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&id=12899151",
|
||||
primaryButton: {
|
||||
text: "Bekijk proces",
|
||||
href: "/over-ons",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Stap 03",
|
||||
title: "Lancering",
|
||||
description: "We zetten de site live, optimaliseren voor Google en begeleiden u.",
|
||||
imageSrc: "https://images.pexels.com/photos/2166/flight-sky-earth-space.jpg?auto=compress&cs=tinysrgb&h=650&w=940&id=2166",
|
||||
primaryButton: {
|
||||
text: "Laten starten",
|
||||
href: "/contact",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Metrics.tsx
Normal file
21
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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 MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
title="Data gedreven resultaat"
|
||||
description="Zonder website mist u kansen. Uw concurrenten zijn u voor."
|
||||
metrics={[{"value":"72%","description":"van klanten zoekt eerst op Google.","title":"Zoekintentie","imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=2426&ixlib=rb-4.0.3","title":"Klantenverlies","description":"tot 5 nieuwe klanten per week.","value":"5x"},{"value":"100%","title":"Eigenaarschap","imageSrc":"https://images.unsplash.com/photo-1507238691740-187a5b1d37b8?auto=format&fit=crop&q=80&w=2555&ixlib=rb-4.0.3","description":"van uw volledige website."}]}
|
||||
tag="De digitale realiteit"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
58
src/pages/HomePage/sections/Pricing.tsx
Normal file
58
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
// 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
|
||||
title="Eerlijke prijs"
|
||||
description="Geen verrassingen, enkel resultaat."
|
||||
plans={[
|
||||
{
|
||||
tag: "Meest gekozen",
|
||||
price: "€900",
|
||||
period: "eenmalig",
|
||||
description: "Professionele website voor uw zaak.",
|
||||
primaryButton: {
|
||||
text: "Vraag voorbeeld aan",
|
||||
href: "/contact",
|
||||
},
|
||||
featuresTitle: "Alles inbegrepen:",
|
||||
features: [
|
||||
"Design op maat",
|
||||
"Tot 5 pagina's",
|
||||
"Mobiel-vriendelijk",
|
||||
"Basis SEO",
|
||||
"Hosting & Domein",
|
||||
"48-uur levering",
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: "Optioneel",
|
||||
price: "€49",
|
||||
period: "per maand",
|
||||
description: "Zorgeloos onderhoud voor uw website.",
|
||||
primaryButton: {
|
||||
text: "Bekijk details",
|
||||
href: "/onderhoud",
|
||||
},
|
||||
featuresTitle: "Onderhoudsservice:",
|
||||
features: [
|
||||
"Technische updates",
|
||||
"Veiligheidsbewaking",
|
||||
"Tekstwijzigingen",
|
||||
"Prioriteitsondersteuning",
|
||||
],
|
||||
},
|
||||
]}
|
||||
tag="Prijzen"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Reviews.tsx
Normal file
42
src/pages/HomePage/sections/Reviews.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "reviews" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ReviewsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="reviews" data-section="reviews">
|
||||
<SectionErrorBoundary name="reviews">
|
||||
<TestimonialTrustCard
|
||||
quote="Nexora heeft mijn zaak echt een boost gegeven. Ik krijg wekelijks nieuwe aanvragen en de website was binnen 48 uur klaar. Absoluut top!"
|
||||
rating={5}
|
||||
author="M.D. — Schildersbedrijf Antwerpen"
|
||||
avatars={[
|
||||
{
|
||||
name: "David",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bearded-man-wearing-white-shirt-looking-smiling-confident-showing-ok-sign-standing-pink-wall_141793-55819.jpg",
|
||||
},
|
||||
{
|
||||
name: "Ilya",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-posing-studio_23-2150275662.jpg",
|
||||
},
|
||||
{
|
||||
name: "Vincent",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-age-latin-businesswoman-smiling-happy-standing-with-arms-crossed-gesture-city_839833-17431.jpg",
|
||||
},
|
||||
{
|
||||
name: "L.V.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-black-suit_23-2148401442.jpg",
|
||||
},
|
||||
{
|
||||
name: "Top Wash",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-corporate-woman-young-intern-walks-street-office-holds-mobile-phone-texts_1258-119521.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/Ticker.tsx
Normal file
31
src/pages/HomePage/sections/Ticker.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "ticker" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TickerSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="ticker" data-section="ticker">
|
||||
<SectionErrorBoundary name="ticker">
|
||||
<SocialProofMarquee
|
||||
title="38+ lokale bedrijven gingen u voor"
|
||||
names={[
|
||||
"Nagelstudio Lena",
|
||||
"Schildersbedrijf De Moor",
|
||||
"Trimsalon Bello",
|
||||
"Kapperszaak Nora",
|
||||
"Schoonheidssalon Lumière",
|
||||
"Loodgieter Van den Berg",
|
||||
"Koffiedealers",
|
||||
"Bakkerij Aldo",
|
||||
"Top Wash Cleaning",
|
||||
]}
|
||||
tag="Trusted by"
|
||||
description="Samen bouwen we aan lokale online groei."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user