Конфиденциальность и ваши данные
Что собирает v10r.dev, как долго это хранится и как воспользоваться своими правами — включая куки.
Что мы собираем и почему это законно.
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
| Поле | Тип | Пример / примечание |
|---|---|---|
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
| Поле | Тип | Пример / примечание |
|---|---|---|
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)
| Поле | Тип | Пример / примечание |
|---|---|---|
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)
| Поле | Тип | Пример / примечание |
|---|---|---|
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.
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
| Поле | Тип | Пример / примечание |
|---|---|---|
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.
Думаете, этот паттерн можно сделать лучше? Расскажите как.
Оставить отзыв