Privacy
Contact inquiries
The form sends your name, email address, inquiry type, optional budget and message to my notification inboxes through Resend so I can respond. Your email is used as Reply-To. Please include only information needed for the inquiry, and avoid passwords, confidential records or sensitive personal information.
The application does not store inquiries in a portfolio database or log their contents. The email service and receiving inboxes process and retain the messages. Hosting and security providers may retain operational request information according to their own policies.
Security checks
Cloudflare Turnstile checks the visitor’s browser for abuse. The backend verifies its token, hostname and action. The contact endpoint is configured to check Vercel’s rate-limit service using request information, including a client-IP bucket. If security or delivery services cannot be verified, it fails closed and offers direct email instead. A published rule alone does not establish successful end-to-end form delivery.
Local preferences and assets
Your theme and music preferences are stored in your browser. Music begins only after interaction. A service worker provides a small offline fallback for the homepage and favicon. It does not cache contact submissions. Fonts are served by this site. Following external links involves requests to their respective providers.
Questions or removal requests
Email hamzaali.dev@proton.me to ask about an inquiry or request removal from my retained correspondence. Third-party retention is governed by each provider.
Updated October 13, 2026.