ECLI:NL:RBGEL:2022:3189

Rechtbank Gelderland

Datum uitspraak
22 juni 2022
Publicatiedatum
23 juni 2022
Zaaknummer
C/05/392643 / HZ ZA 21-297
Instantie
Rechtbank Gelderland
Type
Uitspraak
Procedures
  • Op tegenspraak
Vindplaatsen
  • Rechtspraak.nl
AI samenvatting door LexboostAutomatisch gegenereerd

Wanprestatie in de context van hostingovereenkomst en de verplichtingen van de hostingdienstverlener

In deze zaak heeft de Rechtbank Gelderland op 22 juni 2022 uitspraak gedaan in een geschil tussen een e-commercebedrijf, eiseres, en een hostingdienstverlener, gedaagde. Eiseres vorderde schadevergoeding en ontbinding van de overeenkomst op grond van wanprestatie, omdat de webshop van eiseres niet naar behoren functioneerde. Eiseres stelde dat gedaagde toerekenbaar tekortgeschoten was in de nakoming van haar verplichtingen, met name door het leveren van een onvoldoende serverconfiguratie voor de hosting van de webshop, die draait op het e-commerceplatform Magento.

De rechtbank heeft vastgesteld dat gedaagde de overeenkomst is nagekomen door de in de offerte genoemde servers te leveren en de website daarop te hosten. Eiseres heeft onvoldoende onderbouwd dat gedaagde niet heeft voldaan aan haar verplichtingen. De rechtbank oordeelde dat de traagheid van de webshop niet het gevolg was van de servers, maar van structurele problemen in de code van de webshop, die niet onder de verantwoordelijkheid van gedaagde vielen. Eiseres had onvoldoende bewijs geleverd dat gedaagde haar zorgplicht had geschonden of dat zij verplicht was om de problemen in de code op te lossen.

De rechtbank heeft de vorderingen van eiseres afgewezen en haar in de proceskosten veroordeeld. Dit vonnis benadrukt de verantwoordelijkheden van hostingdienstverleners en de noodzaak voor klanten om duidelijk te zijn over hun verwachtingen en de voorwaarden van de dienstverlening.

Uitspraak

vonnis

RECHTBANK GELDERLAND

Team kanton en handelsrecht
Zittingsplaats Zutphen
zaaknummer / rolnummer: C/05/392643 / HZ ZA 21-297
Vonnis van 22 juni 2022
in de zaak van
de vennootschap onder firma
[eiseres],
gevestigd te [vestigingsplaats] , gemeente [vestigingsplaats] ,
eiseres,
advocaten mrs. M.A.F. Evers en R.A. van Boekel te Eindhoven,
tegen
de besloten vennootschap met beperkte aansprakelijkheid
[gedaagde],
gevestigd te [vestigingsplaats] ,
gedaagde,
advocaten mrs. V. van Druenen en S. Hartogh te Amsterdam.
Partijen zullen hierna [eiseres] en [gedaagde] worden genoemd.

1.De procedure

1.1.
Het verloop van de procedure blijkt uit het proces-verbaal van mondelinge behandeling van 10 mei 2022.
1.2.
Vervolgens is vonnis bepaald.

2.De feiten

