Maak een dynamische landingspagina voor de studio "Focus, Flow & Ritme Studio".
BELANGRIJK: De pagina moet bij het laden data ophalen van deze API endpoint:
https://caistudio.nl/api/v1/landing-page/st_3f5f5fe8955e338fc08bdb29be4ec602
Gebruik fetch() om de data op te halen bij page load en render alle secties dynamisch op basis van de response. Hieronder staat de huidige data als referentie voor de structuur, maar de pagina moet ALTIJD live data ophalen van de API.
== API Response structuur (huidige data als voorbeeld) ==
Studio naam: Focus, Flow & Ritme Studio
Titel: Focus, Flow & Ritme Studio
Subtitel:
Beschrijving:
Afbeelding URL: https://caistudio.nl/img/CAI-robot.jpg
Logo URL:
Eigenaar: Joke Bruggenkamp / Flonker
Juridische documenten: [array van {label, url} objecten]
BELANGRIJK: De API response bevat een "checkoutEnabled" boolean. Als checkoutEnabled FALSE is, mogen er GEEN checkout/koop/aanmeld knoppen getoond worden. Toon in plaats daarvan "Binnenkort beschikbaar" of "Coming soon" als placeholder. Alle CTA knoppen die naar checkoutUrl linken moeten conditioneel zijn op basis van checkoutEnabled.
Prijs: €0,00 per maand. Checkout URL (uit API response "checkoutUrl"): https://caistudio.nl/studio/joke-bruggenkamp-flonker/focus-flow-ritme-studio/checkout
Het is een maandelijks abonnement. Dit is van groot belang dat het overal correct weergegeven wordt. Er moeten geen referenties van eenmalige betalingen of iets dergelijks in zitten.
== Assistenten (komen uit API response "assistants" array) ==
== Vereiste secties (in deze volgorde) ==
== Technische vereisten ==
data.assistants.length. Dus NIET "7 AI-assistenten" maar ${data.assistants.length} AI-assistenten.Now let me read the existing files and build the landing page:
Now I have everything I need. Let me build the complete landing page:
Now let me create all the component files and the main page:
Now let's write the main page with the data fetching logic:
The landing page is fully built. Here's a summary of what was created:
9 dynamic sections, all driven by live API data fetched from https://caistudio.nl/api/v1/landing-page/st_3f5f5fe895... on page load:
data.assistants with color-coded accent barsdata.ownerNamedata.assistants.length and data.pricecheckoutEnabled is false)legalDocuments as external linksAll CTA buttons are conditionally rendered based on checkoutEnabled, and all counts are always calculated dynamically via data.assistants.length.