feat: privacybeleid, algemene voorwaarden en cookiebanner

AVG-conform privacybeleid met Umami analytics en Google Fonts
vermelding. Algemene voorwaarden met 14 artikelen inclusief
herroepingsrecht-uitzondering (art. 6:230p lid 1 sub l BW) en
getrapt annuleringsbeleid. CookieBanner component met localStorage
persistentie. FAQ uitgebreid met annuleringsvraag.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Frank Meeuwsen 2026-02-10 11:19:29 +01:00
parent 40f49db5ac
commit c4ee40b4b3
6 changed files with 508 additions and 93 deletions

View file

@ -18,6 +18,7 @@ import FAQ from './components/FAQ';
import FinalCTA from './components/FinalCTA'; import FinalCTA from './components/FinalCTA';
import Footer from './components/Footer'; import Footer from './components/Footer';
import StickyBar from './components/StickyBar'; import StickyBar from './components/StickyBar';
import CookieBanner from './components/CookieBanner';
function App() { function App() {
return ( return (
@ -60,6 +61,9 @@ function App() {
{/* 12. Sticky Bar - verschijnt na scroll */} {/* 12. Sticky Bar - verschijnt na scroll */}
<StickyBar /> <StickyBar />
{/* 13. Cookie Banner - eenmalige melding over analytics */}
<CookieBanner />
</div> </div>
); );
} }

View file

@ -0,0 +1,72 @@
/**
* CookieBanner.jsx - Simpele cookiebanner/analytics-melding
*
* Informeert bezoekers over het gebruik van Umami analytics.
* Slaat voorkeur op in localStorage zodat de banner maar 1x verschijnt.
*/
import { useState, useEffect } from 'react';
import { Link } from 'react-router-dom';
const STORAGE_KEY = 'cookie-banner-dismissed';
function CookieBanner() {
const [visible, setVisible] = useState(false);
// Check bij laden of de banner al eerder is weggeklikt
useEffect(() => {
const dismissed = localStorage.getItem(STORAGE_KEY);
if (!dismissed) {
setVisible(true);
}
}, []);
const dismiss = () => {
localStorage.setItem(STORAGE_KEY, 'true');
setVisible(false);
};
if (!visible) return null;
return (
<div className="fixed bottom-0 left-0 right-0 z-50 p-4 sm:p-6">
<div className="max-w-3xl mx-auto bg-warm-900 text-warm-200 rounded-xl shadow-lg border border-warm-700 p-4 sm:p-5">
<div className="flex flex-col sm:flex-row items-start sm:items-center gap-4">
{/* Tekst */}
<div className="flex-1 text-sm leading-relaxed">
<p>
Deze website gebruikt{' '}
<a
href="https://umami.is"
target="_blank"
rel="noopener noreferrer"
className="text-coral-400 hover:text-coral-300 underline"
>
Umami
</a>
{' '}voor anonieme bezoekersstatistieken. Er worden geen cookies
geplaatst voor tracking en er worden geen persoonsgegevens
gedeeld met derden.{' '}
<Link
to="/privacy"
className="text-coral-400 hover:text-coral-300 underline"
>
Meer info
</Link>
</p>
</div>
{/* Knop */}
<button
onClick={dismiss}
className="flex-shrink-0 px-5 py-2 bg-coral-500 text-white text-sm font-semibold rounded-lg hover:bg-coral-600 active:bg-coral-700 transition-colors"
>
Begrepen
</button>
</div>
</div>
</div>
);
}
export default CookieBanner;

View file

@ -41,6 +41,10 @@ function FAQ() {
question: "Wat voor project ga ik bouwen?", question: "Wat voor project ga ik bouwen?",
answer: "Dat bepaal je zelf. Vooraf bespreken we kort wat voor jou relevant is. Denk aan: een simpele website, een automatisering, een tool die je dagelijks werk makkelijker maakt. We zorgen dat het haalbaar is binnen de tijd." answer: "Dat bepaal je zelf. Vooraf bespreken we kort wat voor jou relevant is. Denk aan: een simpele website, een automatisering, een tool die je dagelijks werk makkelijker maakt. We zorgen dat het haalbaar is binnen de tijd."
}, },
{
question: "Kan ik mijn geld terugkrijgen als ik niet kan komen?",
answer: "Bij annulering meer dan 14 dagen voor de workshop krijg je het volledige bedrag terug. Tussen 7 en 14 dagen voor de workshop is dat 50%. Binnen 7 dagen is geen restitutie mogelijk, maar je mag altijd iemand anders in je plaats sturen."
},
{ {
question: "Ik heb al wat ervaring met Claude. Is dit dan niet te basic?", question: "Ik heb al wat ervaring met Claude. Is dit dan niet te basic?",
answer: "De workshop begint bij de basis, maar gaat vrij snel naar de interessantere features zoals agents en skills. Je werkt aan je eigen tempo en project, dus ook met voorkennis haal je er genoeg uit." answer: "De workshop begint bij de basis, maar gaat vrij snel naar de interessantere features zoals agents en skills. Je werkt aan je eigen tempo en project, dus ook met voorkennis haal je er genoeg uit."

View file

@ -17,3 +17,4 @@ export { default as FAQ } from './FAQ';
export { default as FinalCTA } from './FinalCTA'; export { default as FinalCTA } from './FinalCTA';
export { default as Footer } from './Footer'; export { default as Footer } from './Footer';
export { default as StickyBar } from './StickyBar'; export { default as StickyBar } from './StickyBar';
export { default as CookieBanner } from './CookieBanner';

View file

@ -1,7 +1,8 @@
/** /**
* Privacy.jsx - Privacybeleid pagina * Privacy.jsx - Privacybeleid pagina
* *
* Standaard tekst die later aangepast moet worden. * AVG-conform privacybeleid voor de Claude Code Workshop.
* Bevat alle verplichte elementen conform Autoriteit Persoonsgegevens.
*/ */
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
@ -31,70 +32,194 @@ function Privacy() {
<div className="prose prose-warm max-w-none space-y-6 text-warm-700"> <div className="prose prose-warm max-w-none space-y-6 text-warm-700">
<p className="text-lg text-warm-600"> <p className="text-lg text-warm-600">
<em>Laatst bijgewerkt: [datum invullen]</em> <em>Laatst bijgewerkt: 10 februari 2026</em>
</p> </p>
<h2 className="heading-3 mt-8">1. Inleiding</h2> {/* 1. Wie zijn wij */}
<h2 className="heading-3 mt-8">1. Wie zijn wij</h2>
<p> <p>
Dit privacybeleid beschrijft hoe Frank Meeuwsen (hierna "wij", "ons" of "onze") Dit privacybeleid is van toepassing op de website en diensten van:
persoonsgegevens verzamelt, gebruikt en beschermt wanneer je onze website bezoekt </p>
of deelneemt aan onze workshops. <ul className="list-none pl-0 space-y-1">
<li><strong>Naam:</strong> Frank Meeuwsen</li>
<li><strong>KvK-nummer:</strong> [KvK-nummer invullen]</li>
<li><strong>Vestigingsplaats:</strong> [vestigingsplaats invullen]</li>
<li>
<strong>E-mail:</strong>{' '}
<a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600">
frank@frankmeeuwsen.com
</a>
</li>
</ul>
<p>
Frank Meeuwsen is de verwerkingsverantwoordelijke in de zin van de Algemene
Verordening Gegevensbescherming (AVG) voor de verwerking van persoonsgegevens
zoals beschreven in dit privacybeleid.
</p> </p>
<h2 className="heading-3 mt-8">2. Welke gegevens verzamelen wij?</h2> {/* 2. Welke gegevens verzamelen wij */}
<p>Wij kunnen de volgende persoonsgegevens verzamelen:</p> <h2 className="heading-3 mt-8">2. Welke gegevens verzamelen wij</h2>
<p>
Wanneer je je inschrijft voor een workshop of contact met ons opneemt, kunnen
wij de volgende persoonsgegevens verwerken:
</p>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li>Naam</li> <li>Voor- en achternaam</li>
<li>E-mailadres</li> <li>E-mailadres</li>
<li>Bedrijfsnaam (indien van toepassing)</li> <li>Bedrijfsnaam (indien van toepassing)</li>
<li>Facturatiegegevens</li> <li>Facturatiegegevens (adres, BTW-nummer indien van toepassing)</li>
<li>Eventuele andere informatie die je zelf aan ons verstrekt</li> <li>Inhoud van berichten die je ons stuurt</li>
</ul> </ul>
<h2 className="heading-3 mt-8">3. Waarvoor gebruiken wij je gegevens?</h2> {/* 3. Waarvoor gebruiken wij je gegevens */}
<p>Wij gebruiken je gegevens voor:</p> <h2 className="heading-3 mt-8">3. Waarvoor gebruiken wij je gegevens</h2>
<p>
Wij verwerken je persoonsgegevens voor de volgende doeleinden:
</p>
<h3 className="font-semibold text-warm-800 mt-4">Op basis van uitvoering van de overeenkomst:</h3>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li>Het verwerken van je inschrijving voor een workshop</li> <li>Het verwerken van je inschrijving voor een workshop</li>
<li>Het versturen van praktische informatie over de workshop</li> <li>Het versturen van praktische informatie over de workshop (locatie, tijd, voorbereiding)</li>
<li>Het opstellen van facturen</li> <li>Het opstellen en versturen van facturen</li>
<li>Het beantwoorden van je vragen</li> <li>Het verlenen van toegang tot workshopmateriaal en de besloten community</li>
</ul> </ul>
<h2 className="heading-3 mt-8">4. Bewaartermijn</h2> <h3 className="font-semibold text-warm-800 mt-4">Op basis van gerechtvaardigd belang:</h3>
<p>
Wij bewaren je gegevens niet langer dan noodzakelijk voor de doeleinden waarvoor
ze zijn verzameld, of zo lang als wettelijk vereist is voor de belastingadministratie.
</p>
<h2 className="heading-3 mt-8">5. Delen met derden</h2>
<p>
Wij verkopen of verhuren je gegevens niet aan derden. Wij kunnen gegevens delen
met dienstverleners die ons helpen bij het uitvoeren van onze diensten, zoals
betalingsverwerkers. Deze partijen mogen je gegevens alleen gebruiken in opdracht van ons.
</p>
<h2 className="heading-3 mt-8">6. Je rechten</h2>
<p>Je hebt het recht om:</p>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li>Inzage te vragen in je persoonsgegevens</li> <li>Het beantwoorden van vragen die je ons stelt</li>
<li>Je gegevens te laten corrigeren of verwijderen</li> <li>Het verbeteren van onze dienstverlening</li>
<li>Bezwaar te maken tegen verwerking van je gegevens</li>
<li>Je gegevens over te dragen naar een andere partij</li>
</ul> </ul>
<h2 className="heading-3 mt-8">7. Contact</h2> {/* 4. Delen met derden */}
<h2 className="heading-3 mt-8">4. Delen met derden</h2>
<p> <p>
Heb je vragen over dit privacybeleid of wil je gebruik maken van je rechten? Wij verkopen, verhuren of verstrekken je persoonsgegevens niet aan derden
Neem dan contact met ons op via{' '} voor commerciele doeleinden. Wij delen gegevens uitsluitend met partijen die
noodzakelijk zijn voor onze dienstverlening:
</p>
<ul className="list-disc pl-6 space-y-2">
<li>
<strong>Betalingsverwerker</strong> - voor het afhandelen van betalingen.
Deze partij verwerkt betaalgegevens onder eigen verantwoordelijkheid en
conform hun eigen privacybeleid.
</li>
<li>
<strong>Boekhoudpakket</strong> - voor het opstellen van facturen en
financiele administratie.
</li>
</ul>
<p>
Met partijen die in onze opdracht persoonsgegevens verwerken, sluiten wij
een verwerkersovereenkomst om een passend niveau van beveiliging en
vertrouwelijkheid te waarborgen.
</p>
{/* 5. Bewaartermijnen */}
<h2 className="heading-3 mt-8">5. Bewaartermijnen</h2>
<p>
Wij bewaren je persoonsgegevens niet langer dan noodzakelijk voor het doel
waarvoor ze zijn verzameld:
</p>
<ul className="list-disc pl-6 space-y-2">
<li>
<strong>Factuur- en betaalgegevens:</strong> 7 jaar na het boekjaar
(wettelijke fiscale bewaarplicht).
</li>
<li>
<strong>Inschrijfgegevens en correspondentie:</strong> gedurende de
duur van de klantrelatie en maximaal 2 jaar daarna, tenzij er een
wettelijke bewaarplicht geldt.
</li>
</ul>
{/* 6. Beveiliging */}
<h2 className="heading-3 mt-8">6. Beveiliging</h2>
<p>
Wij nemen passende technische en organisatorische maatregelen om je
persoonsgegevens te beschermen tegen ongeoorloofde toegang, verlies of
onrechtmatige verwerking. Denk hierbij aan versleutelde verbindingen
(HTTPS), beveiligde opslag en beperkte toegang tot gegevens.
</p>
{/* 7. Je rechten */}
<h2 className="heading-3 mt-8">7. Je rechten</h2>
<p>
Op grond van de AVG heb je de volgende rechten met betrekking tot je
persoonsgegevens:
</p>
<ul className="list-disc pl-6 space-y-2">
<li><strong>Inzage</strong> - je mag opvragen welke gegevens wij van je verwerken</li>
<li><strong>Correctie</strong> - je mag onjuiste gegevens laten aanpassen</li>
<li><strong>Verwijdering</strong> - je mag vragen je gegevens te wissen (tenzij er een wettelijke bewaarplicht geldt)</li>
<li><strong>Bezwaar</strong> - je mag bezwaar maken tegen bepaalde verwerkingen</li>
<li><strong>Overdraagbaarheid</strong> - je mag vragen je gegevens in een gangbaar formaat te ontvangen</li>
<li><strong>Beperking</strong> - je mag vragen de verwerking tijdelijk te beperken</li>
</ul>
<p>
Je kunt je rechten uitoefenen door een e-mail te sturen naar{' '}
<a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600"> <a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600">
frank@frankmeeuwsen.com frank@frankmeeuwsen.com
</a>. </a>
. Wij reageren binnen 4 weken op je verzoek.
</p>
<p>
Daarnaast heb je het recht een klacht in te dienen bij de{' '}
<a
href="https://www.autoriteitpersoonsgegevens.nl"
target="_blank"
rel="noopener noreferrer"
className="text-coral-500 hover:text-coral-600"
>
Autoriteit Persoonsgegevens
</a>
, de Nederlandse toezichthouder op het gebied van privacybescherming.
</p> </p>
<h2 className="heading-3 mt-8">8. Wijzigingen</h2> {/* 8. Cookies en analytics */}
<h2 className="heading-3 mt-8">8. Cookies en analytics</h2>
<h3 className="font-semibold text-warm-800 mt-4">Website-analytics</h3>
<p> <p>
Wij behouden ons het recht voor dit privacybeleid te wijzigen. Wijzigingen worden Wij gebruiken Umami voor het bijhouden van anonieme bezoekersstatistieken.
op deze pagina gepubliceerd. Umami draait op onze eigen server (gehost bij Hetzner in Duitsland, binnen
de EU). Umami werkt zonder cookies en verzamelt geen persoonsgegevens. Er
worden geen gegevens gedeeld met derden. Wij zien alleen geaggregeerde
statistieken zoals paginaweergaven en verwijzende websites.
</p>
<h3 className="font-semibold text-warm-800 mt-4">Google Fonts</h3>
<p>
Deze website maakt gebruik van Google Fonts voor het laden van lettertypen.
Bij het bezoeken van de website wordt een verbinding gemaakt met servers van
Google (fonts.googleapis.com en fonts.gstatic.com), waarbij je IP-adres
kan worden doorgegeven aan Google. Google heeft een eigen privacybeleid
voor deze dienst. Wij hebben geen invloed op de gegevensverwerking door Google.
</p>
<h3 className="font-semibold text-warm-800 mt-4">Overige cookies</h3>
<p>
Deze website plaatst geen marketing- of tracking cookies. De enige lokale
opslag die wij gebruiken is voor het onthouden van je cookiebanner-voorkeur.
</p>
{/* 9. Wijzigingen */}
<h2 className="heading-3 mt-8">9. Wijzigingen</h2>
<p>
Wij behouden ons het recht voor dit privacybeleid te wijzigen. De meest
actuele versie is altijd beschikbaar op deze pagina. Bij substantiele
wijzigingen zullen wij je hierover informeren.
</p>
{/* 10. Contact */}
<h2 className="heading-3 mt-8">10. Contact</h2>
<p>
Heb je vragen over dit privacybeleid of wil je gebruik maken van je rechten?
Neem dan contact op via{' '}
<a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600">
frank@frankmeeuwsen.com
</a>
.
</p> </p>
</div> </div>
</div> </div>

View file

@ -1,7 +1,9 @@
/** /**
* Terms.jsx - Algemene Voorwaarden pagina * Terms.jsx - Algemene Voorwaarden pagina
* *
* Standaard tekst die later aangepast moet worden. * Juridisch onderbouwde voorwaarden voor de Claude Code Workshop.
* Bevat herroepingsrecht-uitzondering (art. 6:230p lid 1 sub l BW),
* getrapt annuleringsbeleid, en aansprakelijkheidsbeperking.
*/ */
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
@ -31,87 +33,294 @@ function Terms() {
<div className="prose prose-warm max-w-none space-y-6 text-warm-700"> <div className="prose prose-warm max-w-none space-y-6 text-warm-700">
<p className="text-lg text-warm-600"> <p className="text-lg text-warm-600">
<em>Laatst bijgewerkt: [datum invullen]</em> <em>Laatst bijgewerkt: 10 februari 2026</em>
</p> </p>
{/* Artikel 1 */}
<h2 className="heading-3 mt-8">Artikel 1 - Definities</h2> <h2 className="heading-3 mt-8">Artikel 1 - Definities</h2>
<p>In deze algemene voorwaarden wordt verstaan onder:</p> <p>In deze algemene voorwaarden wordt verstaan onder:</p>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li><strong>Aanbieder:</strong> Frank Meeuwsen, gevestigd te [vestigingsplaats], KvK-nummer [nummer]</li> <li>
<li><strong>Deelnemer:</strong> de natuurlijke of rechtspersoon die deelneemt aan een workshop</li> <strong>Aanbieder:</strong> Frank Meeuwsen, gevestigd te [vestigingsplaats],
<li><strong>Workshop:</strong> de Claude Code Hands-on Sessie zoals aangeboden op deze website</li> ingeschreven bij de Kamer van Koophandel onder nummer [KvK-nummer].
</li>
<li>
<strong>Deelnemer:</strong> de natuurlijke persoon of rechtspersoon die zich
inschrijft voor een workshop.
</li>
<li>
<strong>Workshop:</strong> de Claude Code Hands-on Sessie zoals aangeboden op
deze website, inclusief alle bijbehorende materialen en diensten.
</li>
<li>
<strong>Overeenkomst:</strong> de overeenkomst tussen aanbieder en deelnemer
met betrekking tot deelname aan een workshop.
</li>
</ul> </ul>
{/* Artikel 2 */}
<h2 className="heading-3 mt-8">Artikel 2 - Toepasselijkheid</h2> <h2 className="heading-3 mt-8">Artikel 2 - Toepasselijkheid</h2>
<ul className="list-disc pl-6 space-y-2">
<li>
Deze algemene voorwaarden zijn van toepassing op alle aanbiedingen,
offertes en overeenkomsten met betrekking tot workshops van de aanbieder.
</li>
<li>
Door inschrijving voor een workshop verklaart de deelnemer kennis te
hebben genomen van deze voorwaarden en hiermee akkoord te gaan.
</li>
<li>
Afwijkingen van deze voorwaarden zijn alleen geldig indien schriftelijk
overeengekomen.
</li>
</ul>
{/* Artikel 3 */}
<h2 className="heading-3 mt-8">Artikel 3 - Inschrijving en overeenkomst</h2>
<ul className="list-disc pl-6 space-y-2">
<li>
Inschrijving voor een workshop geschiedt via het inschrijfformulier op de
website of per e-mail.
</li>
<li>
Na inschrijving ontvangt de deelnemer een bevestiging per e-mail.
</li>
<li>
De overeenkomst komt tot stand op het moment dat de aanbieder de inschrijving
bevestigt. De inschrijving is definitief na ontvangst van de betaling.
</li>
<li>
De aanbieder behoudt zich het recht voor een inschrijving zonder opgaaf van
reden te weigeren. In dat geval wordt een eventueel betaald bedrag volledig
terugbetaald.
</li>
</ul>
{/* Artikel 4 */}
<h2 className="heading-3 mt-8">Artikel 4 - Prijs en betaling</h2>
<ul className="list-disc pl-6 space-y-2">
<li>
De workshopprijs bedraagt EUR 399,- per persoon, exclusief BTW.
</li>
<li>
Betaling dient voorafgaand aan de workshop te geschieden via de aangegeven
betaalmethode.
</li>
<li>
Na ontvangst van de betaling ontvangt de deelnemer een factuur.
</li>
<li>
Alle genoemde prijzen zijn onder voorbehoud van kennelijke fouten. Aan
druk- en zetfouten kunnen geen rechten worden ontleend.
</li>
</ul>
{/* Artikel 5 */}
<h2 className="heading-3 mt-8">Artikel 5 - Herroepingsrecht</h2>
<p> <p>
Deze algemene voorwaarden zijn van toepassing op alle aanbiedingen, overeenkomsten en De workshop vindt plaats op een vooraf vastgestelde datum en tijdstip. Op
leveringen van workshops door de aanbieder. grond van artikel 6:230p lid 1 sub l van het Burgerlijk Wetboek is het
herroepingsrecht (bedenktijd van 14 dagen) niet van toepassing op diensten
met betrekking tot vrijetijdsbesteding waarbij in de overeenkomst een
bepaald tijdstip van nakoming is voorzien.
</p>
<p>
Dit betekent dat je na inschrijving geen beroep kunt doen op het wettelijke
herroepingsrecht. Wel geldt het annuleringsbeleid zoals beschreven in
artikel 6.
</p> </p>
<h2 className="heading-3 mt-8">Artikel 3 - Inschrijving</h2> {/* Artikel 6 */}
<h2 className="heading-3 mt-8">Artikel 6 - Annulering door deelnemer</h2>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li>Inschrijving voor een workshop geschiedt via het inschrijfformulier op de website.</li> <li>
<li>Na inschrijving ontvang je een bevestiging per e-mail.</li> Bij annulering meer dan 14 dagen voor de workshopdatum: volledige
<li>De inschrijving is definitief na ontvangst van de betaling.</li> restitutie van het betaalde bedrag.
</li>
<li>
Bij annulering tussen 7 en 14 dagen voor de workshopdatum: 50% restitutie
van het betaalde bedrag.
</li>
<li>
Bij annulering minder dan 7 dagen voor de workshopdatum: geen restitutie.
</li>
<li>
Je mag altijd en zonder extra kosten een vervangende deelnemer aanmelden.
Geef dit uiterlijk 24 uur voor de workshop aan ons door.
</li>
<li>
Annulering dient schriftelijk te gebeuren per e-mail aan{' '}
<a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600">
frank@frankmeeuwsen.com
</a>
. De datum van ontvangst van de e-mail geldt als annuleringsdatum.
</li>
<li>
Restitutie vindt plaats binnen 14 dagen na de annuleringsdatum.
</li>
</ul> </ul>
<h2 className="heading-3 mt-8">Artikel 4 - Betaling</h2> {/* Artikel 7 */}
<h2 className="heading-3 mt-8">Artikel 7 - Annulering of wijziging door aanbieder</h2>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li>De workshopprijs is 449,- excl. BTW per deelnemer.</li> <li>
<li>Betaling dient vooraf te geschieden via de aangegeven betaalmethode.</li> De aanbieder behoudt zich het recht voor een workshop te annuleren bij
<li>Na ontvangst van de betaling ontvang je een factuur.</li> onvoldoende aanmeldingen of andere zwaarwegende redenen.
</li>
<li>
In geval van annulering door de aanbieder ontvangt de deelnemer het
volledige bedrag terug, of kan de deelnemer kosteloos deelnemen aan een
volgende workshopdatum.
</li>
<li>
De aanbieder behoudt zich het recht voor de workshopdatum, -locatie of
-tijden te wijzigen. Deelnemers worden hiervan zo spoedig mogelijk op de
hoogte gesteld. Bij een datumwijziging heeft de deelnemer het recht
kosteloos te annuleren.
</li>
</ul> </ul>
<h2 className="heading-3 mt-8">Artikel 5 - Annulering door deelnemer</h2> {/* Artikel 8 */}
<ul className="list-disc pl-6 space-y-2"> <h2 className="heading-3 mt-8">Artikel 8 - Overmacht</h2>
<li>Bij annulering tot 14 dagen voor de workshop: volledige restitutie.</li>
<li>Bij annulering tussen 14 en 7 dagen voor de workshop: 50% restitutie.</li>
<li>Bij annulering binnen 7 dagen voor de workshop: geen restitutie.</li>
<li>Je mag altijd een vervangende deelnemer aanmelden.</li>
</ul>
<h2 className="heading-3 mt-8">Artikel 6 - Annulering door aanbieder</h2>
<p> <p>
De aanbieder behoudt zich het recht voor een workshop te annuleren bij onvoldoende In geval van overmacht is de aanbieder niet gehouden tot het nakomen van
deelnemers of overmacht. In dat geval ontvang je het volledige bedrag terug of kun enige verplichting. Onder overmacht wordt verstaan elke omstandigheid buiten
je kosteloos verplaatsen naar een volgende datum. de wil van de aanbieder, waaronder maar niet beperkt tot:
</p>
<ul className="list-disc pl-6 space-y-2">
<li>Ziekte of arbeidsongeschiktheid van de trainer</li>
<li>Onbeschikbaarheid van de workshoplocatie</li>
<li>Overheidsmaatregelen</li>
<li>Extreme weersomstandigheden</li>
<li>Storingen in de stroomvoorziening of internetverbinding</li>
</ul>
<p>
Bij overmacht zal de aanbieder zich inspannen een passend alternatief te
bieden, zoals een nieuwe workshopdatum. Indien dat niet mogelijk is, ontvangt
de deelnemer het volledige bedrag terug.
</p> </p>
<h2 className="heading-3 mt-8">Artikel 7 - Aansprakelijkheid</h2> {/* Artikel 9 */}
<h2 className="heading-3 mt-8">Artikel 9 - Uitvoering van de workshop</h2>
<ul className="list-disc pl-6 space-y-2"> <ul className="list-disc pl-6 space-y-2">
<li>De aanbieder is niet aansprakelijk voor schade die voortvloeit uit het gebruik van de tijdens de workshop opgedane kennis.</li> <li>
<li>De aanbieder is niet aansprakelijk voor verlies, diefstal of beschadiging van persoonlijke eigendommen tijdens de workshop.</li> De aanbieder voert de workshop naar beste inzicht en vermogen uit
(inspanningsverplichting). Er wordt geen specifiek resultaat gegarandeerd.
</li>
<li>
De inhoud van de workshop kan afwijken van de beschrijving op de website
indien dit in het belang is van de kwaliteit of actualiteit van de workshop.
</li>
<li>
De deelnemer is zelf verantwoordelijk voor het meenemen van een werkende
laptop en het vooraf aanmaken van een Claude Pro of Max account.
</li>
<li>
De deelnemer ontvangt vooraf instructies voor de voorbereiding. Het niet
opvolgen van deze instructies kan van invloed zijn op het resultaat van de
workshop.
</li>
</ul> </ul>
<h2 className="heading-3 mt-8">Artikel 8 - Intellectueel eigendom</h2> {/* Artikel 10 */}
<p> <h2 className="heading-3 mt-8">Artikel 10 - Aansprakelijkheid</h2>
Alle door de aanbieder verstrekte materialen zijn uitsluitend bedoeld voor eigen <ul className="list-disc pl-6 space-y-2">
gebruik van de deelnemer. Het is niet toegestaan deze materialen te delen, <li>
verveelvoudigen of commercieel te gebruiken zonder schriftelijke toestemming. De totale aansprakelijkheid van de aanbieder is beperkt tot het bedrag dat
</p> de deelnemer voor de betreffende workshop heeft betaald.
</li>
<li>
De aanbieder is niet aansprakelijk voor indirecte schade, gevolgschade,
gederfde winst of gemiste besparingen.
</li>
<li>
De aanbieder is niet aansprakelijk voor schade die voortvloeit uit het
toepassen van de tijdens de workshop opgedane kennis en vaardigheden.
</li>
<li>
De aanbieder is niet aansprakelijk voor verlies, diefstal of beschadiging
van persoonlijke eigendommen van de deelnemer tijdens de workshop.
</li>
<li>
De deelnemer is zelf verantwoordelijk voor de software en bestanden op
de eigen laptop. De aanbieder is niet aansprakelijk voor eventuele schade
aan of verlies van data.
</li>
</ul>
<h2 className="heading-3 mt-8">Artikel 9 - Privacy</h2> {/* Artikel 11 */}
<h2 className="heading-3 mt-8">Artikel 11 - Intellectueel eigendom</h2>
<ul className="list-disc pl-6 space-y-2">
<li>
Alle door de aanbieder verstrekte materialen (presentaties, werkboek,
oefeningen, code-voorbeelden) zijn en blijven intellectueel eigendom van
de aanbieder.
</li>
<li>
De deelnemer verkrijgt een persoonlijk, niet-overdraagbaar gebruiksrecht
op de verstrekte materialen, uitsluitend voor eigen gebruik.
</li>
<li>
Het is niet toegestaan workshopmateriaal te delen, te verveelvoudigen, te
publiceren of commercieel te gebruiken zonder schriftelijke toestemming van
de aanbieder.
</li>
<li>
Het is niet toegestaan de workshop of delen daarvan op te nemen (audio of
video) zonder voorafgaande schriftelijke toestemming.
</li>
<li>
Het project dat de deelnemer tijdens de workshop bouwt, is eigendom van de
deelnemer.
</li>
</ul>
{/* Artikel 12 */}
<h2 className="heading-3 mt-8">Artikel 12 - Privacy</h2>
<p> <p>
De aanbieder verwerkt persoonsgegevens conform het privacybeleid zoals beschreven De aanbieder verwerkt persoonsgegevens conform de Algemene Verordening
Gegevensbescherming (AVG). Het volledige privacybeleid is te raadplegen
op{' '} op{' '}
<Link to="/privacy" className="text-coral-500 hover:text-coral-600"> <Link to="/privacy" className="text-coral-500 hover:text-coral-600">
de privacy pagina de privacy pagina
</Link>. </Link>
.
</p> </p>
<h2 className="heading-3 mt-8">Artikel 10 - Klachten</h2> {/* Artikel 13 */}
<p> <h2 className="heading-3 mt-8">Artikel 13 - Klachten</h2>
Klachten over de workshop dienen binnen 14 dagen na afloop schriftelijk te worden <ul className="list-disc pl-6 space-y-2">
ingediend via{' '} <li>
<a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600"> Klachten over de workshop dienen binnen 14 dagen na de workshopdatum
frank@frankmeeuwsen.com schriftelijk te worden ingediend via{' '}
</a>. <a href="mailto:frank@frankmeeuwsen.com" className="text-coral-500 hover:text-coral-600">
</p> frank@frankmeeuwsen.com
</a>
.
</li>
<li>
De aanbieder zal binnen 14 dagen na ontvangst van de klacht reageren
met een inhoudelijke reactie.
</li>
</ul>
<h2 className="heading-3 mt-8">Artikel 11 - Toepasselijk recht</h2> {/* Artikel 14 */}
<p> <h2 className="heading-3 mt-8">Artikel 14 - Toepasselijk recht en geschillen</h2>
Op deze algemene voorwaarden en alle overeenkomsten is Nederlands recht van toepassing. <ul className="list-disc pl-6 space-y-2">
</p> <li>
Op deze algemene voorwaarden en alle overeenkomsten tussen aanbieder en
deelnemer is Nederlands recht van toepassing.
</li>
<li>
Partijen zullen eerst proberen geschillen in onderling overleg op te
lossen alvorens een beroep te doen op de rechter.
</li>
<li>
Geschillen die niet in onderling overleg kunnen worden opgelost, worden
voorgelegd aan de bevoegde rechter in het arrondissement van de
vestigingsplaats van de aanbieder.
</li>
</ul>
</div> </div>
</div> </div>
</main> </main>