2.1.
[eiseres] is een e-commercebedrijf dat zich richt op de verkoop van ruitersportartikelen door middel van één van de grootste online ruitershops van Europa.
2.2.
[gedaagde] houdt zich bezig met dienstverlening op het gebied van webhosting, domeinregistratie en internet, alsmede de in- en verkoop van automatiseringsproducten, computers, randapparatuur en software.
2.3.
De webshop van [eiseres] draait op een e-commerceplatform genaamd Magento. De webshop is gebouwd en werd oorspronkelijk gehost door een derde partij.
2.4.
In 2017 besloot [eiseres] over te stappen naar een andere webhost, omdat zij de webhosting separaat en rechtstreeks wilde laten uitvoeren door een specialist, in plaats van via een webbouwer. In dit verband is zij in contact gekomen met [gedaagde] .
2.5.
Op 11 oktober 2017 heeft een kennismakingsgesprek plaatsgevonden tussen [eiseres] en [gedaagde] .
2.6.
Bij e-mail van 13 oktober 2017 om 17:10:11 uur (productie 4 bij dagvaarding) heeft [gedaagde] aan [eiseres] bericht:
“(…)
Ik heb even overleg gehad met [naam] en wil toch graag even een offerte hebben gedaan voor twee servers:
- (…)
- Magento
Beide servers omvatten ruimte en werkgeheugen naar inschatting, beheer en monitoring (inclusief updates, storingsnummer, advies, migratie)(…)
De offerte betreft een inschatting zonder dat ik echt input heb van wat er werkelijk nodig is. Ik kan er dus boven zitten, maar ook onder. Met meer informatie kan ik dit uiteraard bijschaven.
We werken niet met papieren contracten (wel op aanvraag uiteraard) en je kunt desgewenst akkoord geven via onderstaande link:
(…)
Al onze overeenkomsten zijn per maand opzegbaar en te wijzigen. Je zit dus nergens lang aan vast en we kunnen per maand bepalen of de juiste specificaties worden afgenomen. We zijn daarin heel flexibel, denken mee en monitoren de boel goed.
(…)”
2.7.
Productie 5 bij dagvaarding betreft een schermafdruk van de website van [gedaagde] , waarop onder meer het volgende staat vermeld:
“(…)
Hieronder treft u een overzicht aan van de producten op de door ons verstrekte offerte. Om de offerte af te ronden vragen wij u de offerte te controleren, de algemene voorwaarden te lezen en vervolgens op “bestelling plaatsen” te klikken.
Debiteur gegevens
[eiseres] – [naam]
(…)
Product gegevens
Managed Servers
Product Termijn Prijs Totaal
Managed Server/(…)
akeneo(…) (…) (…) (…)
20x Backups (GB)(…) (…)
2x CPU (cores)(…) (…)
2x Memory (GB)(…) (…)
SLA 24/7(…) (…)
20x Storage (GB)(…) (…)
Managed Server/(…)
magento(…) (…) (…) (…)
50x Backups (GB)(…) (…)
8x CPU (cores)(…) (…)
8x Memory (GB)(…) (…)
SLA 24/7(…) (…)
50x Storage (GB)(…) (…)
(…)
TOTAAL (Exclusief BTW)(…)
Ik ga akkoord met de algemene voorwaarden
Bestelling plaatsen
(…)”
2.8.
Productie 3 bij antwoord betreft een schermafdruk uit het administratiesysteem van [gedaagde] met daarop een lijst van bestellingen die zijn gedaan door [eiseres] . Deze luidt onder meer:
“(…)
Bestelling Datum offerte Datum akkoord Status(…)
(…)
20738 vr 13 okt 2017 17:08:19 za 14 okt 2017 07:30:36 Complete
2.9.
Op 14 oktober 2017 om 07:34:45 uur heeft [eiseres] aan [gedaagde] gemaild (eveneens productie 4 bij dagvaarding):
“(…)
Bestelling is ontvangen en akkoord.(…)”
2.10.
De algemene voorwaarden van [gedaagde] (productie 21 bij dagvaarding) luiden onder meer als volgt:
“(…)
Artikel 2. Uitvoering van de overeenkomst
(…)
2.2
[gedaagde] zal zich inspannen om kwalitatief goede en ononderbroken beschikbaarheid van Diensten en daarbij behorende systemen en netwerken te realiseren, en om toegang tot door Klant hiermee opgeslagen gegevens te realiseren. [gedaagde] biedt echter geen garanties over kwaliteit of beschikbaarheid, tenzij anders is overeengekomen in de offerte middels een als zodanig aangeduide Service Level Agreement (SLA).
(…)
Artikel 3. Verplichtingen van Klant
3.1
Klant is gehouden om al datgene te doen en laten wat redelijkerwijs nodig en wenselijk is om een tijdige en juiste uitvoering van de Overeenkomst mogelijk te maken.(…)
3.2
Indien Klant weet of kan vermoeden dat [gedaagde] bepaalde (extra) maatregelen zal moeten treffen om aan diens verplichtingen te kunnen voldoen, zal Klant [gedaagde] daarvan onverwijld op de hoogte stellen. Deze verplichting geldt bijvoorbeeld als Klant weet of behoort te voorzien dat er een buitengewone piek in belasting van de systemen van [gedaagde] zal ontstaan, die in enige waarschijnlijkheid onbeschikbaarheid van de Diensten zou kunnen veroorzaken.
(…)
Artikel 13. Duur en opzegging
13.1
De duur van de Overeenkomst is die tijdsspanne die nodig is om de Diensten te leveren. Indien de Overeenkomst een Abonnement is, is deze aangegaan voor onbepaalde tijd.
13.2
Elk der partijen mag een Overeenkomst die voor onbepaalde tijd is aangegaan, opzeggen met inachtneming van een opzegtermijn van 30 dagen.
(…)”
Artikel 10 van de algemene voorwaarden bevat een beperking van de aansprakelijkheid van [gedaagde] voor directe schade van de Klant tot een bedrag van € 10.000,00 en uitsluiting van aansprakelijkheid voor indirecte schade, gevolgschade, gederfde winst, gemiste besparingen en schade door bedrijfsstagnatie. Een ingebrekestelling moet volgens deze bepaling binnen 30 dagen na ontdekking van de schade worden uitgebracht.
2.11.
[gedaagde] heeft aan [eiseres] een zogenoemde virtual server geleverd. Daarbij worden op één hardwarematige server meerdere virtuele servers ingericht, waardoor al deze virtuele servers gezamenlijk gebruik maken van de capaciteit van de hardwarematige server. Verder heeft [gedaagde] aan [eiseres] hostingdiensten verleend ten behoeve van de webshop.
2.12.
Over de periode december 2017 tot en met februari 2020 heeft [gedaagde] in verband met haar werkzaamheden facturen gestuurd aan [eiseres] . [eiseres] heeft alle facturen betaald.
2.13.
Na de start van de werkzaamheden door [gedaagde] bleek dat de website van [eiseres] op de server niet naar behoren – want te traag – werkte.
2.14.
Per 1 maart 2018 is [eiseres] overgestapt naar een nieuwe webbouwer: [naam webbouwer 1] (hierna: [naam webbouwer 1] ). [naam webbouwer 1] assisteert [eiseres] bij de exploitatie van haar website. Zij heeft vastgesteld dat sprake was van zodanig grote problemen in de code van de webshop, dat de code moest worden herschreven. [eiseres] heeft [naam webbouwer 1] daarom opdracht gegeven een nieuwe webshop te bouwen, die in mei 2018 live zou gaan.
2.15.
Bij e-mail van 13 maart 2018 (productie 10 bij antwoord) heeft [naam webbouwer 1] aan [gedaagde] geschreven:
“(…)
Wij zijn zoals jullie weten als partij verantwoordelijk voor de [eiseres] webshop sinds 1 maart. Wij zijn bezig met het nodige onderzoek en zouden daarom ook een overzicht willen van de huidige server specificaties en configuratie om dit ook tegen het licht te houden en mogelijk uit te breiden bij jullie bijvoorbeeld met een separate database server. Kunnen jullie ons hierin voorzien?
(…)”
2.16.
Bij e-mail van 3 april 2018 (productie 7 bij dagvaarding) heeft [naam webbouwer 1] aan [gedaagde] bericht dat zij “
voor 12.00 uur een oplossing willen hebben” voor de problemen met de server en dat zij “
zaken niet functionerend krijgen op jullie server maar wel op een interne server”.
2.17.
Bij e-mail van 9 april 2018 (productie 7 bij antwoord) heeft [gedaagde] aan [eiseres] onder meer geschreven:
“(…)
Wij krijgen regelmatig storingsmeldingen over [adres webshop eiseres] Zoals je weet zijn wij daar al lang mee bezig maar ligt de oplossing van deze problemen in wijzigingen aan de website. Door deze meldingen worden wij ’s nachts soms ook wakker gebeld terwijl wij niks kunnen doen om het probleem structureel op te lossen. Wij hebben nu een script gemaakt die ervoor zorgt dat de queries die de problemen veroorzaken zo veel mogelijk automatisch onderbroken worden. Dat is op dit moment het maximale wat wij kunnen doen zonder dat er wijzigingen aan de website gemaakt worden.
(…)”
2.18.
Naar aanleiding van de problemen heeft [gedaagde] meermaals de specificaties van de server en haar werkzaamheden voor [eiseres] opgeschaald.
2.19.
Medio mei 2018 is de nieuwe webshop van [eiseres] live gegaan.
2.20.
Bij e-mail van 25 februari 2019 (productie 9 bij dagvaarding) heeft [naam webbouwer 1] aan [gedaagde] bericht:

