PageSourceSearch

https://jduri.com/imprint/

html jduri.com collected 2026-09-25 22:32:20 UTC 23,555 bytes, 330 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="astro-CJSWUDYU">
3	<head>
4		<!-- Global Metadata --><meta charset="utf-8">
5<meta name="viewport" content="width=device-width,initial-scale=1">
6<link rel="icon" type="image/svg+xml" href="/favicon.svg">
7
8<!-- Primary Meta Tags -->
9<title>Jonas Duri | Personal Website</title>
10<meta name="title" content="Jonas Duri | Personal Website">
11<meta name="description" content="This is my personal website. Here I share links to my articles and projects.">
12
13<!-- Open Graph / Facebook -->
14<meta property="og:type" content="website">
15<meta property="og:url" content="https://example.com/imprint/">
16<meta property="og:title" content="Jonas Duri | Personal Website">
17<meta property="og:description" content="This is my personal website. Here I share links to my articles and projects.">
18
19<!-- Twitter -->
20<meta property="twitter:card" content="summary_large_image">
21<meta property="twitter:url" content="https://example.com/imprint/">
22<meta property="twitter:title" content="Jonas Duri | Personal Website">
23<meta property="twitter:description" content="This is my personal website. Here I share links to my articles and projects.">
24
25<meta name="google-site-verification" content="i2mlWMlNMZm7IgGIoKHWy1-3AGiwu5Wszp-A9dvKgnI">
26    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
27    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
28    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
29    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
30    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
31    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
32    <link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
33    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
34    <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
35    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
36
37<script type="application/ld+json">
38    {
39    "@context": "http://www.schema.org",
40    "@type": "Person",
41    "@id": "https://jduri.com",
42    "name": "Jonas Duri",
43    "alternateName": "Jonas Duri",
44    "nationality": "German",
45    "Description": "Software Engineer | Platform Architect",
46    "jobTitle": "Software Engineer | Platform Architect",
47    "worksFor": [
48    	{
49    		"@type": "Organization",
50    		"name": "E. Breuninger GmbH & Co.",
51    		"sameAs": [
52    			"https://breunigner.com/"
53    		]
54      	}  
55    ],
56    "url": "https://jduri.com",
57    "image": "https://s.gravatar.com/avatar/b58d54558259eeeaf1b590008d68d1d0?s=512&r=g",
58    "address": {
59      		"@type": "PostalAddress",
60    		"addressLocality": "Düsseldorf",
61    		"addressRegion": "NRW",
62            "addressCountry": "Germany"
63    	},
64    "sameAs": [
65    	"https://github.com/Gioni06",
66    	"https://medium.com/@jonas_duri",
67    	"https://dribbble.com/jonas_duri",
68    	"https://www.linkedin.com/in/jonasduri/",
69    	"https://twitter.com/jonas_duri"
70    	]
71    }
72    </script>
72
73
74        
75	<link href='https://d33wubrfki0l68.cloudfront.net/bundles/6e895b1814bd54de5d64f55e2419ef78e779506f.css' rel='stylesheet'/>
76<script>/** @license Copyright 2020 Google LLC (BSD-3-Clause) */
77/** Bundled JS generated from "@astrojs/lit/client-shim.js" */
78var N = Object.defineProperty;
79var i = (t, n) => () => (t && (n = t((t = 0))), n);
80var b = (t, n) => {
81	for (var a in n) N(t, a, { get: n[a], enumerable: !0 });
82};
83function s() {
84	if (d === void 0) {
85		let t = document.createElement('div');
86		(t.innerHTML = '<div><template shadowroot="open"></template></div>'),
87			(d = !!t.firstElementChild.shadowRoot);
88	}
89	return d;
90}
91var d,
92	m = i(() => {});
93var p,
94	c,
95	f,
96	u = i(() => {
97		(p = (t) => t.parentElement === null),
98			(c = (t) => t.tagName === 'TEMPLATE'),
99			(f = (t) => t.nodeType === Node.ELEMENT_NODE);
100	});
101var h,
102	E = i(() => {
103		m();
104		u();
105		h = (t) => {
106			var n;
107			if (s()) return;
108			let a = [],
109				e = t.firstElementChild;
110			for (; e !== t && e !== null; )
111				if (c(e)) a.push(e), (e = e.content);
112				else if (e.firstElementChild !== null) e = e.firstElementChild;
113				else if (f(e) && e.nextElementSibling !== null) e = e.nextElementSibling;
114				else {
115					let o;
116					for (; e !== t && e !== null; )
117						if (p(e)) {
118							o = a.pop();
119							let r = o.parentElement,
120								l = o.getAttribute('shadowroot');
121							if (((e = o), l === 'open' || l === 'closed')) {
122								let y = o.hasAttribute('shadowrootdelegatesfocus');
123								try {
124									r.attachShadow({ mode: l, delegatesFocus: y }).append(o.content);
125								} catch {}
126							} else o = void 0;
127						} else {
128							let r = e.nextElementSibling;
129							if (r != null) {
130								(e = r), o !== void 0 && o.parentElement.removeChild(o);
131								break;
132							}
133							let l =
134								(n = e.parentElement) === null || n === void 0 ? void 0 : n.nextElementSibling;
135							if (l != null) {
136								(e = l), o !== void 0 && o.parentElement.removeChild(o);
137								break;
138							}
139							(e = e.parentElement), o !== void 0 && (o.parentElement.removeChild(o), (o = void 0));
140						}
141				}
142		};
143	});
144var w = i(() => {
145	E();
146});
147var v = {};
148b(v, { hasNativeDeclarativeShadowRoots: () => s, hydrateShadowRoots: () => h });
149var S = i(() => {
150	m();
151	w();
152});
153async function g() {
154	let { hydrateShadowRoots: t } = await Promise.resolve().then(() => (S(), v));
155	window.addEventListener('DOMContentLoaded', () => t(document.body), { once: true });
156}
157var x = new DOMParser()
158	.parseFromString('<p><template shadowroot="open"></template></p>', 'text/html', {
159		includeShadowRoots: !0,
160	})
161	.querySelector('p');
162(!x || !x.shadowRoot) && g();
163</script>
163</head>
164	<body class="astro-CJSWUDYU">
165		<main class="flex flex-col gap-4 astro-CJSWUDYU">
166            <div class="pt-10 pb-10 astro-CJSWUDYU">
167                <div class=" astro-CJSWUDYU">
168                    <div class="container astro-CJSWUDYU">
169                        <div class="container-center astro-CJSWUDYU">
170                            <div class="flex flex-row justify-between w-full items-end astro-CJSWUDYU">
171                                <div class="l_and_up:max-w-[60%] astro-CJSWUDYU">
172                                    <header role="banner">
173	<h1 class="heading-extralarge">
174		Jonas Duri
175	</h1>
176</header>
177                                    <p class="lead astro-CJSWUDYU" style="margin-top: 4rem">
178                                        Platform Architect at breuninger.com working on frontend & UI solutions for distributed e-commerce systems. You can find me on Github, Medium, Dribbble, LinkedIn or Twitter.
179                                    </p>
180                                </div>
181                            </div>
182                        </div>
183                    </div>
184                </div>
185            </div>
186            <div class="container astro-CJSWUDYU">
187                <div class="container-center astro-CJSWUDYU">
188                    <h2 class="prose-heading-large my-4">Impressum</h2>
189<h3 class="prose-heading-medium my-4" id="angaben-gemäß-§-5-tmg">Angaben gemäß § 5 TMG</h3>
190<p class="prose-copy mb-4">Jonas Duri<br>Jahnstrasse 90<br>40215 Düsseldorf</p>
191<h3 class="prose-heading-medium my-4" id="kontakt">Kontakt</h3>
192<p class="prose-copy mb-4">E-Mail: hallo[at]jduri.com</p>
193<h3 class="prose-heading-medium my-4" id="verantwortlich-für-den-inhalt-nach-§-55-abs-2-rstv">Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV</h3>
194<p class="prose-copy mb-4">Jonas Duri<br>Jahnstraße 90<br>40215 Düsseldorf</p>
195                </div>
196            </div>
197		</main>
198		<div class="container">
199	<div class="container-center">
200		<footer class="w-full mt-10 py-5 flex flex-col m_and_up:flex-row justify-between m_and_up:items-baseline" role="contentinfo">
201			<nav class="mt-4" role="navigation">
202				<ul class="flex flex-col gap-2 m_and_up:flex-row m_and_up:gap-2">
203					<li>
204						<style>astro-island,astro-slot{display:contents}</style>
204<script>(self.Astro=self.Astro||{}).visible=(s,c,n)=>{const r=async()=>{await(await s())()};let i=new IntersectionObserver(e=>{for(const t of e)if(!!t.isIntersecting){i.disconnect(),r();break}});for(let e=0;e<n.children.length;e++){const t=n.children[e];i.observe(t)}},window.dispatchEvent(new Event("astro:visible"));var l;{const c={0:t=>t,1:t=>JSON.parse(t,o),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(JSON.parse(t,o)),5:t=>new Set(JSON.parse(t,o)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(JSON.parse(t)),9:t=>new Uint16Array(JSON.parse(t)),10:t=>new Uint32Array(JSON.parse(t))},o=(t,s)=>{if(t===""||!Array.isArray(s))return s;const[e,n]=s;return e in c?c[e](n):void 0};customElements.get("astro-island")||customElements.define("astro-island",(l=class extends HTMLElement{constructor(){super(...arguments);this.hydrate=()=>{if(!this.hydrator||this.parentElement&&this.parentElement.closest("astro-island[ssr]"))return;const s=this.querySelectorAll("astro-slot"),e={},n=this.querySelectorAll("template[data-astro-template]");for(const r of n){const i=r.closest(this.tagName);!i||!i.isSameNode(this)||(e[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(const r of s){const i=r.closest(this.tagName);!i||!i.isSameNode(this)||(e[r.getAttribute("name")||"default"]=r.innerHTML)}const a=this.hasAttribute("props")?JSON.parse(this.getAttribute("props"),o):{};this.hydrator(this)(this.Component,a,e,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),window.removeEventListener("astro:hydrate",this.hydrate),window.dispatchEvent(new CustomEvent("astro:hydrate"))}}connectedCallback(){!this.hasAttribute("await-children")||this.firstChild?this.childrenConnectedCallback():new MutationObserver((s,e)=>{e.disconnect(),this.childrenConnectedCallback()}).observe(this,{childList:!0})}async childrenConnectedCallback(){window.addEventListener("astro:hydrate",this.hydrate);let s=this.getAttribute("before-hydration-url");s&&await import(s),this.start()}start(){const s=JSON.parse(this.getAttribute("opts")),e=this.getAttribute("client");if(Astro[e]===void 0){window.addEventListener(`astro:${e}`,()=>this.start(),{once:!0});return}Astro[e](async()=>{const n=this.getAttribute("renderer-url"),[a,{default:r}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),i=this.getAttribute("component-export")||"default";if(!i.includes("."))this.Component=a[i];else{this.Component=a;for(const d of i.split("."))this.Component=this.Component[d]}return this.hydrator=r,this.hydrate},s,this)}attributeChangedCallback(){this.hydrator&&this.hydrate()}},l.observedAttributes=["props"],l))}</script>
204<astro-island uid="wXw3k" component-url="/x-dialog.c79b77f2.js" ssr="" client="visible" before-hydration-url="/chunks/astro_scripts/before-hydration.js.54179fb6.js" opts="{&quot;name&quot;:&quot;XDialog&quot;,&quot;value&quot;:true}" await-children=""><x-dialog><template shadowroot="open"><style>
205        :host {
206            display: block !important;
207            visibility: visible !important;
208            opacity: 1 !important;
209            max-height: 100% !important;
210        }
211
212        dialog[open] {
213            position: fixed;
214            display: grid;
215            max-width: 800px;
216            margin: 0 auto;
217            top: 10rem;
218            border: none;
219            text-align: left;
220        }
221        dialog::backdrop {
222            background-color: var(--backdrop-layer, rgba(0, 0, 0, 0.3));
223            backdrop-filter: grayscale(1);
224        }
225
226        .container {
227            padding: 4rem;
228            padding-bottom: 8rem;
229        }
230    </style><!--lit-part 6ADRzIdyFso=-->
231        <slot  name="button"><!--lit-node 0--></slot>
232        <dialog  ><!--lit-node 1-->
233           <div class="container">
234            <div class="container-center">
235                <slot></slot>
236            </div>
237           </div>
238        </dialog>
239        <!--/lit-part--></template><astro-slot slot="button"><a href="/imprint" target="_blank" class="copy-small-bold bg-none border-0 py-1 block">Imprint</a></astro-slot><astro-slot><h2 class="prose-heading-large my-4">Impressum</h2>
240<h3 class="prose-heading-medium my-4" id="angaben-gemäß-§-5-tmg">Angaben gemäß § 5 TMG</h3>
241<p class="prose-copy mb-4">Jonas Duri<br>Jahnstrasse 90<br>40215 Düsseldorf</p>
242<h3 class="prose-heading-medium my-4" id="kontakt">Kontakt</h3>
243<p class="prose-copy mb-4">E-Mail: hallo[at]jduri.com</p>
244<h3 class="prose-heading-medium my-4" id="verantwortlich-für-den-inhalt-nach-§-55-abs-2-rstv">Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV</h3>
245<p class="prose-copy mb-4">Jonas Duri<br>Jahnstraße 90<br>40215 Düsseldorf</p></astro-slot></x-dialog><template data-astro-template="button"><a href="/imprint" target="_blank" class="copy-small-bold bg-none border-0 py-1 block">Imprint</a></template></astro-island>
246					</li>
247					<li>
248						<astro-island uid="Z21lqDm" component-url="/x-dialog.c79b77f2.js" ssr="" client="visible" before-hydration-url="/chunks/astro_scripts/before-hydration.js.54179fb6.js" opts="{&quot;name&quot;:&quot;XDialog&quot;,&quot;value&quot;:true}" await-children=""><x-dialog><template shadowroot="open"><style>
249        :host {
250            display: block !important;
251            visibility: visible !important;
252            opacity: 1 !important;
253            max-height: 100% !important;
254        }
255
256        dialog[open] {
257            position: fixed;
258            display: grid;
259            max-width: 800px;
260            margin: 0 auto;
261            top: 10rem;
262            border: none;
263            text-align: left;
264        }
265        dialog::backdrop {
266            background-color: var(--backdrop-layer, rgba(0, 0, 0, 0.3));
267            backdrop-filter: grayscale(1);
268        }
269
270        .container {
271            padding: 4rem;
272            padding-bottom: 8rem;
273        }
274    </style><!--lit-part 6ADRzIdyFso=-->
275        <slot  name="button"><!--lit-node 0--></slot>
276        <dialog  ><!--lit-node 1-->
277           <div class="container">
278            <div class="container-center">
279                <slot></slot>
280            </div>
281           </div>
282        </dialog>
283        <!--/lit-part--></template><astro-slot slot="button"><a href="/privacy" target="_blank" class="copy-small-bold bg-none border-0 py-1 block">Privacy Policy</a></astro-slot><astro-slot><h2 class="prose-heading-large my-4">Datenschutzerklärung</h2>
284<p class="prose-copy mb-4">Personenbezogene Daten (nachfolgend zumeist nur „Daten“ genannt) werden von uns nur im Rahmen der Erforderlichkeit sowie zum Zwecke der Bereitstellung eines funktionsfähigen und nutzerfreundlichen Internetauftritts, inklusive seiner Inhalte und der dort angebotenen Leistungen, verarbeitet.</p>
285<p class="prose-copy mb-4">Gemäß Art. 4 Ziffer 1. der Verordnung (EU) 2016/679, also der Datenschutz-Grundverordnung (nachfolgend nur „DSGVO“ genannt), gilt als „Verarbeitung“ jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführter Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten, wie das Erheben, das Erfassen, die Organisation, das Ordne
285n, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfragen, die Verwendung, die Offenlegung durch Übermittlung, Verbreitung oder eine andere Form der Bereitstellung, den Abgleich oder die Verknüpfung, die Einschränkung, das Löschen oder die Vernichtung.</p>
286<p class="prose-copy mb-4">Mit der nachfolgenden Datenschutzerklärung informieren wir Sie insbesondere über Art, Umfang, Zweck, Dauer und Rechtsgrundlage der Verarbeitung personenbezogener Daten, soweit wir entweder allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung entscheiden. Zudem informieren wir Sie nachfolgend über die von uns zu Optimierungszwecken sowie zur Steigerung der Nutzungsqualität eingesetzten Fremdkomponenten, soweit hierdurch Dritte Daten in wiederum eigener Verantwortung verarbeiten.</p>
287<p class="prose-copy mb-4">Die Datenschutzerklärung ist wie folgt gegliedert:</p>
288<p class="prose-copy mb-4">I. Informationen über uns als Verantwortliche<br>II. Rechte der Nutzer und Betroffenen<br>III. Informationen zur Datenverarbeitung</p>
289<h3 class="prose-heading-medium my-4" id="i-informationen-über-verantwortliche-personen">I. Informationen über verantwortliche Personen</h3>
290<p class="prose-copy mb-4">Verantwortlicher Anbieter dieses Internetauftritts im datenschutzrechtlichen Sinne ist:</p>
291<p class="prose-copy mb-4">Jonas Duri<br>Jahnstraße 90<br>40215 Düsseldorf<br>Deutschland</p>
292<p class="prose-copy mb-4">E-Mail: hallo[at]jduri.com</p>
293<h3 class="prose-heading-medium my-4" id="ii-rechte-der-nutzer-und-betroffenen">II. Rechte der Nutzer und Betroffenen</h3>
294<p class="prose-copy mb-4">Mit Blick auf die nachfolgend noch näher beschriebene Datenverarbeitung haben die Nutzer und Betroffenen das Recht</p>
295<ul class="prose-copy pl-4 list-disc mb-4">
296<li>auf Bestätigung, ob sie betreffende Daten verarbeitet werden, auf Auskunft über die verarbeiteten Daten, auf weitere Informationen über die Datenverarbeitung sowie auf Kopien der Daten (vgl. auch Art. 15 DSGVO);</li>
297<li>auf Berichtigung oder Vervollständigung unrichtiger bzw. unvollständiger Daten (vgl. auch Art. 16 DSGVO);</li>
298<li>auf unverzügliche Löschung der sie betreffenden Daten (vgl. auch Art. 17 DSGVO), oder, alternativ, soweit eine weitere Verarbeitung gemäß Art. 17 Abs. 3 DSGVO erforderlich ist, auf Einschränkung der Verarbeitung nach Maßgabe von Art. 18 DSGVO;</li>
299<li>auf Erhalt der sie betreffenden und von ihnen bereitgestellten Daten und auf Übermittlung dieser Daten an andere Anbieter/Verantwortliche (vgl. auch Art. 20 DSGVO);</li>
300<li>auf Beschwerde gegenüber der Aufsichtsbehörde, sofern sie der Ansicht sind, dass die sie betreffenden Daten durch den Anbieter unter Verstoß gegen datenschutzrechtliche Bestimmungen verarbeitet werden (vgl. auch Art. 77 DSGVO).</li>
301</ul>
302<p class="prose-copy mb-4">Darüber hinaus ist der Anbieter dazu verpflichtet, alle Empfänger, denen gegenüber Daten durch den Anbieter offengelegt worden sind, über jedwede Berichtigung oder Löschung von Daten oder die Einschränkung der Verarbeitung, die aufgrund der Artikel 16, 17 Abs. 1, 18 DSGVO erfolgt, zu unterrichten. Diese Verpflichtung besteht jedoch nicht, soweit diese Mitteilung unmöglich oder mit einem unverhältnismäßigen Aufwand verbunden ist. Unbeschadet dessen hat der Nutzer ein Recht auf Auskunft über diese Empfänger.</p>
303<p class="prose-copy mb-4"><strong>Ebenfalls haben die Nutzer und Betroffenen nach Art. 21 DSGVO das Recht auf Widerspruch gegen die künftige Verarbeitung der sie betreffenden Daten, sofern die Daten durch den Anbieter nach Maßgabe von Art. 6 Abs. 1 lit. f) DSGVO verarbeitet werden. Insbesondere ist ein Widerspruch gegen die Datenverarbeitung zum Zwecke der Direktwerbung statthaft.</strong></p>
304<h3 class="prose-heading-medium my-4" id="iii-informationen-zur-datenverarbeitung">III. Informationen zur Datenverarbeitung</h3>
305<p class="prose-copy mb-4">Ihre bei Nutzung unseres Internetauftritts verarbeiteten Daten werden gelöscht oder gesperrt, sobald der Zweck der Speicherung entfällt, der Löschung der Daten keine gesetzlichen Aufbewahrungspflichten entgegenstehen und n
305achfolgend keine anderslautenden Angaben zu einzelnen Verarbeitungsverfahren gemacht werden.</p>
306<h4 class="prose-heading my-2" id="serverdaten">Serverdaten</h4>
307<p class="prose-copy mb-4">Aus technischen Gründen, insbesondere zur Gewährleistung eines sicheren und stabilen Internetauftritts, werden Daten durch Ihren Internet-Browser an uns bzw. an unseren Webspace-Provider übermittelt. Mit diesen sog. Server-Logfiles werden u.a. Typ und Version Ihres Internetbrowsers, das Betriebssystem, die Website, von der aus Sie auf unseren Internetauftritt gewechselt haben (Referrer URL), die Website(s) unseres Internetauftritts, die Sie besuchen, Datum und Uhrzeit des jeweiligen Zugriffs sowie die IP-Adresse des Internetanschlusses, von dem aus die Nutzung unseres Internetauftritts erfolgt, erhoben.</p>
308<p class="prose-copy mb-4">Diese so erhobenen Daten werden vorrübergehend gespeichert, dies jedoch nicht gemeinsam mit anderen Daten von Ihnen.</p>
309<p class="prose-copy mb-4">Diese Speicherung erfolgt auf der Rechtsgrundlage von Art. 6 Abs. 1 lit. f) DSGVO. Unser berechtigtes Interesse liegt in der Verbesserung, Stabilität, Funktionalität und Sicherheit unseres Internetauftritts.</p>
310<p class="prose-copy mb-4">Die Daten werden spätestens nach sieben Tage wieder gelöscht, soweit keine weitere Aufbewahrung zu Beweiszwecken erforderlich ist. Andernfalls sind die Daten bis zur endgültigen Klärung eines Vorfalls ganz oder teilweise von der Löschung ausgenommen.</p>
311<h4 class="prose-heading my-2" id="kontaktanfragen--kontaktmöglichkeit">Kontaktanfragen / Kontaktmöglichkeit</h4>
312<p class="prose-copy mb-4">Sofern Sie per Kontaktformular oder E-Mail mit uns in Kontakt treten, werden die dabei von Ihnen angegebenen Daten zur Bearbeitung Ihrer Anfrage genutzt. Die Angabe der Daten ist zur Bearbeitung und Beantwortung Ihre Anfrage erforderlich - ohne deren Bereitstellung können wir Ihre Anfrage nicht oder allenfalls eingeschränkt beantworten.</p>
313<p class="prose-copy mb-4">Rechtsgrundlage für diese Verarbeitung ist Art. 6 Abs. 1 lit. b) DSGVO.</p>
314<p class="prose-copy mb-4">Ihre Daten werden gelöscht, sofern Ihre Anfrage abschließend beantwortet worden ist und der Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen, wie bspw. bei einer sich etwaig anschließenden Vertragsabwicklung.</p>
315<h4 class="prose-heading my-2" id="content-delivery-network-von-netlify">Content-Delivery-Network von Netlify</h4>
316<p class="prose-copy mb-4">Wir setzen ein so genanntes "Content Delivery Network" (CDN), angeboten von Netlify, Inc., 2325 3rd Street Suite 215, San Francisco, CA 94107, USA, ein. Netlify ist unter dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine Garantie, das europäische Datenschutzrecht einzuhalten.</p>
317<p class="prose-copy mb-4">Ein CDN ist ein Dienst, mit dessen Hilfe Inhalte unseres Onlineangebotes, insbesondere große Mediendateien, wie Grafiken oder Skripte mit Hilfe regional verteilter und über das Internet verbundener Server, schneller ausgeliefert werden. Die Verarbeitung der Daten der Nutzer erfolgt alleine zu den vorgenannten Zwecken und der Aufrechterhaltung der Sicherheit und Funktionsfähigkeit des CDN.</p>
318<p class="prose-copy mb-4">Die Nutzung erfolgt auf Grundlage unserer berechtigten Interessen, d.h. Interesse an einer sicheren und effizienten Bereitstellung, Analyse sowie Optimierung unseres Onlineangebotes gem. Art. 6 Abs. 1 lit. f. DSGVO.</p>
319<p class="prose-copy mb-4">Weitere Informationen erhalten Sie in der Datenschutzerklärung von Netlify.</p>
320<p class="prose-copy mb-4"><a href="https://www.ratgeberrecht.eu/leistungen/muster-datenschutzerklaerung.html">Muster-Datenschutzerklärung</a> der <a href="https://www.ratgeberrecht.eu/">Anwaltskanzlei Weiß &amp; Partner</a></p></astro-slot></x-dialog><template data-astro-template="button"><a href="/privacy" target="_blank" class="copy-small-bold bg-none border-0 py-1 block">Privacy Policy</a></template></astro-island>
321					</li>
322				</ul>
323			</nav>
324			<div class="copy-extra-small mt-4">
325				<i aria-label="Copyright">&copy;</i><time datetime="2023-08-23T22:09:02.188Z">2023</time> Jonas Duri. All rights reserved.
326			</div>
327		</footer>
328	</div>
329</div>
330	</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.