Herstructureer src/ naar feature-based folderstructuur
Continuous Integration / config (pull_request) Successful in 10s
Continuous Integration / prepare (pull_request) Successful in 1m26s
Continuous Integration / build-production (pull_request) Skipped
Continuous Integration / build (pull_request) Successful in 2m6s
Continuous Integration / test (pull_request) Successful in 2m2s
Continuous Integration / deploy-production (pull_request) Skipped
Deploy / deploy (pull_request) Successful in 38s
Continuous Integration / deploy-test (pull_request) Successful in 39s
Continuous Integration / config (pull_request) Successful in 10s
Continuous Integration / prepare (pull_request) Successful in 1m26s
Continuous Integration / build-production (pull_request) Skipped
Continuous Integration / build (pull_request) Successful in 2m6s
Continuous Integration / test (pull_request) Successful in 2m2s
Continuous Integration / deploy-production (pull_request) Skipped
Deploy / deploy (pull_request) Successful in 38s
Continuous Integration / deploy-test (pull_request) Successful in 39s
Volgt de aanpak uit het React 2025 folder structure artikel en het
SlpModularCms/frontend referentieproject: components/{layout,ui,shared},
features/landing/{components,data,hooks,pages,__tests__}, en lib/ voor
de query client. routes/index.tsx wordt een dunne wrapper rond de nieuwe
features/landing/pages/LandingPage.tsx.
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
/**
|
||||
* Static site content, ported 1-to-1 from the reference designs
|
||||
* (References/slp-software.html and References/slp-software-rood.html).
|
||||
*
|
||||
* Shapes mirror the domain entities defined in
|
||||
* aidlc-docs/features/react-frontend/construction/react-frontend-app/functional-design/domain-entities.md
|
||||
*
|
||||
* This module is the current source of truth for content (requirements FR-1/FR-6).
|
||||
* It is deliberately structured so it can be swapped for TanStack Query data later
|
||||
* (see src/features/landing/hooks/usePackagesQuery.ts) with minimal changes (requirements FR-5).
|
||||
*/
|
||||
|
||||
export interface NavLink {
|
||||
label: string;
|
||||
href: string;
|
||||
isCta?: boolean;
|
||||
}
|
||||
|
||||
export interface HeroContent {
|
||||
eyebrow: string;
|
||||
heading: string;
|
||||
lead: string;
|
||||
codeLine: string;
|
||||
}
|
||||
|
||||
export interface PackageCardData {
|
||||
id: string;
|
||||
title: string;
|
||||
description: string;
|
||||
price: string;
|
||||
priceNote: string;
|
||||
features: string[];
|
||||
ctaLabel: string;
|
||||
featured?: boolean;
|
||||
}
|
||||
|
||||
export interface ProcessStepData {
|
||||
label: string;
|
||||
title: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface TechStackItem {
|
||||
label: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface AboutContent {
|
||||
paragraphs: string[];
|
||||
techStack: TechStackItem[];
|
||||
}
|
||||
|
||||
export interface ContactInfo {
|
||||
heading: string;
|
||||
description: string;
|
||||
email: string;
|
||||
mailSubject: string;
|
||||
}
|
||||
|
||||
export const navLinks: NavLink[] = [
|
||||
{ label: 'Pakketten', href: '#pakketten' },
|
||||
{ label: 'Werkwijze', href: '#werkwijze' },
|
||||
{ label: 'Over', href: '#over' },
|
||||
{ label: 'Start project', href: '#contact', isCta: true },
|
||||
];
|
||||
|
||||
export const heroContent: HeroContent = {
|
||||
eyebrow: 'Web & .NET development',
|
||||
heading: 'Software die gewoon werkt. Tegen een prijs die je vooraf kent.',
|
||||
lead: 'SLP Software bouwt snelle websites en maatwerk .NET-oplossingen voor ondernemers die geen verrassingen willen — niet in de code, niet op de factuur.',
|
||||
codeLine: 'var website = slp.Bouw(uwIdee);',
|
||||
};
|
||||
|
||||
export const packages: PackageCardData[] = [
|
||||
{
|
||||
id: 'pakket_01',
|
||||
title: 'Landingspagina',
|
||||
description: 'Eén overtuigende pagina die je product of dienst helder neerzet.',
|
||||
price: '€ 300',
|
||||
priceNote: 'eenmalig, excl. btw',
|
||||
features: [
|
||||
'Eén pagina in HTML & CSS',
|
||||
'Ontwerp op maat, geen template',
|
||||
'Responsive op elk scherm',
|
||||
'Snelle laadtijd & SEO-basis',
|
||||
],
|
||||
ctaLabel: 'Kies landingspagina',
|
||||
},
|
||||
{
|
||||
id: 'pakket_02',
|
||||
title: 'Website',
|
||||
description: "Een complete website met meerdere pagina's, klaar om te groeien.",
|
||||
price: '€ 750',
|
||||
priceNote: 'eenmalig, excl. btw',
|
||||
features: [
|
||||
"Drie pagina's in HTML & CSS",
|
||||
"Extra pagina's als optie bij te bestellen",
|
||||
"Consistente huisstijl over alle pagina's",
|
||||
'Responsive, snel & SEO-basis',
|
||||
],
|
||||
ctaLabel: 'Kies website',
|
||||
featured: true,
|
||||
},
|
||||
{
|
||||
id: 'pakket_03',
|
||||
title: 'Maatwerk',
|
||||
description: 'Grotere websites, een eigen back-end of andere .NET-projecten.',
|
||||
price: 'Op maat',
|
||||
priceNote: 'offerte na intake',
|
||||
features: [
|
||||
'Grotere websites & webapplicaties',
|
||||
'Losse back-end in .NET / C#',
|
||||
"Koppelingen & API's",
|
||||
'Advies over de beste aanpak',
|
||||
],
|
||||
ctaLabel: 'Vraag offerte aan',
|
||||
},
|
||||
];
|
||||
|
||||
export const processSteps: ProcessStepData[] = [
|
||||
{
|
||||
label: 'stap 01 — intake',
|
||||
title: 'Kennismaken',
|
||||
description:
|
||||
'We bespreken je idee, doelgroep en wensen. Je krijgt direct een eerlijk advies over welk pakket past.',
|
||||
},
|
||||
{
|
||||
label: 'stap 02 — bouwen',
|
||||
title: 'Ontwerpen & ontwikkelen',
|
||||
description:
|
||||
'Ik bouw je site of applicatie en houd je onderweg op de hoogte, zodat er geen verrassingen zijn bij oplevering.',
|
||||
},
|
||||
{
|
||||
label: 'stap 03 — live',
|
||||
title: 'Opleveren',
|
||||
description:
|
||||
'Je site gaat live en je krijgt uitleg over hoe alles werkt. Later uitbreiden? Dat kan altijd.',
|
||||
},
|
||||
];
|
||||
|
||||
export const aboutContent: AboutContent = {
|
||||
paragraphs: [
|
||||
'SLP Software is het bedrijf van een web- en .NET-ontwikkelaar die gelooft dat goede software niet ingewikkeld hoeft te voelen. Geen accountmanagers of lange trajecten: je schakelt direct met degene die je project bouwt.',
|
||||
'Van een strakke landingspagina tot een applicatie met eigen back-end — de aanpak is hetzelfde: heldere afspraken, nette code en een resultaat waar je jaren mee vooruit kunt.',
|
||||
],
|
||||
techStack: [
|
||||
{ label: 'Front-end', value: 'HTML, CSS, JavaScript' },
|
||||
{ label: 'Back-end', value: '.NET / C#' },
|
||||
{ label: "API's", value: 'REST & koppelingen' },
|
||||
{ label: 'Focus', value: 'snelheid & onderhoudbaarheid' },
|
||||
],
|
||||
};
|
||||
|
||||
export const contactInfo: ContactInfo = {
|
||||
heading: 'Klaar om te bouwen?',
|
||||
description:
|
||||
'Vertel kort wat je voor ogen hebt. Je krijgt binnen één werkdag reactie met een eerlijk advies — vrijblijvend.',
|
||||
email: 'info@slpsoftware.nl',
|
||||
mailSubject: 'Projectaanvraag',
|
||||
};
|
||||
Reference in New Issue
Block a user