Privacy

This site runs its own visitor log rather than a third-party analytics product. Nothing is stored in your browser by it, and it never records your IP address; there is no column for one. The hosting platform is a separate matter: Google Cloud Run keeps its own request log of every call for 30 days, including the caller's address, and this site neither controls that log nor uses it for analytics.

How a visit is labelled

Each visit is labelled with a value computed from your IP address, your browser’s user agent and the current calendar date in Istanbul, all hashed together under one secret key that does not itself change. The address itself is never stored, and there is no column it could be stored in. Within one day the label lets one visit’s page views be counted together. Across two days the labels cannot be matched by comparing them.

The label is pseudonymous, not anonymous. Given a candidate address, a past day’s label can still be recalculated. This site does not do that, but it is a thing that can be done, so it is stated here rather than described as anonymous.

If you send the contact form, the enquiry is stored with a second label that does not change from day to day, so repeat enquiries from one address can be recognised as related. The enquiry also records which day’s browsing session it came from.

What is stored in your browser

Two things: the locale cookie, which remembers whether you chose English or Turkish, and a theme value in local storage, which remembers whether you chose a light or dark theme. The visitor log itself stores nothing: no cookie, no local storage, no session storage.

How long things are kept

  • Individual page views and interactions: 90 days.
  • Daily per-visit totals, kept after the individual records are deleted: 12 months.
  • The counters that limit how often one visitor can post: 24 hours.
  • Contact enquiries, from the day they arrive: 24 months.
  • Booked discovery calls, from the day the booking reaches this site: 24 months. Each holds the name and email address the call was booked under, the time and length of the meeting, whether it was later moved or cancelled, and any note left with the booking.
  • The daily summary email’s bookkeeping ledger, which itself holds no personal data: 90 days.
  • Chat messages, from when each one was sent: 180 days. The conversation they belong to is kept afterwards for counts, language and cost, with its visitor label cleared the moment its last message is deleted, so nothing identifying survives it.
  • Unconfirmed booking requests, from when the link was sent: 7 days. Each holds the email address the confirmation link went to, a simplified form of that address used to count how much mail has been sent to it, the name given for the call, and any note typed into the request. Each is kept briefly after it expires so the limits on how much mail this site will send keep working.

The period above covers the database only. Each day’s conversations are also sent, in full, to the site owner in a daily internal summary email; deleting a message from the database does not remove it from that email.

Email, and the companies that carry it

Discovery calls are booked through Cal.com, which runs the booking form, holds the calendar and sends its own confirmation message, so the name and email address given for a call are held by Cal.com as well as here. Email this site sends for itself is delivered by Resend: today that is the site owner’s daily internal summary, and when the assistant launches it will also be the confirmation link described in the next section. One consequence of that link is worth stating plainly: the address on a booking request is typed by whoever is asking and does not have to be their own, so this site can be asked to send a confirmation link to somebody else’s inbox. Nothing reaches any calendar until the link in that message is opened, and there is a strict daily limit on how many such messages any one address can be sent.

What changes when the assistant launches

An assistant is planned for this site. It is not live yet, and nothing described here is happening today. When it launches, it will keep a conversation identifier in your browser’s session storage, never local storage, only for the length of your visit: closing the tab ends it, a second tab never sees it, and nothing is left behind on a shared machine. It exists so that reloading mid-conversation does not leave you stranded. The conversation itself will be handled by OpenRouter, the model provider it routes to, and LangSmith. Voice adds a fourth company, ElevenLabs, and the paragraphs below say exactly what it receives and when. This section will be rewritten in the present tense on the day that ships.

The assistant will also listen. Holding the microphone will turn what you say into text through your browser’s own speech recognition, and that recognition is not done on your device: your browser will send the audio to the company that makes it and get the text back, so a recording of your voice will leave your machine. Where the browser cannot handle the language you are reading this in, the audio will come to this site instead and be passed straight to ElevenLabs to be turned into text. Where neither can serve that language, there will be no microphone to hold at all: the control will be absent rather than offered and broken. This site never keeps the audio itself, on either path. The text will become an ordinary chat message, deleted on the same schedule as anything typed, listed above.

Replies can also be read out loud. That audio will be produced by ElevenLabs from the same words as the written reply, never a separate script, and this site’s own server will make that request so the ElevenLabs credential never reaches your browser. Spoken replies will start switched off, and a control for switching them back off will always be available: with them off, no reply text is sent to ElevenLabs. That control will govern speaking only, so where ElevenLabs is the service turning speech into text, holding the microphone will still send your audio there.