Search pages, headings and code across the docs, examples and tutorials.

to navigateto open

Privacy

What ohne.dev counts without cookies, what an account stores and why, how provider keys are sealed, who receives data, how long it is kept, and your rights.

This page covers you when you:

  • visit ohne.dev
  • try a demo on preview.ohne.dev or under try.ohne.dev
  • browse the components on kit.ohne.dev
  • hold an ohne.dev account

Who is responsible

Muris Ceman

Contact: hello@ohne.dev

Statistics on ohne.dev

ohne.dev counts its page views to understand which pages help and where visitors come from. The legal basis is a legitimate interest, Art. 6(1)(f) GDPR. The counts are made on the server, from the requests your browser already sends. There is no statistics script, and nothing is stored on or read from your device for them. The account pages under ohne.dev/account are never counted.

What the server reads for each page view, in memory:

  • the page's full address, which is cut down at once to its path and its utm_source, utm_medium, utm_campaign and ref parameters
  • the full address of the referring page, which is cut down at once to the referring site's host name, or to the ohne.dev page you came from
  • your IP address and your browser's user agent
  • the country and city Cloudflare derives from your IP address, and the number of the network it belongs to

What is kept:

  • The statistics never write down your IP address, user agent or network number. They are read in memory to drop bots, to name the browser, system and device type, and to form a visitor hash.
  • The visitor hash is made from your IP address and user agent with a random key that is kept for one day only and deleted every day at midnight UTC. Without that key the hash cannot be traced back to your IP address, and once the key is deleted nobody can form it again or link your visits across days.
  • Each page view is kept for at most 48 hours with that hash and its time, the page, the referring host or previous page, the source named from them, whether it began a visit, the campaign parameters, the country and city, and the browser, system and device type.
  • Campaign parameters are kept lowercased and cut to 100 characters, except a value holding an email address, a long number or an ID, which is dropped. A tag that names someone, such as ref=alice, would be kept, so ohne.dev tags the links it shares with campaign names only.
  • After that only daily totals remain, such as views per page, visits per country, city or campaign, or per hour of the day. They hold no hash and no identifier, only counts per day, so they are kept.

If your browser sends Global Privacy Control (Sec-GPC: 1) or Do Not Track (DNT: 1), ohne.dev takes it as an objection, and your page views are not counted at all.

The demos and the account app report only totals to the statistics, such as how many demos were opened that day. They never report who. These totals are plain counts with nothing about you, so they are counted whatever your browser sends.

What the account stores, and why

  • Your email and a hash of your password, to sign you in and to send you account mail.
  • Your keys, sealed, with the name you gave each, its first and last characters, its default model and what your provider last said about it. The demos need them to run on your key.
  • The demos you connect without being asked, so they skip the question next time.
  • Sessions, one per signed-in browser, so you stay signed in.
  • Mail links, stored only as a hash, to confirm your email, reset your password or change your email.
  • Encrypted backups of all of the above, every hour, so a lost server does not lose your account.

Server logs

  • On ohne.dev, on kit.ohne.dev and on stats.ohne.dev, where the operator reads the statistics, the web server keeps no access log. Its error log notes only faults of the server itself, never the requests that met them.
  • When a page on ohne.dev does not exist or fails, the site's own server logs the address asked for, with its query, for up to 14 days.
  • On preview.ohne.dev, account.ohne.dev and the demos under try.ohne.dev the web server keeps standard access logs, including IP addresses, for up to 15 days for security.
  • The apps behind them log errors and events, never an IP address or a user agent.

How keys are protected

Each key is sealed with AES-256-GCM under a key only the relay holds. The account app stores the sealed form and cannot open it. The relay opens a key for the length of one call to your provider.

This protects keys from a copy of the database, a log or a break-in to the account app. A person with full access to the server could still read them.

A demo never gets your key. It gets a pass bound to its session, which ends with the session or when you disconnect.

What reaches your provider

What you type in a demo's search, and the demo records the assistant reads to answer, go to your AI provider under your own agreement with them. ohne.dev passes them on and keeps none. A demo keeps its chats in its own sandbox, for at most 30 minutes.

When you write

Mail to hello@ohne.dev is kept as long as the conversation needs it, to answer you. The legal basis is a legitimate interest, Art. 6(1)(f) GDPR.

Recipients

  • Hetzner, hosting, statistics and encrypted backups, Germany.
  • Brevo, transactional mail, France, under its data processing agreement.
  • Cloudflare, DNS and proxy for ohne.dev and kit.ohne.dev, so it handles every request to them, your IP address included, and keeps its own edge logs under its data processing agreement. preview.ohne.dev, account.ohne.dev, stats.ohne.dev and the demos under try.ohne.dev are not proxied. The account pages under ohne.dev/account come through Cloudflare, but what you type there, your password and your keys included, goes from your browser straight to account.ohne.dev, unproxied. Cloudflare also receives mail to hello@ohne.dev and forwards it.
  • Google, the mailbox mail to hello@ohne.dev is forwarded to.

Cloudflare and Google are based in the USA and certified under the EU-US Data Privacy Framework, which the European Commission found to give adequate protection, Art. 45 GDPR.

How long data is kept

  • Page views with their visitor hash: 48 hours. Daily totals: kept, as they hold only counts.
  • Server access logs on preview.ohne.dev, account.ohne.dev and the demos under try.ohne.dev: up to 15 days. The log of failed pages on ohne.dev: up to 14 days.
  • An account whose email is never confirmed: 7 days.
  • Spent or expired mail links: 1 day.
  • Everything else in an account: until you delete the account.
  • Backups: 7 days on the server, and up to 60 days in a copy ohne.dev keeps off the server. A backup is encrypted with a key that never sits on the server. If one is ever restored, every deletion made since it was taken is applied again before the account app serves it.
  • A log of deletions and password and email changes, holding only the time, what happened and an internal ID, never your email: 90 days on the server, and inside backups for as long as those are kept. It exists so a restore can apply them again.

Your rights

Under the GDPR you may ask for access to your data, correct it, have it deleted, and take it with you. You may object to the statistics at any time, most simply with Global Privacy Control. The account's Security page exports everything it holds and deletes the account. You may also complain to a data protection supervisory authority.

Statistics cannot be looked up for one person: the visitor hash cannot be formed again once its daily key is gone.

Cookies and storage

Nothing is stored on your device for statistics. What is stored is strictly necessary for what you asked for, Art. 5(3) of the ePrivacy Directive, so it needs no consent. This is all of it:

  • Theme, in your browser's local storage on ohne.dev and on the demo websites under try.ohne.dev, only if you pick light or dark.
  • Sandbox cookie, on preview.ohne.dev and each demo under try.ohne.dev, holding the id of your private demo copy for as long as it lasts.
  • Demo session cookie, on preview.ohne.dev and each demo under try.ohne.dev, keeping you signed in to the demo.
  • Account session cookie, on account.ohne.dev, keeping you signed in to your account. Your browser sends it with each request an account page on ohne.dev or a demo makes to account.ohne.dev.
  • Dashboard preferences, in your browser's local storage on preview.ohne.dev, kit.ohne.dev and the demo dashboards under try.ohne.dev: the theme, which they take over from ohne.dev so the two match, the AI model you chose in the demo, and uploads you started and have not finished.