Skip to main content

LEGAL

Privacy Policy

This page explains, in plain language, what data this portfolio site collects, why it is used, how long it is kept, and how you can contact me about it.

Last updated: July 2026

Who operates this site

This portfolio website is operated by Adam Mikael (contact@adammikael.com). The public site is published at adammikael.com.

Contact form data

When you use the contact form, the site collects your name, email address, and message so I can read and reply to your enquiry.

Submissions are protected by Cloudflare Turnstile and server-side rate limiting to reduce spam.

Messages are stored in a private Cloudflare D1 database and are visible only in the private admin area. They are not published on the site.

After a message is stored, the site may send me an email notification through Resend so I can see and reply to your enquiry. Resend is used only to deliver that contact notification — not for marketing, analytics, or any other purpose.

Contact messages are normally kept for up to 12 months, unless longer retention is needed for ongoing communication, security, legal, or business record reasons. You can ask me to delete a message you sent by emailing me at the address above.

Hosting and security

The site is hosted on Cloudflare Workers. Cloudflare processes requests to deliver pages, apply security protections, and route traffic.

Structured site content, contact messages, rate-limit records, and media metadata are stored in Cloudflare D1. Media files are stored in Cloudflare R2.

First-party media (for example profile photos, CV files, and project images) is served through this site's own URLs, not as direct public storage links in the HTML.

Cloudflare Turnstile

The contact form uses Cloudflare Turnstile to help prevent automated abuse. Turnstile is classified as essential for the contact form and may set cookies or use browser storage as part of the challenge.

Turnstile loads only on the Contact page when the form is available.

YouTube and external media

Some project pages can show embedded YouTube videos. These are optional. They do not load until you allow External media in cookie settings.

When allowed, embeds use youtube-nocookie.com. Preview thumbnails may load from i.ytimg.com. YouTube may process data according to its own policies.

If you reject optional cookies or do not enable External media, project pages still work but video embeds remain blocked behind a consent prompt.

Cookies and similar technologies

This site uses cookies and similar technologies, including local storage, to operate and to remember your public cookie preferences.

Essential functionality includes site pages, first-party media delivery, contact form security (including Cloudflare Turnstile on the Contact page), and remembering your consent choice.

Optional external media (for example YouTube embeds on project pages) is not loaded until you grant consent for External media.

Your public consent preferences are stored in your browser's local storage under a versioned key (am_cookie_consent_v1). They are kept for up to 180 days, or until you change or clear your preferences or remove site data from your browser.

Optional usage analytics are not used on this site today. The cookie settings UI does not show an analytics category until such a feature is implemented.

You can reopen cookie settings from the site footer at any time.

Admin area (private)

A private /admin area exists for site maintenance. It is not linked in public navigation and is blocked from search indexing.

Admin sign-in uses custom Cloudflare D1 authentication with HttpOnly session cookies while you are signed in. This applies only to authenticated admin use, not to public visitors.

Your choices and contact

You can manage optional cookies through the cookie banner or footer link. For questions, corrections, or deletion requests relating to data you submitted through this site, email contact@adammikael.com.

I aim to respond to reasonable privacy requests in a timely manner.

Questions? Contact me or email directly from the footer.