← Back to the site

Privacy Policy

Last updated:

This is my personal portfolio, showing selected web projects I've built. I work as a frontend engineer. If you'd like to collaborate, reach me at migueljfelixm@gmail.com.

What data I collect

There are no cookies, user accounts or comments on this site. The chat keeps the mood you picked, the theme and the sidebar width in your browser's local storage, so they stay as you left them. Seven things involve data.

Analytics. Cloudflare Web Analytics counts visitors, page views and device types, without cookies or fingerprinting. Cloudflare's privacy policy: https://www.cloudflare.com/privacypolicy

Chat questions. What you type into the chat on the home page is sent to Cloudflare Workers AI to find the answer that fits. The question is then stored in a Neon database, with which layer answered it and the scores behind that decision. No IP address, no session or device identifier, and nothing that links a question to the person who asked it. Before a question is stored, anything matching an email address, a phone number or a URL is replaced with a placeholder. I use these logs to find the questions the chat answers badly, reading them myself or through Claude, Anthropic's AI assistant. They are deleted after 90 days.

Page visits. When a page first loads, the site counts the visit: the page's path, the domain of the site that linked you here (for example linkedin.com, never the full link), and your country, which Vercel works out from the request. Your IP address and browser details are not stored. Visits are stored with the date and the hour, never the minute, under the same random visit number the click counts use, and are never linked to the questions you type. They are deleted after 90 days.

Bot check. When a page loads or the chat sends a question, Vercel BotID runs a check in your browser and on the server to tell whether the request came from a person or an automated script. Nothing is blocked. The result is stored with the visit or the question as a yes or no, along with a yes or no for whether the browser named itself as an automation tool (such as headless Chrome, Playwright or Puppeteer). The browser's name itself is not stored.

Clicks. The chat counts clicks anonymously, the same way it logs questions: which suggestions, follow-ups and panels are used, whether the message or CV form was started or sent, whether my email address was copied, whether the GitHub link in the + menu was opened, which mood was picked, how many messages a visit sends, and each page visit (described below). A visit is a random number made when the page loads. The visit number is kept only in the page's memory, not in a cookie or your browser's storage, and a reload starts a new one. Clicks are stored with the day, not the time, and are never linked to the questions you type. They are deleted after 90 days.

Messages and CV requests. If you send me a message or ask for my CV through the chat, your email address and message are sent to me through Resend, an email service. I use them only to reply. They stay in my inbox and are not shared with anyone else.

Hosting. The site is hosted on Vercel, which handles the requests that serve it.

Email

If you email me directly, I see your address and what you wrote, and I use it only to reply.

Your rights (GDPR)

If you are in the European Economic Area, you have the right to request access to the data I hold about you, to ask me to correct or delete it, and to object to or restrict its processing. To exercise any of these rights, send me an email.

External links

This site links to other websites. I am not responsible for the content or the privacy practices of those sites.

Data security

Reasonable measures are taken to protect any information you provide, though no website can guarantee complete security.

Changes

I may update this privacy policy from time to time. Any updates will be posted on this page with a revised date.

Contact

If you have any questions about this policy, email me at migueljfelixm@gmail.com.