Otobong Okoko

Privacy

What this site collects about you, why, who else receives it, how long it is kept, and what you can ask me to do about it.

Who is responsible

Otobong Okoko runs otobong.com and is responsible for the personal data it processes (the controller under the GDPR). In this notice, “I” and “me” mean Otobong Okoko.

Otobong Okoko[Postal address to follow]Email: me@otobong.com

Write to me@otobong.com with any question about your data or to use the rights listed below. The imprint has the same contact details.

What the site processes

Each part of the site is described on its own: what it collects, why, and on what legal basis. How long each kind of data is kept is in one table under How long data is kept.

Server logs and hosting

The site runs on a virtual server rented from Hetzner Online GmbH, in Hetzner’s data centre in Helsinki, Finland. Coolify, software installed on that server, builds and runs the site.

When you open a page, your browser sends the server your IP address, the address of the page, the page you came from, your browser’s user agent (browser and operating system) and the time. The server needs these to send the page back to you.

To stop abuse, the site counts requests per IP address on the sign-in, CV code, chat, contact form and error report routes. Each count is deleted when its time window ends, after 2 days at most.

All fonts are served from this site, so opening a page sends nothing to Google Fonts or any other font service.

The server does not keep a log of page requests. The site's software writes technical log lines, for example when an error happens. These stay on the server in Helsinki, at most 30 MB of them, with the oldest overwritten first, and they are deleted whenever the site is updated.

The legal basis is my legitimate interest in delivering the site and keeping it secure (Art. 6(1)(f) GDPR).

Visit statistics

The site counts visits itself. It sets no cookie for this and stores nothing on your device. Bots, invite links, the owner dashboard and the content editor are not counted.

For each page view the server records the page address, the date and hour, the device type (phone, tablet or computer) and browser name worked out from the user agent, and the domain of the site you came from. These are added to daily totals. If your request arrives with a country and city already attached, those are added to daily totals by country and by city too. The site does not look up your location from your IP address.

Your IP address is not stored. To count unique visitors, the server works out a code from your IP address, your user agent and a key that changes every day. The code goes into a counter that keeps only an estimate of how many different codes it has seen, never the codes themselves, so nothing stored leads back to your IP address. Because the key changes daily, visits on different days cannot be linked. A counter of the same kind, deleted after 6 minutes, shows how many people are on the site right now.

Until 23 October 2026, the site also kept one record per visitor with the full IP address, when they first and last visited, and how many times. Those records are no longer read or shown, and each is deleted automatically 90 days after that visitor's last visit, so all of them are gone by 21 January 2027.

While you read, the page reports how long you spent on each page, how long your visit lasted since the last full page load, the last page you viewed and the links to other sites you followed. These go into daily totals that are not linked to you.

The legal basis is my legitimate interest in knowing which pages people read and whether the site works for them (Art. 6(1)(f) GDPR).

The chat

The chat assistant, Docent, answers questions about my work. When you send a message, the site sends your conversation and the address of the page you are on to Anthropic, whose Claude model writes the reply. It does not send Anthropic your IP address or any sign-in details. Avoid typing passwords, health details or other sensitive information into the chat.

The open conversation is kept in your browser tab, so it survives a page change, and is gone when you close the tab. When you close the chat, after two idle minutes, when you leave the page or when you start a new chat, the conversation is saved on the server: your messages, the replies, the page address, the page you came from, your browser’s user agent, when it started and how long it lasted, and the topics and the kind of visitor (for example a recruiter) the site guesses from your messages. It is deleted after 90 days.

A copy of each conversation is emailed to me, at most 3 a day per IP address and 50 a day in total. Emails to me are described under Contact form and emails.

The legal basis is my legitimate interest in answering visitors’ questions about my work and learning what they want to know (Art. 6(1)(f) GDPR).

Sign-in and access to case studies

Some case studies are private. You can open them in two ways.

  • With your work email address. You receive a 6-digit code by email, valid for 10 minutes. Personal and disposable addresses are refused. If I have invited you, you are signed in. If not, the site records an access request (your email address, the page you wanted and the time) and emails me, and I approve or dismiss it.
  • With the code printed on my CV. No email address is needed. The session gets a random identifier instead.

I can also invite you. An invite holds your email address, your name and the case studies you may open, and the invite email has a personal link. An invite you have not accepted is deleted after 7 days. An accepted invite is what keeps your access, so it is kept until I revoke it, and a revoked invite is kept as well. There is currently no end date for either.

Each sign-in is logged: how you signed in, your email address and name (or which CV code), the page you opened, the page you came from, your browser’s user agent, a short code worked out from your IP address, and the time. I receive an email about each sign-in, for CV code sign-ins at most one an hour per address. A cookie keeps you signed in for 7 days.

