Maak een dynamische landingspagina voor de studio "Coddin Studio".
BELANGRIJK: De pagina moet bij het laden data ophalen van deze API endpoint:
https://caistudio.nl/api/v1/landing-page/37c582a8-3fe4-4232-a92a-3c5e035b2eab
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: Coddin Studio
Titel: Coddin Studio
Subtitel:
Beschrijving: Deze moet je kopen!
Afbeelding URL: https://caistudio.nl/images/studio/37c582a8-3fe4-4232-a92a-3c5e035b2eab?v=1764249464
Logo URL:
Eigenaar: Ardin
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: €29,99 per jaar. Checkout URL (uit API response "checkoutUrl"): https://caistudio.nl/studio/ardin/coddin-studio/checkout
Er is een gratis proefperiode van 7 dagen.
Het is een jaarlijks 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 I have everything I need. Let me build the full landing page with a dark, developer-focused aesthetic inspired by the design references.
Now let me build all the components:
Now let me write the main landing page client component and the page:
The landing page is complete! Here's what was built:
9 fully dynamic sections — all content is fetched live from the API at https://caistudio.nl/api/v1/landing-page/37c582a8-3fe4-4232-a92a-3c5e035b2eab:
data.assistants with smart icons per typedata.legalDocuments, opens in new tabKey behaviors: checkoutEnabled gates all CTA buttons (shows "Binnenkort beschikbaar" when false), assistant count is always data.assistants.length, loading/error states with retry, and the dark dev-focused design uses Inter + Geist Mono with a cyan accent color system.