Datenschutz & Ihre Daten
Was v10r.dev erhebt, wie lange es aufbewahrt wird und wie Sie Ihre Rechte wahrnehmen – einschließlich Cookies.
Was wir erfassen und warum es rechtmäßig ist.
Five categories. The first applies to every visitor; the others only kick in when you explicitly opt in, send feedback, check a name, or sign in.
Pre-consent visit (default)
Every public page request, before you click anything on the cookie banner.
Art. 6(1)(f) Legitimate interest
| Feld | Typ | Beispiel / Hinweis |
|---|---|---|
visitor_id | hmac-sha256(server key, ip + user-agent) | v1_a3f29c81d6e4b5f08c1d7e2b4a690f35 Raw IP is never written to the database. Keyed, so the value cannot be reversed by guessing addresses. |
path | string | /showcases Pathname only. Query strings are dropped. |
timestamp | timestamptz | 2026-05-01 14:21:08+00 |
country | iso-2 (coarse) | DE From CDN edge headers; never the city or region. |
confirmation ping | constant payload | One consent-free POST proving the page ran JavaScript — it reads nothing from your device and carries no identifier you could be recognised by. It only marks the visit as made by a real browser rather than a crawler. |
ip_class | enum (datacenter / icloud_relay / unknown) | Your connection IP is checked once against published cloud and iCloud-Relay ranges at write time; only the class is stored, never the address. Used to rank crawler-shaped traffic, never to exclude anyone. |
- Pre-consent traffic exists so the site can count visits and detect abuse — that is the legitimate interest.
- Device, browser, and referrer fields are NULL until you give analytics consent.
- Bot and prefetch requests are filtered out before any row is written.
- Recipient: Vercel Inc. hosts the site (Art. 28 processor, EU SCCs), so every request technically passes through its infrastructure. Vercel Web Analytics — a separate, third-party measurement — is only loaded after analytics consent.
After "Accept all" or "Customize → Analytics"
Only after you actively grant analytics consent via the cookie banner.
Art. 6(1)(a) Consent
| Feld | Typ | Beispiel / Hinweis |
|---|---|---|
all of the above | — | Pre-consent fields continue to apply. |
device | enum | desktop / mobile / tablet |
browser | string | Chrome 130 |
referrer | origin only | https://news.ycombinator.com Still scheme + host only. Consent does not widen this — a full referring URL can carry a sign-in token in its query string. |
session_id | cookie _v10r_sid | s_b9a72c0f Lets us reconstruct the page-by-page journey. |
journey events | page transitions | Client-side navigations, batched and sent via sendBeacon during the visit and on tab close. Deduplicated by event_id; the initial page load is never double-counted. |
Vercel Web Analytics | third-party script | Injected only after analytics consent. Sends page URLs and coarse geo to Vercel Inc.; its visitor hash is discarded after 24 hours and it sets no cookies. |
- Consent is recorded with timestamp, IP-hash, and the exact tier — kept for 13 months as Art. 7(1) demonstrability.
- You can withdraw consent at any time through the banner; the SID cookie is cleared and journey collection stops on the next request.
Feedback you submit
Only when you fill in and submit the /feedback form.
Art. 6(1)(f) Legitimate interest (responding)
| Feld | Typ | Beispiel / Hinweis |
|---|---|---|
subject | string (3–120) | Bug on the chat page |
body | string (10–4000) | … |
rating | smallint 1–5 (optional) | |
contact_email | email (optional) | Only if you provide one for follow-up. |
page_of_origin | string | /showcases/ai/chatbot |
session_id | string (nullable) | Set only if you had analytics consent at submit time. Lets the operator see which pages you visited before the message. |
- Honeypot + minimum-fill-time + rate limit reject obvious bots before storage.
- Feedback is kept until you ask to have it removed — there is no automatic expiry. Email the controller to delete a specific submission.
A name you check
Only when you submit the /showcases/name-check form or call /api/name-check.
Art. 6(1)(f) Legitimate interest (answering your query)
| Feld | Typ | Beispiel / Hinweis |
|---|---|---|
query | string (2–80) | Velora Sent to the registries below and to the web-search provider, then discarded. Never written to a database or a log line; a sha256 of the normalised name keys a cache for 24 hours (1 hour for domain rows). |
territory / category | enum | de / software Selects which registries are asked and how relevance is graded. Not stored. |
ip bucket | ip:<address> (v6 masked to /64) | Rate-limit key only, in Redis for the 60-second window. Never joined to the query. |
- Recipients of the name: EUIPO (EU trade mark register), GLEIF (LEI index), the RDAP servers of the domain registries for the generated variants (Verisign, PIR, Google, DENIC, …), and the configured web-search provider (Tavily or Brave). Manual-only registries receive nothing — you follow the link yourself.
- Honeypot + minimum-fill-time + rate limit + per-source daily quotas bound what one visitor can spend; a source that is unavailable is reported as such, never silently skipped.
A call to the external service
Only when you press a button on /showcases/external-service.
Art. 6(1)(f) Legitimate interest (abuse protection)
| Feld | Typ | Beispiel / Hinweis |
|---|---|---|
ip bucket | ip:<address> (v6 masked to /64) | Rate-limit key only, in Redis for the 60-second window. |
- Recipient: Render (Frankfurt) hosts the service. It receives server-chosen sample orders from our server, never anything you typed or your IP address.
Account data (if you sign in)
Only if you create or use an account on the protected /app surface.
Art. 6(1)(b) Performance of contract
| Feld | Typ | Beispiel / Hinweis |
|---|---|---|
email | string | Used to identify you and reach you for account events. |
password | argon2 hash | Plaintext is never written to disk. |
session_token | opaque, http-only cookie | Better Auth manages rotation and expiry. |
audit trail | login / logout / password change | Stored to support security investigations under Art. 32. |
- Account creation is optional — you can use the public site without ever signing in.
Geht dieses Pattern noch besser? Sag uns, wie.
Feedback geben