Privacy.
bogdanbaciu.com is a personal site. I care about what people read, how far they read, and where they came from so I can write better things. I do not sell data, run ads, or profile you across other sites. This page explains what is collected, by whom, and how to opt out.
What I collect myself.
The site is a Phoenix LiveView application hosted on Fly.io, backed by an external
Postgres database. An inline beacon in the page's JavaScript bundle records
anonymous pageviews, scroll depth, time spent reading, clicks (including outbound
links), copy events, Web Vitals performance metrics, and JavaScript errors. Events
are sent to my own backend (POST /api/track) and stored in the
application database. No name, email, or account information is ever attached to
these events. A random ID is stored in your browser's localStorage so
returning visits are counted as returning, not new.
Microsoft Clarity.
I partner with Microsoft Clarity and Microsoft Advertising to capture how you use and interact with this website through behavioral metrics, heatmaps, and session replay to improve the site. Website usage data is captured using first- and third-party cookies and other tracking technologies to determine the popularity of posts and online activity. Additionally, this information is used for site optimization and fraud/security purposes. For more information about how Microsoft collects and uses your data, see the Microsoft Privacy Statement.
PostHog.
PostHog is a product-analytics service that records product events similar to Clarity but in structured form. It may set cookies or use local storage. It does not attempt to identify you personally on this site — profiles are only created for identified users, which this site does not have. See the PostHog Privacy Policy.
Sentry.
Sentry receives JavaScript error reports — the error message, stack trace, browser type, and the URL where the error occurred. It does not receive your page content or inputs. This exists so I can find and fix bugs. See the Sentry Privacy Policy.
Newsletter & subscriptions.
If you subscribe via the signup form, I store the email address you provide, the timestamp, and your browser's user-agent. Your IP address is stored as a one-way HMAC hash so I can detect signup abuse without knowing your address. Email uses double opt-in: you only start receiving messages after you click the confirmation link.
Email is sent via Resend. Your email address is only shared with Resend to deliver the message you asked for — it is not used for advertising or shared elsewhere.
Message frequency is low (roughly one per post). You can unsubscribe any time by clicking the link in any email or visiting the preferences page linked in every message.
Hire-me intake form.
If you submit the hire-me form, I store the information you enter — name, email, company, the engagement type, your problem description, your timeline, your budget range, and any access notes — together with your IP address and user-agent for fraud prevention. If you attach files, the file contents are stored as binary data in the same Postgres database. These submissions are kept indefinitely so I can refer back to the conversation when we follow up. To have your intake submission deleted, email bogdanbaciu@gmail.com.
Blog topic suggestions and AI-assisted research.
If you suggest a blog topic via the request form, the request text and the email you optionally provide may be sent to research providers (Anthropic, Google Gemini, Parallel.ai) to draft a research bundle. The request text and any output are stored in the application database alongside your suggestion. No other personal information is sent to these providers.
How long is data kept.
- Analytics events: kept for up to 24 months. Older rows are deleted on request today; an automated retention purge is on the roadmap.
- Newsletter subscriptions: kept until you unsubscribe.
- Hire-me intake submissions and attached files: kept indefinitely until you ask me to delete them.
- Blog topic suggestions: kept indefinitely as part of the site's editorial backlog; the optional email you provide is deleted on request.
- Background job records (Oban): pruned automatically after 14 days.
How to opt out.
- Use a content blocker (uBlock Origin, Privacy Badger, etc.). All analytics on this site are blockable and the content of the site will render identically without them.
- Delete site data for bogdanbaciu.com in your browser settings to clear the anonymous visitor ID and any third-party cookies.
- Email bogdanbaciu@gmail.com to request deletion of any subscriber, intake, or blog-request record tied to your address.
Note on Do Not Track: the first-party beacon does not currently check
navigator.doNotTrack. Third-party tools (Clarity, PostHog, Sentry)
honor DNT to varying degrees according to their own policies.
Subprocessors.
The full machine-readable list of subprocessors — vendor, purpose, data class,
region, and link to each provider's privacy policy — is maintained at
docs/subprocessors.md in the site's source repository and is
updated whenever a new integration is added.
Legal basis, retention, and contact.
This site is operated for a personal audience and the processing is based on legitimate interest in understanding how my writing is read. If you have a question or want your data removed, email bogdanbaciu@gmail.com.