If an address is refused, the site counts further attempts with that address until it has been unused for 30 days, and emails me about it at most once an hour.

Before some case studies you accept a non-disclosure agreement by typing your full name. The site stores your name, your email address (or the CV code session), the case study, the agreement’s version and a fingerprint of its text, your full IP address, your browser’s user agent and the time. This record is evidence of the agreement and is kept for 551 days: the agreement’s 6-month term plus one year. If you signed in by email, you receive a copy of the agreement by email. I receive a notice.

The legal basis is my legitimate interest in sharing confidential work only with people I can identify, and in being able to prove that the agreement was accepted (Art. 6(1)(f) GDPR).

Contact form and emails

The contact form sends me your name, email address, subject and message by email, with your address set as the reply address. The site itself stores only a daily count of messages, not the messages.

All email from the site is sent through Resend. Emails to you: the sign-in code, invite links and your copy of the non-disclosure agreement. Emails to me: contact messages, chat conversations, and notices about sign-ins, access requests, accepted agreements and refused addresses.

I receive these emails at me@otobong.com, a Google Workspace mailbox, and each one is also copied to my personal Gmail address. They stay in both mailboxes until I delete them.

The legal basis is my legitimate interest in answering your message and in knowing who opens private work (Art. 6(1)(f) GDPR).

Error monitoring with Sentry

The site uses Sentry to find and fix errors and slow pages. When something breaks, Sentry receives a technical report: the page address, the pages you opened and the buttons you clicked just before, your browser, device, language and time zone, and what the code was doing. For about one page load in ten it also measures how long the page and the server took.

If an error happens, Sentry may also receive a replay of the minute before it and of the rest of that visit. In a replay all text and everything you type is masked, and images and video are blocked, so it shows the layout and your clicks, not what you read or wrote. Nothing is recorded on the sign-in, non-disclosure agreement, invite and private pages. Errors there are still reported, without a replay.

Before a report leaves the site, email addresses, IP addresses, cookies, sign-in and invite codes the site can recognise, request bodies and chat messages are removed. Reports from your browser go to this site’s own address first, which passes on only the report, without your cookies or IP address. Sentry is set not to store IP addresses, and stores the reports in its EU region in Frankfurt, Germany.

The legal basis is my legitimate interest in finding and fixing errors on this site (Art. 6(1)(f) GDPR).

Google Analytics, only with your consent

Google Analytics runs only if you choose Accept analytics in the banner. Until then the site loads nothing from Google and sets no Google cookie.

If you accept, your browser loads Google’s tag from googletagmanager.com. Google then sets the cookies listed below and receives the pages you view, the page you came from, your browser, device and screen details, and your IP address, which reaches Google with every request. Google states that Google Analytics 4 does not log or store IP addresses. Google signals and ad personalisation are switched off, and advertising storage is denied. Google Analytics never runs on the sign-in, non-disclosure agreement, invite, private and owner pages, whatever you chose.

Your choice counts for 6 months; then the banner asks again. It also asks again if what the site sends to Google changes. You can withdraw your consent at any time, as described under Your analytics choice.

The legal basis is your consent (Art. 6(1)(a) GDPR, and § 25(1) TDDDG for the cookies).

Cookies and storage

Cookies that do not need consent are strictly necessary for something you asked for, such as staying signed in or remembering your analytics choice (§ 25(2) TDDDG). Only the Google Analytics cookies need your consent.

Cookies
CookieWhat it doesLifetimeNeeds consent
__Host-consentRemembers your Google Analytics choice and the day you made it.6 monthsNo
_gaGoogle Analytics: tells visitors apart.2 years (Google’s default)Yes
_ga_<ID>Google Analytics: keeps the state of your visit. <ID> is the site’s Google Analytics ID.2 years (Google’s default)Yes
portfolio-authKeeps you signed in after email sign-in.7 daysNo
__Host-portfolio-cv-codeKeeps you signed in after entering a CV code.7 daysNo
portfolio-ndaRecords that you accepted the non-disclosure agreement.7 daysNo
portfolio-visitor-nameYour name from the invite, to greet you on the presentations page.7 daysNo
dashboard-authMy own sign-in to the owner dashboard. Never set for visitors.24 hoursNo

The site also keeps a few entries in your browser’s storage. Session storage is cleared when you close the tab; local storage stays until you clear it.

Browser storage
EntryWhat it doesKeptNeeds consent
chat-messageschat-session-idchat-start-timechat-loggedchat-msg-countThe open chat conversation, its start time and how many messages you sent.Session storage, until you close the tabNo
portfolio-login-stepThe email address you are verifying, so a reload keeps your place in sign-in.Session storage, until you close the tabNo
portfolio-loadedThat the opening animation has played.Session storage, until you close the tabNo
sentryReplaySessionSentry: the identifier of the error replay for this tab.Session storage, until you close the tabNo
themeYour choice of light or dark theme.Local storage, until you clear itNo
consent-syncTells your other open tabs that you changed your analytics choice. Used only by browsers without BroadcastChannel.Local storage, until you clear itNo