Beste [gedaagde] ,
Wij ervaren slechte bereikbaarheid van de [eiseres] Magento server. CloudFlare geeft een 502 error.(…)”
2.21.
Bij e-mail van 4 april 2019 (eveneens productie 9 bij dagvaarding) heeft [gedaagde] aan [naam webbouwer 1] bericht dat zij de server heeft bekeken en twee plekken ziet waar direct een optimalisatie kan worden doorgevoerd. Bij de tweede optimalisatiemogelijkheid staat vermeld dat deze “
sowieso de performance [zal] verbeteren”.
2.22.
Bij e-mail van 2 juli 2019 (eveneens productie 9 bij dagvaarding) heeft [naam webbouwer 1] aan [gedaagde] onder meer meegedeeld dat “
de gedane server aanpassing door [gedaagde] niet zijn effect [lijkt] te hebben”.
2.23.
Medio 2019 heeft [eiseres] [naam onderzoeker] (hierna: [naam onderzoeker] ) ingeschakeld. [naam onderzoeker] zou onder meer onderzoek doen naar de problemen en zij zou [naam webbouwer 1] aansturen in de verbeteringen die uit het onderzoek naar voren zouden komen. Ook zou [naam onderzoeker] een rol spelen in de communicatie tussen [eiseres] en [naam webbouwer 1] . Een ongedateerde, niet ondertekende, schriftelijke verklaring van de eigenaar van [naam onderzoeker] (productie 22 bij antwoord) vermeldt onder meer het volgende:
“(…)
Uit het onderzoek dat volgde kwamen verschillende grote en kleine verbeterpunten. Sommige kleine punten hadden betrekking tot de hosting en werden opgelost door [gedaagde] , andere punten hadden betrekking tot de code en de werkwijze van [naam webbouwer 1] , er bleken verder ook nog problemen in de code te zitten die geschreven was door een werknemer van [eiseres] , problemen in aangekochte modules van derden, een aantal bugs in de code van Magento 2 zorgde ook voor problemen en weer andere punten hadden betrekking tot de druk die er was vanuit [eiseres] om aanpassingen zo snel mogelijk door te voeren (begrijpelijk overigens aangezien ze al zo lang tegen problemen aanliepen, maar naar mijn idee niet altijd helpend). Over het geheel bleek voornamelijk dat er niet gestructureerd werd gewerkt aan oplossingen waardoor regelmatig het ene probleem opgelost werd, maar het volgende probleem alweer ontstond of oude problemen opnieuw terugkwamen.
(…)
In de daarop volgende maanden heb ik in samenwerking met [eiseres] , [naam webbouwer 1] en [gedaagde] geprobeerd op een gestructureerde manier naar een oplossing voor de problemen te werken.(…)
Tijdens dit hele proces zijn er grote winsten gemaakt op het gebied van functionaliteiten, op het gebied van de manier van werken en op het gebied van de snelheid van de webshop. Begin 2020 besloot [eiseres] echter dat de vooruitgang niet voldoende was en hebben ze besloten om verder te gaan met een andere partij ( [naam webbouwer 2] ).(…) ”
2.24.
Bij e-mail van 8 juli 2019 (productie 11 bij antwoord) heeft [gedaagde] aan [naam onderzoeker] onder meer geschreven:
“(…)
- Per dag wordt er 10 GB aan magento warnings/errors gelogged(…)
. Aangegeven bij [naam webbouwer 1] en konden ze niet direct oplossen, zou met de aankomende Magento update opgelost zijn.
(…)”
2.25.
Op 11 december 2019 heeft [gedaagde] [eiseres] een offerte gestuurd (productie 10 bij dagvaarding), die onder meer luidt als volgt:
“(…)
Bij [gedaagde] hebben we een frisse kijk op hoe managed hosting zou moeten werken. U moet kunnen vertrouwen op een partij die de kennis, ervaring en middelen heeft om een betrouwbare hosting omgeving te kunnen bieden. Wij willen u daarin volledig ontzorgen zonder gedoe. We werken niet op “uurtje factuurtje” basis; beheer en updates zijn inbegrepen bij iedere server.
Er is geen harde scheidingslijn tussen uw werk en het onze, uw code draait immers op onze servers en deze twee onderdelen vormen samen één geheel. We nemen verantwoordelijkheid indien er problemen zijn met de werking van uw website of applicatie en zeten ons in om het probleem (samen) adequaat op te lossen. Denk hierbij aan het adviseren over database queries, het opsporen van vertragingen in code, het tijdelijk toepassen van debugging tools, enzovoort.
Om nog meer uit uw servers te halen adviseren we graag over performance, schaalbaarheid en informatiebeveiliging. We voeren performance benchmarks uit (door heel veel verkeer te simuleren), begeleiden penetration tests en kijken samen naar mogelijke verbeteringen en het verwijderen van eventuele knelpunten.
Naast het dagelijks beheer en beveiligingsupdates bieden we de mogelijkheid om 24/7 monitoring en de beschikking over een 24/7 storingsnummer toe te voegen(…)
We maken gebruik van blade servers, deze leveren een hogere beschikbaarheid dan traditionele servers en gaan efficiënter om met energie. Onze blade servers zijn uitgerust met veel processorkracht om snelheid te kunnen blijven garanderen en hoge pieken op te vangen. Zo leveren we bij onze cloud servers wel tot 16 CPU cores; ver boven wat gebruikelijk is.
(…)”
2.26.
Begin februari 2020 heeft [eiseres] aan [gedaagde] mondeling de beëindiging van de overeenkomst aangekondigd, omdat er nog altijd problemen waren met het functioneren van de webshop. [gedaagde] heeft met de beëindiging van de overeenkomst ingestemd.
2.27.
Bij e-mail van 24 februari 2020 (productie 11 bij dagvaarding) heeft [gedaagde] aan [eiseres] onder meer geschreven:
“(…)
Een dedicated server met veel cores en lokale storage zal altijd (veel) sneller zijn dan een VM op een HA platform zoals wij dat hebben. Ik begrijp dan ook volkomen dat dit op korte termijn kan helpen.
Ik denk wel dat je er alleen wat tijd mee koopt. Als ik zie dat zelfs op een dedicated server de laadtijd niet echt heel goed is, dan weet je dat bij het toevoegen van producten of talen de laadtijd verder op zal lopen. Voor nu helpt het dus, maar echt een constructieve oplossing voor de toekomst is het nog niet. Schalen met apparatuur werkt even, maar is nooit een “oplossing” voor het werkelijke probleem.
(…)
Het advies is dus: Dit gebruiken om nu vooruit te komen, maar doorpakken en de processen optimaliseren.
(…)”
2.28.
In 2020 is [eiseres] overgestapt naar een andere hostingdienstverlener, genaamd [hostingdienstverlener]
2.29.
Bij brief van 14 mei 2020 (productie 13 bij dagvaarding) heeft (de advocaat van) [eiseres] aan [gedaagde] meegedeeld dat [gedaagde] toerekenbaar is tekortgeschoten in de nakoming van haar verplichtingen uit de overeenkomst en dat [eiseres] (vervangende) schadevergoeding of (partiële) ontbinding van de overeenkomst en aanvullende schadevergoeding kan vorderen.
2.30.
In reactie hierop heeft (de juridisch adviseur van) [gedaagde] bij brief van 25 mei 2020 (productie 19 bij dagvaarding) betwist dat zij op enige wijze toerekenbaar zou zijn tekortgeschoten in de nakoming van de overeenkomst. De brief vermeldt verder onder meer dat [gedaagde] uitsluitend virtuele servers aanbiedt en dat [eiseres] daarvan op de hoogte was. De informatieplicht van [gedaagde] strekt dus niet zo ver dat zij advies moet geven over dedicated servers. Bovendien vergt een goed gebouwde Magento-webshop normaal gesproken helemaal geen dedicated server, aldus [gedaagde] . Volgens [gedaagde] zijn de problemen die [eiseres] heeft ondervonden in de traagheid van de website veroorzaakt door de ondeugdelijk gebouwde webshop. Voor zover al een partij aansprakelijk zou zijn voor de vermeende schade van [eiseres] , is [eiseres] bij [gedaagde] aan het verkeerde adres. Indien al sprake zou zijn van een toerekenbare tekortkoming van [gedaagde] , dan nog komt [eiseres] volgens [gedaagde] niet in aanmerking voor schadevergoeding, omdat een deugdelijke ingebrekestelling ontbreekt.
2.31.
Bij brief van 4 augustus 2020 (productie 20 bij dagvaarding) aan (de advocaat van) [eiseres] heeft (de advocaat van) [gedaagde] eveneens iedere aansprakelijkheid van de hand gewezen.
2.32.
Bij brief van 23 februari 2021 (productie 12 bij dagvaarding) heeft [eiseres] [gedaagde] aangemaand haar verplichtingen jegens [eiseres] alsnog na te komen en binnen veertien dagen schriftelijk te bevestigen dat zij toerekenbaar is tekortgeschoten jegens [eiseres] en dat [eiseres] als gevolg daarvan recht heeft op vervangende schadevergoeding of (partiële) ontbinding van de overeenkomst en aanvullende schadevergoeding, bij gebreke waarvan [eiseres] nadere rechtsmaatregelen zal treffen. In reactie hierop heeft [gedaagde] opnieuw iedere aansprakelijkheid van de hand gewezen.
2.33.
[eiseres] heeft [naam jurist en ICT-deskundige] , jurist en ICT-deskundige (hierna: [naam jurist en ICT-deskundige] ), ingeschakeld ter beantwoording van twee vragen over de kwaliteit van de dienstverlening door [gedaagde] . Op 12 mei 2021 heeft [naam jurist en ICT-deskundige] een rapport uitgebracht (productie 6 bij dagvaarding), dat onder meer als volgt luidt:
“(…)
Antwoord op Vraag 1
8.1
Vraag 1Voldeed de door [gedaagde] aan [eiseres] in 2017 en 2019 aangeboden configuratie aan de eisen die daaraan behoren te worden gesteld voor het hosten van een Magento-webshop?
8.2
Magento hosting is een vorm van dienstverlening die specialistische kennis vereist. Kort voor de offerte aan [eiseres] had [gedaagde] die kennis niet. In haar offerte geeft [gedaagde] aan dat zij een inschatting geeft zonder de benodigde input, terwijl zij ook later niet om die input vraagt. [gedaagde] brengt een offerte uit waarin zij op geen enkele wijze refereert aan vereisten die Magento stelt aan hosting of op de wijze waarop [gedaagde] aan die vereisten voldoet in relatie tot de bij haar in gebruik zijnde systemen en infrastructuur.
8.3
De configuratie die [gedaagde] in 2017 aan [eiseres] aanbood voldeed niet aan de eisen die daaraan worden gesteld voor het hosten van een Magento-webshop.
8.4
De configuratie die [gedaagde] in 2019 aan [eiseres] aanbood voldeed niet aan de eisen die daaraan worden gesteld voor het hosten van een Magento-webshop.
Antwoord op Vraag 2
8.5
Vraag 2
Voldeed de tussen 2017 en 2020 door [gedaagde] ingerichte en gewijzigde configuratie op enig moment aan die eisen?
8.6
In de loop van de dienstverlening is tussen [eiseres] en [gedaagde] veelvuldig gecommuniceerd over achterblijvende prestaties en gewenste aanpassingen in de configuratie. De configuratie is gedurende de uitvoering van de dienstverlening meermalen vergroot en uitgebreid. Op basis van de communicatie tussen partijen stel ik vast dat dat meer lijkt op trial and error, dan op een gemotiveerde beslissing op grond van de benodigde kengetallen van de webshop van [eiseres] , dan wel van door [gedaagde] aan [eiseres] gevraagde benodigde informatie.
8.7
Op grond van mijn onderzoek concludeer ik dat de tussen 2017 en 2020 door [gedaagde] ingerichte en gewijzigde configuratie op geen moment aan door Magento voorgeschreven eisen heeft voldaan. [gedaagde] is nimmer expliciet op de hoogte geraakt van de benodigde kengetallen om een adequate Magento hosting omgeving in te richten, afgemeten aan de vereisten die Magento Hosting aan die omgeving stelt.
(…)
9.1
In dit onderzoek is geen hoor en wederhoor toegepast.
(…)”
2.34.
Op 6 november 2021 heeft [naam deskundige] , een door [gedaagde] ingeschakelde deskundige, eveneens een rapport uitgebracht (productie 6 bij antwoord). De conclusie in dit rapport luidt onder meer als volgt:
“(…)
Op basis van de producties die ik in heb mogen zien en mijn eigen kennis, kan ik stellen dat [gedaagde] een oplossing heeft geleverd die zou moeten voldoen voor deze specifieke webshop wanneer deze code-technisch in orde zou zijn. [gedaagde] heeft voldaan aan de best-practices en eisen voor Magento 2.2. [gedaagde] doet hierin niet onder voor concurrerende hostingpartijen die soortgelijke oplossingen bieden.
(…)
De geboden oplossing door [gedaagde] acht ik ruim voldoende voor deze webshop op basis van wat ik nu aan de shop kan zien.
Daarnaast concludeer ik dat [gedaagde] datgene heeft gedaan wat van een hoster verwacht kan worden. De klant wijzen op problemen in de code. [gedaagde] heeft, naar mijn mening, juist gehandeld door niet in te grijpen op de code waar zij geen eigenaar van waren. Daarnaast is [gedaagde] een hoster en geen Magento ontwikkelaar.
(…)”

