···11+<svelte:head>
22+ <title>Imprint · blento</title>
33+ <meta name="description" content="Imprint / Impressum for blento." />
44+</svelte:head>
55+66+<h1>Imprint</h1>
77+<p><em>Last updated: April 18, 2026</em></p>
88+99+<p>
1010+ Information in accordance with § 5 TMG (German Telemedia Act) and § 18 MStV (German
1111+ Interstate Media Treaty).
1212+</p>
1313+1414+<h2>Operator</h2>
1515+<p>Florian Killius</p>
1616+1717+<h2>Contact</h2>
1818+<ul>
1919+ <li>Email: <a href="mailto:hello@blento.app">hello@blento.app</a></li>
2020+ <li>
2121+ Bluesky:
2222+ <a href="https://bsky.app/profile/blento.app" target="_blank" rel="noopener">@blento.app</a>
2323+ </li>
2424+</ul>
2525+2626+<h2>Responsible for Content</h2>
2727+<p>
2828+ Responsible for content according to § 18 Abs. 2 MStV:<br />
2929+ Florian Killius
3030+</p>
3131+3232+<h2>EU Dispute Resolution</h2>
3333+<p>
3434+ The European Commission provides a platform for online dispute resolution (OS):
3535+ <a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener"
3636+ >https://ec.europa.eu/consumers/odr</a
3737+ >. We are not obliged and not willing to participate in dispute resolution proceedings before a
3838+ consumer arbitration board (§ 36 VSBG).
3939+</p>
4040+4141+<h2>Reporting Illegal Content (DSA)</h2>
4242+<p>
4343+ In accordance with Article 16 of the EU Digital Services Act (Regulation (EU) 2022/2065), anyone
4444+ may report content that they consider illegal by sending a notice to
4545+ <a href="mailto:hello@blento.app">hello@blento.app</a>. Please include:
4646+</p>
4747+<ul>
4848+ <li>
4949+ a sufficiently substantiated explanation of why you believe the content is illegal under EU or
5050+ Member State law;
5151+ </li>
5252+ <li>the exact URL(s) of the content;</li>
5353+ <li>
5454+ your name and email address (unless the report concerns offences under Arts. 3–7 of Directive
5555+ 2011/93/EU, in which case anonymity is allowed);
5656+ </li>
5757+ <li>a statement, in good faith, that the information in the notice is accurate and complete.</li>
5858+</ul>
5959+<p>
6060+ Submitting a complete notice gives us "actual knowledge" under Art. 6 DSA, and we will act
6161+ expeditiously to assess and, where appropriate, remove or disable access to the content. You will
6262+ receive an acknowledgement and, where feasible, a statement of reasons.
6363+</p>
6464+6565+<h2>Disclaimer</h2>
6666+6767+<h3>Liability for Content</h3>
6868+<p>
6969+ The content of this site has been created with the utmost care. However, no guarantee is given for
7070+ the accuracy, completeness, or timeliness of the content. As a service provider, we are
7171+ responsible for our own content on these pages under general law. We are not, however, obliged to
7272+ monitor transmitted or stored third-party information, or to investigate circumstances that
7373+ indicate illegal activity.
7474+</p>
7575+7676+<h3>Liability for Links</h3>
7777+<p>
7878+ Our site contains links to external websites of third parties, over whose content we have no
7979+ influence. Therefore, we cannot assume any liability for this external content. The respective
8080+ provider or operator of the linked pages is always responsible for the content of the linked
8181+ pages.
8282+</p>
8383+8484+<h3>User-Generated Content</h3>
8585+<p>
8686+ blento renders content authored by its users and stored in their own Personal Data Servers on the
8787+ AT Protocol network. Responsibility for such content lies with the respective user. If you believe
8888+ user-generated content accessed via blento infringes your rights or violates applicable law,
8989+ please contact us at <a href="mailto:hello@blento.app">hello@blento.app</a>.
9090+</p>
9191+9292+<h3>Copyright</h3>
9393+<p>
9494+ Content created by the operator of this site is subject to copyright law. Reproduction,
9595+ processing, distribution, or any form of commercialisation of such material beyond the scope of
9696+ copyright law requires the prior written consent of its respective author or creator.
9797+</p>
+250
src/routes/(legal)/privacy/+page.svelte
···11+<svelte:head>
22+ <title>Privacy Policy · blento</title>
33+ <meta name="description" content="Privacy Policy for blento." />
44+</svelte:head>
55+66+<h1>Privacy Policy</h1>
77+<p><em>Last updated: April 18, 2026</em></p>
88+99+<h2>1. Overview</h2>
1010+<p>
1111+ blento is built on the AT Protocol. Your site content lives in your own Personal Data Server (PDS)
1212+ under your atmosphere account. This policy explains what limited data blento itself handles and
1313+ how we comply with the EU General Data Protection Regulation (GDPR), the German Federal Data
1414+ Protection Act (BDSG), and the German Telecommunications-Digital-Services Data Protection Act
1515+ (TDDDG, formerly TTDSG).
1616+</p>
1717+1818+<h2>2. Definitions</h2>
1919+<ul>
2020+ <li>
2121+ <strong>AT Protocol (atproto):</strong> the open decentralized protocol that the Service is
2222+ built on. See
2323+ <a href="https://atproto.com" target="_blank" rel="noopener">atproto.com</a>.
2424+ </li>
2525+ <li>
2626+ <strong>Atmosphere:</strong> the open network of applications and services built on the AT Protocol.
2727+ Bluesky is one application in the atmosphere; blento is another.
2828+ </li>
2929+ <li>
3030+ <strong>Atmosphere account:</strong> your identity on the atmosphere, represented by a DID (decentralized
3131+ identifier) and a handle. You can use the same account across any atmosphere service, including blento.
3232+ </li>
3333+ <li>
3434+ <strong>Personal Data Server (PDS):</strong> the server that hosts the data for your atmosphere account.
3535+ It stores your records (including the cards you create on blento) and is the canonical home of your
3636+ content. You can self-host your PDS or use one operated by a provider.
3737+ </li>
3838+</ul>
3939+4040+<h2>3. Controller</h2>
4141+<p>The controller responsible for processing under Art. 4(7) GDPR is:</p>
4242+<p>
4343+ Florian Killius<br />
4444+ Email: <a href="mailto:hello@blento.app">hello@blento.app</a>
4545+</p>
4646+<p>
4747+ We have not appointed a data protection officer; we are below the thresholds of § 38 BDSG.
4848+ For any data-protection inquiries, contact the address above.
4949+</p>
5050+5151+<h2>4. Categories of Data and Legal Bases</h2>
5252+5353+<h3>4.1 Authentication (atproto OAuth)</h3>
5454+<p>
5555+ When you sign in, we initiate an OAuth flow with your PDS. We receive and store, in a session
5656+ cookie and in server-side session storage, an access token, a refresh token, your DID, and your
5757+ handle. We do not receive or store your password.
5858+</p>
5959+<ul>
6060+ <li><strong>Purpose:</strong> authenticating you and keeping you signed in.</li>
6161+ <li>
6262+ <strong>Legal basis:</strong> Art. 6(1)(b) GDPR (performance of the service you requested).
6363+ </li>
6464+ <li>
6565+ <strong>Retention:</strong> until you sign out or the refresh token expires / is revoked.
6666+ </li>
6767+ <li>
6868+ <strong>Storage of auth tokens on your device:</strong> legally necessary for the service you requested
6969+ under § 25(2) Nr. 2 TDDDG; no consent required.
7070+ </li>
7171+</ul>
7272+7373+<h3>4.2 Your DID and handle</h3>
7474+<p>Used to load and save your bento grid records from and to your PDS.</p>
7575+<ul>
7676+ <li><strong>Legal basis:</strong> Art. 6(1)(b) GDPR.</li>
7777+ <li><strong>Retention:</strong> for as long as your account is active.</li>
7878+</ul>
7979+8080+<h3>4.3 Cached content (Cloudflare KV)</h3>
8181+<p>
8282+ To speed up rendering and reduce load on third-party APIs, we cache public PDS records, profile
8383+ data, and third-party card data in Cloudflare Workers KV. Typical cache lifetimes range from 1
8484+ hour (e.g. Last.fm listens, events) to 24 hours (profile and PDS records), up to 30 days for
8585+ generated Open Graph images. Cached entries expire automatically.
8686+</p>
8787+<ul>
8888+ <li><strong>Purpose:</strong> performance and reduction of third-party API load.</li>
8989+ <li>
9090+ <strong>Legal basis:</strong> Art. 6(1)(f) GDPR (legitimate interest in operating the Service efficiently).
9191+ </li>
9292+ <li><strong>Retention:</strong> as stated above; expires automatically.</li>
9393+</ul>
9494+9595+<h3>4.4 Server and request logs</h3>
9696+<p>
9797+ Cloudflare, our hosting provider, processes standard request metadata (IP address, user agent,
9898+ timestamp, URL) for security, abuse prevention, and delivery of the Service. We do not maintain
9999+ long-term logs ourselves; Cloudflare's default retention applies (typically a few days).
100100+</p>
101101+<ul>
102102+ <li>
103103+ <strong>Legal basis:</strong> Art. 6(1)(f) GDPR (legitimate interest in a secure and reliable service).
104104+ </li>
105105+</ul>
106106+107107+<h3>4.5 Aggregate analytics</h3>
108108+<p>
109109+ We collect cookieless, aggregate pageview statistics using Cloudflare Workers Analytics Engine.
110110+ Each pageview records the visited page, a coarse country code derived from the visitor's IP
111111+ address (the IP itself is not stored by us), and the hostname of the referring website if any.
112112+ Individual visitors are not tracked across pages or sessions, and no persistent identifier is
113113+ stored on your device.
114114+</p>
115115+<ul>
116116+ <li><strong>Purpose:</strong> understanding aggregate site usage to guide improvements.</li>
117117+ <li>
118118+ <strong>Legal basis:</strong> Art. 6(1)(f) GDPR (legitimate interest in measuring usage in a privacy-preserving
119119+ way).
120120+ </li>
121121+ <li>
122122+ <strong>Retention:</strong> up to 90 days, after which Cloudflare automatically deletes the data.
123123+ </li>
124124+</ul>
125125+126126+<h3>4.6 Third-party embeds</h3>
127127+<p>
128128+ Cards can embed content from third parties (Bluesky, YouTube, GitHub, Last.fm, map providers,
129129+ etc.). When a page containing such a card is loaded, the visitor's browser makes requests to those
130130+ providers, which may process the visitor's IP address and other request metadata under their own
131131+ privacy policies. We do not control that processing.
132132+</p>
133133+134134+<h2>5. Recipients and Processors</h2>
135135+<ul>
136136+ <li>
137137+ <strong>Cloudflare, Inc.</strong> (USA) — hosting, CDN, Workers runtime, KV storage. Acts as a processor
138138+ under Art. 28 GDPR based on Cloudflare's Data Processing Addendum.
139139+ </li>
140140+ <li>
141141+ <strong>Your PDS provider</strong> (the operator of your atmosphere account's data server) — receives
142142+ your records when you save them.
143143+ </li>
144144+ <li>
145145+ <strong>Third-party card providers</strong> (e.g. Bluesky, GitHub, YouTube, Last.fm, map providers)
146146+ — when embedded, they receive visitor request data directly.
147147+ </li>
148148+</ul>
149149+150150+<h2>6. International Data Transfers</h2>
151151+<p>Cloudflare processes data in the United States and globally. Transfers are safeguarded by:</p>
152152+<ul>
153153+ <li>
154154+ Cloudflare's certification under the <strong>EU-US Data Privacy Framework</strong> (adequacy decision
155155+ of the European Commission of 10 July 2023); and
156156+ </li>
157157+ <li>EU Standard Contractual Clauses (Art. 46(2)(c) GDPR) as a fallback.</li>
158158+</ul>
159159+<p>
160160+ Third-party card providers process data in their own jurisdictions under their respective
161161+ safeguards.
162162+</p>
163163+164164+<h2>7. Cookies and Similar Technologies</h2>
165165+<p>
166166+ We use only strictly necessary cookies / local storage entries for authentication (§ 25(2)
167167+ Nr. 2 TDDDG). We do not use cookies or tracking technologies for analytics, advertising, or
168168+ profiling. No consent banner is required.
169169+</p>
170170+171171+<h2>8. Your Rights</h2>
172172+<p>Under the GDPR you have the following rights:</p>
173173+<ul>
174174+ <li>Right of access (Art. 15 GDPR)</li>
175175+ <li>Right to rectification (Art. 16 GDPR)</li>
176176+ <li>Right to erasure / "to be forgotten" (Art. 17 GDPR)</li>
177177+ <li>Right to restriction of processing (Art. 18 GDPR)</li>
178178+ <li>Right to data portability (Art. 20 GDPR)</li>
179179+ <li>
180180+ Right to object to processing based on legitimate interests (Art. 21 GDPR) — including a
181181+ general right to object at any time, on grounds relating to your particular situation
182182+ </li>
183183+ <li>
184184+ Right not to be subject to automated decision-making (Art. 22 GDPR) — we do not carry out
185185+ any such processing
186186+ </li>
187187+ <li>
188188+ Right to withdraw consent at any time, where processing is based on consent (Art. 7(3) GDPR)
189189+ — we currently do not rely on consent for any processing
190190+ </li>
191191+</ul>
192192+<p>
193193+ To exercise any of these rights, email <a href="mailto:hello@blento.app">hello@blento.app</a>.
194194+</p>
195195+196196+<h2>9. Right to Lodge a Complaint</h2>
197197+<p>
198198+ You have the right to lodge a complaint with a supervisory authority (Art. 77 GDPR). The competent
199199+ authority for us is:
200200+</p>
201201+<p>
202202+ Berliner Beauftragte für Datenschutz und Informationsfreiheit (BlnBDI)<br />
203203+ Alt-Moabit 59–61, 10555 Berlin, Germany<br />
204204+ <a href="https://www.datenschutz-berlin.de" target="_blank" rel="noopener"
205205+ >www.datenschutz-berlin.de</a
206206+ >
207207+</p>
208208+<p>
209209+ You may also lodge a complaint with any other supervisory authority, in particular in the Member
210210+ State of your habitual residence.
211211+</p>
212212+213213+<h2>10. Data Deletion</h2>
214214+<p>
215215+ Because your site content lives in your PDS, you can delete it directly via any atproto client or
216216+ by editing your site. Cached copies on our side expire automatically. For account deletion or
217217+ requests covering data beyond what you can delete yourself, email
218218+ <a href="mailto:hello@blento.app">hello@blento.app</a>.
219219+</p>
220220+221221+<h2>11. Children</h2>
222222+<p>
223223+ The Service is not directed at children. In Germany, the consent of a holder of parental
224224+ responsibility is required for children under the age of 16 (Art. 8 GDPR). We do not knowingly
225225+ process personal data of children under 16.
226226+</p>
227227+228228+<h2>12. What We Don't Do</h2>
229229+<ul>
230230+ <li>We do not sell your personal data.</li>
231231+ <li>We do not run advertising or cross-site tracking.</li>
232232+ <li>We do not build behavioural profiles of you.</li>
233233+ <li>We do not carry out automated decision-making in the sense of Art. 22 GDPR.</li>
234234+</ul>
235235+236236+<h2>13. Changes</h2>
237237+<p>
238238+ We may update this policy. Material changes will be announced on this page, and where they
239239+ materially affect your rights we will give reasonable advance notice.
240240+</p>
241241+242242+<h2>14. Contact</h2>
243243+<p>Questions about this policy? Reach out via:</p>
244244+<ul>
245245+ <li>Email: <a href="mailto:hello@blento.app">hello@blento.app</a></li>
246246+ <li>
247247+ Bluesky:
248248+ <a href="https://bsky.app/profile/blento.app" target="_blank" rel="noopener">@blento.app</a>
249249+ </li>
250250+</ul>
+183
src/routes/(legal)/terms/+page.svelte
···11+<svelte:head>
22+ <title>Terms of Service · blento</title>
33+ <meta name="description" content="Terms of Service for blento." />
44+</svelte:head>
55+66+<h1>Terms of Service</h1>
77+<p><em>Last updated: April 18, 2026</em></p>
88+99+<h2>1. Scope and Acceptance</h2>
1010+<p>
1111+ These Terms of Service ("Terms") govern the use of blento ("the Service"), operated by Florian
1212+ Killius, Berlin, Germany ("we", "us"). Contact details and the full operator address are set out
1313+ in our <a href="/imprint">Imprint</a>.
1414+</p>
1515+<p>
1616+ By signing in to or otherwise using the Service, you confirm that you have read these Terms and
1717+ agree to be bound by them. If you do not agree, please do not use the Service. These Terms are
1818+ made available in full on this page at all times and you can save or print them before you
1919+ proceed.
2020+</p>
2121+2222+<h2>2. Definitions</h2>
2323+<ul>
2424+ <li>
2525+ <strong>AT Protocol (atproto):</strong> the open decentralized protocol that the Service is
2626+ built on. See
2727+ <a href="https://atproto.com" target="_blank" rel="noopener">atproto.com</a>.
2828+ </li>
2929+ <li>
3030+ <strong>Atmosphere:</strong> the open network of applications and services built on the AT Protocol.
3131+ Bluesky is one application in the atmosphere; blento is another.
3232+ </li>
3333+ <li>
3434+ <strong>Atmosphere account:</strong> your identity on the atmosphere, represented by a DID and a handle.
3535+ </li>
3636+ <li>
3737+ <strong>Personal Data Server (PDS):</strong> the server that hosts the data for your atmosphere account.
3838+ Content you create on blento is stored in your PDS and is the canonical copy.
3939+ </li>
4040+</ul>
4141+4242+<h2>3. The Service</h2>
4343+<p>
4444+ blento is a bento-grid website builder powered by the AT Protocol. Content you create is stored in
4545+ your PDS under your atmosphere account; blento does not host the primary copy of that data. The
4646+ Service is provided free of charge; we reserve the right to change, suspend, or discontinue
4747+ features with reasonable notice.
4848+</p>
4949+5050+<h2>4. Your Account</h2>
5151+<p>
5252+ You authenticate via atproto OAuth using your atmosphere account. You are responsible for
5353+ maintaining the security of your account and for all activity that occurs through it. You must be
5454+ at least 16 years old to use the Service, or you must have the consent of a holder of parental
5555+ responsibility.
5656+</p>
5757+5858+<h2>5. User Content</h2>
5959+<p>
6060+ You retain all ownership rights in the content you create. You are solely responsible for the
6161+ content you publish and confirm you have the necessary rights to share it. By publishing content
6262+ through the Service, you grant us a worldwide, non-exclusive, royalty-free licence to host, cache,
6363+ reproduce, and display that content solely for the purpose of operating the Service, for as long
6464+ as you keep it published.
6565+</p>
6666+<p>
6767+ Content that is illegal, infringes third-party rights, or violates our acceptable-use rules may be
6868+ removed from public rendering on the Service at our discretion. Because your canonical copy lives
6969+ in your PDS, our removal affects only how blento renders it; you retain access to the data itself.
7070+</p>
7171+7272+<h2>6. Acceptable Use</h2>
7373+<p>You agree not to use the Service to:</p>
7474+<ul>
7575+ <li>Violate any applicable law or regulation;</li>
7676+ <li>Publish content that infringes intellectual-property or privacy rights;</li>
7777+ <li>Distribute malware, phishing, or other harmful material;</li>
7878+ <li>Harass, threaten, or harm others, or incite hatred or violence;</li>
7979+ <li>Attempt to disrupt, overload, or compromise the Service or circumvent access controls.</li>
8080+</ul>
8181+8282+<h2>7. Reporting Illegal Content (DSA)</h2>
8383+<p>
8484+ In accordance with Article 16 of the EU Digital Services Act (Regulation (EU) 2022/2065), anyone
8585+ may notify us of content they consider illegal by emailing
8686+ <a href="mailto:hello@blento.app">hello@blento.app</a> with:
8787+</p>
8888+<ul>
8989+ <li>a substantiated explanation of why you believe the content is illegal;</li>
9090+ <li>the exact URL(s);</li>
9191+ <li>
9292+ your name and email (unless reporting offences under Arts. 3–7 of Directive 2011/93/EU);
9393+ </li>
9494+ <li>a good-faith statement that the information is accurate and complete.</li>
9595+</ul>
9696+<p>
9797+ We will acknowledge receipt, assess the report in good faith, and act expeditiously where
9898+ appropriate. Where feasible, we will provide a statement of reasons for any action taken.
9999+</p>
100100+101101+<h2>8. Disclaimer</h2>
102102+<p>
103103+ The Service is provided as is and as available. We do not warrant that the Service will be
104104+ uninterrupted, error-free, or that cached third-party content will be current or accurate.
105105+ Statutory warranty rights under German law remain unaffected.
106106+</p>
107107+108108+<h2>9. Liability</h2>
109109+<p>
110110+ We are liable without limitation for damages caused by intent or gross negligence, for injury to
111111+ life, body, or health, under the German Product Liability Act (ProdHaftG), to the extent of any
112112+ warranty we have expressly given, and in any other case of mandatory statutory liability.
113113+</p>
114114+<p>
115115+ For damages caused by ordinary negligence, we are liable only where we breach an essential
116116+ contractual obligation — that is, an obligation whose fulfilment makes the proper
117117+ performance of the contract possible in the first place and on whose observance you may regularly
118118+ rely ("Kardinalpflichten"). Our liability in such cases is limited to damages that are typical for
119119+ this kind of contract and reasonably foreseeable.
120120+</p>
121121+<p>Any further liability for ordinary negligence is excluded.</p>
122122+<p>
123123+ Because the Service is provided free of charge, the typical use case involves no paid services.
124124+ Nothing in this section restricts liability that cannot be restricted or excluded under mandatory
125125+ law.
126126+</p>
127127+128128+<h2>10. Termination</h2>
129129+<p>
130130+ You may stop using the Service at any time. On request to
131131+ <a href="mailto:hello@blento.app">hello@blento.app</a> we will delete any data we hold about your account
132132+ that cannot be deleted by you directly via your PDS. We may suspend or terminate accounts that violate
133133+ these Terms, with notice where reasonably possible.
134134+</p>
135135+136136+<h2>11. Changes to These Terms</h2>
137137+<p>
138138+ We may update these Terms where necessary, for example to reflect legal changes or new features.
139139+ We will notify you of material changes at least 30 days before they take effect, by posting the
140140+ updated Terms on this page with a new "last updated" date and, where you have an active account
141141+ with a reachable contact, by a reasonable additional means. If you do not object within 30 days
142142+ after notification, the updated Terms become effective; you have the right to terminate your use
143143+ of the Service during this period if you do not agree.
144144+</p>
145145+146146+<h2>12. Governing Law and Venue</h2>
147147+<p>
148148+ These Terms are governed by the laws of the Federal Republic of Germany, excluding the UN
149149+ Convention on Contracts for the International Sale of Goods. If you are a consumer with habitual
150150+ residence in another EU Member State, mandatory consumer-protection rules of that state remain
151151+ unaffected.
152152+</p>
153153+<p>
154154+ Exclusive place of jurisdiction for all disputes arising from or in connection with these Terms is
155155+ Berlin, Germany, to the extent you are a merchant, a legal person under public law, or a special
156156+ fund under public law, or you have no general place of jurisdiction in Germany. For consumers, the
157157+ statutory places of jurisdiction apply.
158158+</p>
159159+160160+<h2>13. Consumer Dispute Resolution</h2>
161161+<p>
162162+ The European Commission provides an online dispute resolution platform (OS):
163163+ <a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener"
164164+ >https://ec.europa.eu/consumers/odr</a
165165+ >. We are neither obliged nor willing to participate in a dispute-resolution procedure before a
166166+ consumer arbitration board (§ 36 VSBG).
167167+</p>
168168+169169+<h2>14. Severability</h2>
170170+<p>
171171+ Should any provision of these Terms be or become invalid or unenforceable, the validity of the
172172+ remaining provisions shall not be affected.
173173+</p>
174174+175175+<h2>15. Contact</h2>
176176+<p>Questions about these Terms? Reach out via:</p>
177177+<ul>
178178+ <li>Email: <a href="mailto:hello@blento.app">hello@blento.app</a></li>
179179+ <li>
180180+ Bluesky:
181181+ <a href="https://bsky.app/profile/blento.app" target="_blank" rel="noopener">@blento.app</a>
182182+ </li>
183183+</ul>