Who receives data

These companies process data for me. I have a data processing agreement with each of them, except where the table says otherwise.

Recipients
RecipientWhat forWhere
Hetzner Online GmbH, GermanyThe server that runs the siteHelsinki, Finland
Upstash, Inc., USAThe database: visit statistics, chat conversations, sign-in and agreement records, invites, abuse countersRegion to be confirmed
Anthropic, USAWriting the chat’s repliesUSA
Resend (Plus Five Five, Inc.), USASending the site’s emailsUSA, including its email logs
Google (Google Workspace)My mailbox me@otobong.comRegion to be confirmed
Google (personal Gmail account)Copies of the emails sent to me. A personal account, without a data processing agreement.Google’s data centres
Sentry (Functional Software, Inc.), USAError monitoringFrankfurt, Germany (EU region)
Google, only with your consentGoogle AnalyticsGoogle’s data centres, including the USA

Transfers outside the EU

Anthropic, Resend, Sentry, Upstash and Google are companies based in the USA, or owned by one, so data can reach the USA even when it is stored in the EU.

  • Google LLC, Functional Software, Inc. (Sentry), Plus Five Five, Inc. (Resend) and Upstash, Inc. state that they are certified under the EU-US Data Privacy Framework. For certified companies the European Commission’s adequacy decision of 10 July 2023 applies (Art. 45 GDPR).
  • For Anthropic, transfers rest on the European Commission’s Standard Contractual Clauses of 2021, which are part of its data processing agreement (Art. 46 GDPR).

To ask for a copy of these safeguards, write to me@otobong.com.

How long data is kept

Retention
DataKept for
Abuse counters per IP addressUp to 2 days
Technical log lines on the serverUntil the site is next updated; at most 30 MB, oldest first
Visit statistics (daily totals and unique visitor counts, no IP address)90 days; activity by hour 48 hours; visitors on the site now 6 minutes
Older visitor records with your full IP address, made before 23 October 202690 days after your last visit; all gone by 21 January 2027
Chat in your browser tabUntil you close the tab
Saved chat conversations90 days
Chat messages at AnthropicDeleted within 30 days; up to 2 years if flagged for breaking Anthropic’s usage policy
Sign-in code10 minutes
Sign-in log90 days
Attempts with a refused address30 days after the last attempt
Access requestsUntil I approve or dismiss them
Invites not accepted7 days
Accepted and revoked invitesNo end date at present
Non-disclosure agreement record, with your full IP address551 days
Sign-in cookies7 days
Emails in my two mailboxesUntil I delete them
Email logs at ResendAs long as Resend keeps them; to be confirmed
Error reports and replays at Sentry30 days
Your analytics choice6 months
Google Analytics data, with consentAs set in Google Analytics; to be confirmed

Your rights

Under the GDPR you can ask me to:

  • tell you what data I hold about you and give you a copy (Art. 15);
  • correct data that is wrong (Art. 16);
  • delete your data (Art. 17);
  • restrict how your data is used (Art. 18);
  • tell the recipients above about any correction, deletion or restriction, and tell you who they are (Art. 19);
  • give you the data you provided in a common, machine-readable format (Art. 20).

Where I rely on legitimate interest, you can object to the processing for reasons arising from your situation (Art. 21). I then stop, unless I have compelling legitimate grounds that override your interests or need the data for legal claims.

You can withdraw your consent to Google Analytics at any time (Art. 7(3)). This does not affect processing before the withdrawal.

To use any of these rights, write to me@otobong.com.

You can also complain to a data protection authority (Art. 77). The authority for this site is the Berlin Commissioner for Data Protection and Freedom of Information (Berliner Beauftragte für Datenschutz und Informationsfreiheit):

Berliner Beauftragte für Datenschutz und InformationsfreiheitAlt-Moabit 59-6110555 Berlin, Germanymailbox@datenschutz-berlin.dewww.datenschutz-berlin.de

Your analytics choice

Select Cookie settings at the bottom of the page. The banner opens again and shows your current choice and the day you made it. Choose Accept analytics or Reject analytics.

Rejecting stops Google Analytics on the page you are on and deletes its cookies. Your other open tabs follow. From the next page load Google’s tag is not loaded at all.

Cookie settings appears only while the site uses Google Analytics. Without JavaScript, Google Analytics cannot run, so the button is hidden.

Last updated 23 October 2026. Imprint