3.Het geschil

3.1.
[eiseres] vordert dat de rechtbank bij vonnis, voor zover mogelijk uitvoerbaar bij voorraad:
primair en subsidiair
1. voor recht verklaart dat [gedaagde] toerekenbaar is tekortgeschoten jegens [eiseres] in de nakoming van de overeenkomst, althans de op haar rustende verplichting om:
  • [eiseres] de beste server te adviseren, leveren en/of hosten, en/of [eiseres] te ontzorgen bij problemen met (de serverhosting van) haar webshop; althans om
  • [eiseres] een server te adviseren, leveren en/of hosten die ervoor zorgt dat de webshop van [eiseres] naar behoren werkt en/of [eiseres] te ontzorgen bij problemen met (de serverhosting van) haar webshop; althans om
  • bij haar werkzaamheden voor [eiseres] de zorg van een goed opdrachtnemer in acht te nemen;
primair
2. de tussen [eiseres] en [gedaagde] gesloten overeenkomst van 14 oktober 2017 ontbindt;
3. voor recht verklaart dat [gedaagde] op grond van artikel 6:277 BW verplicht is de schade te vergoeden die [eiseres] (aanvullend) heeft geleden en lijdt als gevolg van de ontbinding van de tussen [eiseres] en [gedaagde] gesloten overeenkomst van 14 oktober 2017, en deze door [eiseres] geleden schade vaststelt op € 199.292,52, althans een door de rechtbank te bepalen bedrag, te weten:
  • € 3.484,80, althans een door de rechtbank te bepalen bedrag, met betrekking tot het bedrag dat [eiseres] heeft moeten betalen voor het opstellen van een deskundigenbericht;
  • € 195.807,72, althans een door de rechtbank te bepalen bedrag, met betrekking tot de door [eiseres] gederfde winst;
