Privacy Policy
Last updated: 2026-10-21
Analytics
This site uses Firebase Analytics (built on Google Analytics) to understand aggregate traffic patterns such as page views and session counts. No custom event tracking is implemented beyond Firebase's automatic page-view collection.
Reaction Buttons
Clicking a reaction button increments a public counter stored in our database against that project or blog post. This is anonymous — it is not tied to your identity or account. Your browser's session storage remembers that you reacted, purely to prevent double-counting in the same session; nothing is sent to our servers beyond the increment itself.
AI Chat
The AI Chat feature requires signing in with Google. Messages you send are processed server-side and forwarded to Google's Gemini API to generate a response. Each conversation turn (your message, the AI's response, a timestamp, and your user ID) is logged to our database for quality review and is visible only to the site administrator. Chat history is also kept in your browser's local storage so your conversation persists between visits; clearing it is available from the chat panel.
Authentication
Google Sign-In (via Firebase Authentication) is used only to gate access to the AI Chat feature and the admin panel. It is not used for marketing or advertising purposes.
Data Sharing
We do not sell visitor data to third parties. Data is shared only with the service providers required to run the site: Google Firebase (hosting, authentication, database, and analytics) and Google Gemini (processing AI chat messages).
Privacy Requests
For questions about this policy or to request deletion of your data, email raphael@raphaeljedwards.com.