4. [gedaagde] op basis van de door ontbinding ontstane ongedaanmakingsverbintenissen veroordeelt tot betaling aan [eiseres] van € 54.019,60, dan wel een door de rechtbank te bepalen bedrag, vermeerderd met de wettelijke (handels)rente;
5. [gedaagde] op basis van de door [eiseres] (aanvullend) geleden schade op grond van artikel 6:277 BW veroordeelt tot betaling van € 199.292,52, dan wel een door de rechtbank te bepalen bedrag, te vermeerderen met de wettelijke (handels)rente;
subsidiair
6. voor recht verklaart dat [gedaagde] verplicht is om op grond van artikel 6:74 BW de schade te vergoeden die [eiseres] heeft geleden als gevolg van de toerekenbare tekortkoming van [gedaagde] , en deze door [eiseres] geleden schade vaststelt op € 253.312,12, althans een door de rechtbank te bepalen bedrag, te weten:
  • € 54.019,60, althans een door de rechtbank te bepalen bedrag, met betrekking tot de door [eiseres] teveel betaalde factuurbedragen;
  • € 3.484,80, althans een door de rechtbank te bepalen bedrag, met betrekking tot het bedrag dat [eiseres] heeft moeten betalen voor het opstellen van een deskundigenbericht;
  • € 195.807,72, althans een door de rechtbank te bepalen bedrag, met betrekking tot de door [eiseres] gederfde winst;
7. [gedaagde] op basis van de door [eiseres] geleden schade veroordeelt tot betaling van € 235.312,12, dan wel een door de rechtbank te bepalen bedrag, te vermeerderen met de wettelijke (handels)rente;
primair en subsidiair
8. [gedaagde] veroordeelt tot betaling van de aan [eiseres] verschuldigde buitengerechtelijke kosten van € 4.982,00, althans een door de rechtbank te bepalen bedrag, vermeerderd met de wettelijke rente;
9. [gedaagde] veroordeelt in de proceskosten, waaronder de nakosten, vermeerderd met de wettelijke rente.
3.2.
[eiseres] legt aan haar vorderingen artikel 6:74 BW ten grondslag. Zij stelt zich op het standpunt dat [gedaagde] jegens haar is tekortgeschoten in de nakoming van haar verbintenis. In de eerste plaats heeft [gedaagde] niet voldaan aan haar verplichting om de snelste en beste server te leveren en te hosten voor de webshop van [eiseres] . Voor zover [gedaagde] niet verplicht was om de allerbeste en snelste server te leveren en te hosten, geldt volgens [eiseres] in ieder geval dat [gedaagde] een zodanige server had moeten leveren en de webshop zodanig had moeten hosten dat de webshop van [eiseres] naar behoren functioneerde. Dat heeft [gedaagde] niet gedaan. Daarnaast heeft [gedaagde] volgens [eiseres] bij haar werkzaamheden niet de zorg van een goed opdrachtnemer in acht genomen (artikel 7:401 BW). [gedaagde] heeft [eiseres] geadviseerd om een virtual server af te nemen, in plaats van op zijn minst aan te geven dat een dedicated server altijd veel sneller is. Ook heeft [gedaagde] geen of onvoldoende rekening gehouden met de specifieke eisen die gelden voor hosting van een Magento-webshop en heeft zij nagelaten te voldoen aan haar verplichting om [eiseres] te ontzorgen bij problemen en die problemen op te lossen, aldus [eiseres] .
3.3.
[gedaagde] voert verweer en concludeert tot afwijzing van de vorderingen, met veroordeling – uitvoerbaar bij voorraad – van [eiseres] in de proceskosten.
3.4.
De rechtbank zal hierna nader ingaan op de stellingen van partijen, voor zover van belang voor de beoordeling.

4.De beoordeling

4.1.
De vordering strekt primair tot (onder meer) ontbinding van de overeenkomst, omdat [gedaagde] volgens [eiseres] toerekenbaar is tekortgeschoten in de nakoming van haar verbintenis. Voor de beantwoording van de vraag of sprake is van een toerekenbare tekortkoming van [gedaagde] is allereerst van belang welke verbintenis op grond van de overeenkomst rustte op [gedaagde] . Partijen verschillen daarover van mening.
4.2.
[eiseres] stelt zich primair op het standpunt dat [gedaagde] zich heeft verplicht tot het leveren en hosten van “de snelste en beste” server voor de webshop. [eiseres] heeft naar eigen zeggen het volgens haar daartoe strekkende aanbod van [gedaagde] aanvaard door middel van haar e-mail van 14 oktober 2017 (zie 2.9), waarin zij schrijft: “
Bestelling is ontvangen en akkoord”. [gedaagde] voert echter aan dat zij zich heeft verbonden tot het ter beschikking stellen van de twee in de offerte (zie 2.7) genoemde – en nadien in het kader van “opschalingen” overeengekomen – managed servers en het hosten van de website van [eiseres] daarop. [eiseres] weerspreekt dat zij de offerte heeft geaccordeerd en stelt zich op het standpunt dat zij ook niet met de offerte bekend is geweest. [gedaagde] voert daartegen gemotiveerd verweer. Zij zet uiteen dat zij voor het sluiten van overeenkomsten met haar klanten gebruik maakt van een systeem waarmee zij via elektronische weg offertes genereert en verstuurt. Klanten moeten de offerte via elektronische weg accepteren op een wijze die vergelijkbaar is met de laatste stap van het bestelproces in een webwinkel. Als onderdeel van dit proces wordt de klant onder meer gevraagd in te stemmen met de algemene voorwaarden van [gedaagde] (zie 2.7). In de systemen van [gedaagde] wordt steeds automatisch geregistreerd op welk moment offertes worden verzonden en of en wanneer die worden geaccepteerd door de klant, aldus [gedaagde] . Ter onderbouwing verwijst zij naar een schermafdruk van haar registratiesysteem (zie 2.8). Daarop is te lezen dat [gedaagde] op 13 oktober 2017 om 17:08 uur een offerte voor [eiseres] heeft aangemaakt. De hyperlink naar de offerte is enkele minuten later per e-mail (zie 2.6) naar [eiseres] gestuurd. De e-mail vermeldt onder meer dat [eiseres] via de link akkoord kan geven. Op de voornoemde schermafdruk van het registratiesysteem van [gedaagde] is te zien dat [eiseres] de offerte op 14 oktober 2017 om 7:30 uur heeft geaccordeerd. Enkele minuten later heeft [eiseres] ook nog de bovengenoemde e-mail aan [gedaagde] gestuurd (zie 2.9) ter bevestiging van haar instemming met de offerte. Daarmee is op 14 oktober 2017 de overeenkomst tussen partijen tot stand gekomen, conform het bepaalde in de offerte, aldus [gedaagde] . In het licht van dit gemotiveerde, met stukken onderbouwde verweer van [gedaagde] heeft [eiseres] naar het oordeel van de rechtbank onvoldoende onderbouwd dat zij de offerte niet heeft (gezien en) geaccordeerd en dat [gedaagde] zich heeft verplicht tot het leveren en hosten van “de snelste en beste” server voor de webshop. Nog daargelaten dat niet objectief is vast te stellen wat de “snelste en beste” server precies is, heeft [eiseres] – hoewel dit op haar weg had gelegen – geen stukken overgelegd waaruit het bestaan van de door haar gestelde afspraak blijkt, noch heeft zij dit anderszins deugdelijk onderbouwd. Daarentegen staat gelet op het gemotiveerde, met stukken onderbouwde verweer van [gedaagde] vast dat [eiseres] de offerte van [gedaagde] heeft geaccordeerd. Daarmee staat ook vast dat [gedaagde] zich op grond van de aldus tot stand gekomen overeenkomst heeft verbonden tot het ter beschikking stellen van de twee in de offerte genoemde managed servers en het hosten van de website van [eiseres] daarop. Op zichzelf is niet in geschil dat [gedaagde] aan deze verplichting heeft voldaan. In zoverre is [gedaagde] dus niet tekortgeschoten in de nakoming van haar verbintenis.
4.3.
Voor zover [gedaagde] niet verplicht was om de beste en snelste server te leveren en te hosten, geldt volgens [eiseres] in ieder geval dat [gedaagde] een zodanige server had moeten leveren, beheren, monitoren en/of adviseren en de webshop zodanig had moeten hosten dat de webshop van [eiseres] naar behoren functioneerde. Zoals hierboven is overwogen, heeft [gedaagde] voldaan aan haar verplichting uit hoofde van de overeenkomst door de twee in de offerte genoemde servers ter beschikking te stellen en de website van [eiseres] daarop te hosten. [gedaagde] voert aan dat de door haar geleverde servers in principe geschikt waren voor het hosten van een Magento-webshop zoals die van [eiseres] . [eiseres] betwist dit op zichzelf niet, zodat dit vast staat. De webshop zou daarop dus in beginsel naar behoren moeten functioneren. Dat was echter niet het geval: de webshop werkte te traag. [gedaagde] voert aan dat de traagheid niet werd veroorzaakt door de servers, maar door structurele problemen in onder meer de code van de webshop die door [eiseres] en/of de door haar ingeschakelde ontwikkelaars, waaronder [naam webbouwer 1] , waren geïntroduceerd. Ook dit betwist [eiseres] op zichzelf niet, zodat dit eveneens vast staat. [eiseres] stelt zich echter op het standpunt dat [gedaagde] zich heeft verplicht om vertragingen en bugs in de code op te sporen en dat [gedaagde] haar had moeten adviseren over mogelijke verbeteringen en de verwijdering van eventuele knelpunten aan de hand van performance benchmarks en penetration tests. [gedaagde] betwist dit en voert aan dat de werking van de applicatie en de code niet de verantwoordelijkheid is van haar als hostingdienstverlener, maar tot het domein behoort van [eiseres] of haar webbouwer.
4.4.
[eiseres] verwijst naar de e-mail van [gedaagde] van 13 oktober 2017 (zie 2.6). [eiseres] maakt uit deze e-mail op dat [gedaagde] de verplichting op zich heeft genomen om per maand te monitoren en te evalueren of de website goed functioneerde op de aangeboden servers en dat, als één en ander niet deugdelijk zou functioneren, [gedaagde] zou meedenken over het aanpassen van de specificaties totdat de juiste specificaties zouden zijn gevonden. Anders dan [eiseres] kennelijk meent, volgt uit deze e-mail echter niet dat [gedaagde] verantwoordelijk was voor het oplossen van problemen in de code van de website en de werkwijze van [eiseres] en haar developers. De e-mail bevat in feite slechts een omschrijving van de dienst managed hosting die [gedaagde] zou leveren (waarover hierna meer) en de mededeling dat [gedaagde] flexibel zou omgaan met wijzigingen van de specificaties en daarover waar mogelijk zou meedenken. De e-mail kan dus niet dienen ter onderbouwing van het standpunt van [eiseres] .
4.5.
[eiseres] lijkt zich verder op het standpunt te stellen niet te hebben geweten dat zij van [gedaagde] (uitsluitend) servers dan wel managed hosting afnam. Zij voert aan dat de term “hosting” of een specifieke betekenis daarvan niet in de overeenkomst voorkomt. [gedaagde] wijst er echter terecht op dat het begrip “hosting” wel degelijk wordt genoemd in de overeenkomst, die op de hierboven omschreven wijze tot stand is gekomen. [gedaagde] wijst er ook terecht op dat [eiseres] een e-commercebedrijf is dat één van de grootste online ruitershops van Europa exploiteert en dus moet worden geacht te weten wat het verschil is tussen een hostingdienstverlener en een webbouwer en hoe de verantwoordelijkheden tussen beide dienstverleners zijn verdeeld. [eiseres] geeft hiervan blijk in haar dagvaarding onder 3.2, waar zij vermeldt dat zij de webhosting separaat en rechtstreeks wilde laten uitvoeren door een specialist in plaats van via een webbouwer. Ook uit (onder meer) het petitum van de dagvaarding blijkt dat [eiseres] wist dat zij bij [gedaagde] (uitsluitend) servers/managed hosting afnam, aangezien daar met zoveel woorden wordt gesproken over de verplichting van [gedaagde] tot het adviseren, leveren en/of hosten van een server.
4.6.
[gedaagde] legt in haar antwoordakte nader uit wat managed hosting inhoudt. Het komt erop neer dat bij managed hosting een hostingprovider niet alleen de servers levert waarop een applicatie wordt gehost, maar ook verantwoordelijk is voor het onderhoud en beheer van die servers. Het gaat daarbij om de inrichting en configuratie van de servers – de infrastructuur – waarop de applicatie draait en het verzorgen van back-ups, monitoring, beveiliging en optimalisaties van het functioneren van de
serversen dus niet van de applicatie die daarop wordt gehost. [eiseres] heeft dit onvoldoende weersproken. [eiseres] verwijst naar de website van [gedaagde] , waarvan zij citeert: “
Jij komt met de code en wij doen de rest. Wij kiezen de bouwstenen die nodig zijn om alles perfect te laten draaien en we schakelen direct met jouw developers. We ontzorgen je en we sluiten onze processen op elkaar aan. En als er opeens iets niet meer werkt? Dan springen wij ons bed uit en debuggen tot het is opgelost.” Voor zover [eiseres] betoogt dat deze tekst de verplichtingen van [gedaagde] “inkleurt”, gaat dit niet op. [gedaagde] voert in haar antwoordakte namelijk onweersproken aan dat deze tekst ten tijde van de totstandkoming van de overeenkomst nog helemaal niet op haar website stond, zodat deze informatie niet kan hebben meegespeeld in de verwachtingen van [eiseres] over de dienstverlening van [gedaagde] .
4.7.
Gezien het voorgaande heeft [eiseres] – in het licht van het gemotiveerde verweer dat de door [gedaagde] geleverde servers in principe geschikt waren voor het hosten van een Magento-webshop zoals die van [eiseres] , dat de problemen met de webshop werden veroorzaakt door de code en dat de werking van de applicatie en de code niet de verantwoordelijkheid was van [gedaagde] – onvoldoende onderbouwd dat [gedaagde] niet heeft voldaan aan haar verplichting om een zodanige server te leveren, beheren, monitoren en/of adviseren en de webshop zodanig te hosten dat de webshop van [eiseres] naar behoren functioneerde. Ook in zoverre is dus geen sprake van een toerekenbare tekortkoming van [gedaagde] in de nakoming van haar verbintenis.
4.8.
[eiseres] stelt zich ten slotte op het standpunt dat [gedaagde] bij haar werkzaamheden niet de zorg van een goed opdrachtnemer in acht heeft genomen. Zij voert daartoe aan dat [gedaagde] [eiseres] heeft geadviseerd om een virtual server af te nemen, in plaats van op zijn minst aan te geven dat een dedicated server altijd veel sneller is. Ook verwijt [eiseres] [gedaagde] dat zij geen of onvoldoende rekening heeft gehouden met de specifieke eisen die gelden voor hosting van een Magento-webshop. Bovendien heeft [gedaagde] volgens [eiseres] nagelaten te voldoen aan haar (contractuele en/of wettelijke) verplichting om [eiseres] te ontzorgen bij problemen en die problemen op te lossen.
4.9.
[gedaagde] voert terecht aan dat uit de overeenkomst en ook overigens niet blijkt dat zij afgezien van het leveren van twee managed servers andere diensten aan [eiseres] zou leveren, zoals advies- en consultancydiensten met betrekking tot de vraag welke server het best paste bij de webshop van [eiseres] . Nog afgezien daarvan staat als onweersproken vast dat de geleverde server geschikt was voor de Magento-webshop van [eiseres] . Van een schending van de zorgplicht door [gedaagde] is in zoverre dus geen sprake. Het probleem zat hem bovendien niet in de server, maar in de code van de webshop. In het voorgaande heeft de rechtbank overwogen dat het oplossen van de problemen met de code niet behoorde tot de verplichtingen van [gedaagde] als hostingdienstverlener. Ook in zoverre is dus geen sprake van een schending van de zorgplicht door [gedaagde] . Ten slotte heeft [eiseres] onvoldoende onderbouwd dat [gedaagde] niet heeft voldaan aan haar verplichting om [eiseres] te ontzorgen bij problemen en die problemen op te lossen. [gedaagde] heeft onweersproken aangevoerd dat zij zich heeft ingespannen om de snelheidsproblemen van de webshop op te lossen. Dat is iets anders dan het oplossen van de problemen in de code van de webshop, waartoe [gedaagde] als hostingdienstverlener zoals gezegd niet verplicht was. [gedaagde] heeft [eiseres] aldus ontzorgd voor zover dat binnen haar rol als hostingdienstverlener mogelijk was. Daarmee heeft zij voldaan aan haar zorgplicht.
4.10.
De slotsom is dat niet komt vast te staan dat [gedaagde] op de in 3.1 onder 1 bedoelde wijze(n) toerekenbaar is tekortgeschoten in de nakoming van haar verbintenis uit hoofde van de overeenkomst met [eiseres] . Hierop stranden alle vorderingen van [eiseres] . Wat partijen over en weer verder nog hebben aangevoerd, leidt niet tot een ander oordeel en blijft daarom buiten bespreking.
4.11.
[eiseres] wordt in het ongelijk gesteld en moet daarom de proceskosten dragen. De rechtbank begroot deze kosten aan de zijde van [gedaagde] op:
- griffierecht 4.200,00
- salaris advocaat
6.227,50(2,5 punten × tarief € 2.491,00)
Totaal € 10.427,50

5.De beslissing

De rechtbank
5.1.
wijst de vorderingen af,
5.2.
veroordeelt [eiseres] in de proceskosten, aan de zijde van [gedaagde] tot op heden begroot op € 10.427,50,
5.3.
verklaart dit vonnis wat betreft de kostenveroordeling uitvoerbaar bij voorraad.
Dit vonnis is gewezen door mr. P.F.A. Bierbooms en in het openbaar uitgesproken op 22 juni 2022.
JE/PB