Add GDPR-compliant cookie consent and Privacy Policy#3
Conversation
…4 setup Agent-Logs-Url: https://github.com/LookAtWhatAiCanDo/www/sessions/d6f98ac4-9a50-495e-87f1-2965b564afa2 Co-authored-by: paulpv <1393897+paulpv@users.noreply.github.com>
|
Visit the preview URL for this PR (updated for commit 80574cc): https://lookatwhataicando-1337--pr3-copilot-add-professi-mryos4lz.web.app (expires Sun, 05 Apr 2026 03:02:21 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: b998005ea2794ad052d0fefa06ef6d4567c1e52a |
For this site's actual data processing activities, the current single accept/decline is sufficient for GDPR/ePrivacy compliance. Here's why: Granular category checkboxes (necessary / performance / marketing) are only required when you have multiple distinct non-essential processing purposes. This site currently only has one non-essential purpose: Google Analytics. So there's nothing to split into separate categories. What the current implementation does satisfy:
If/when granular categories would be needed: One remaining grey area worth noting: Google Fonts is loaded from Google's CDN on every page load, which transmits the visitor's IP to Google regardless of consent. German DPAs in particular have flagged this. Self-hosting the fonts (downloading and serving from |
There was a problem hiding this comment.
Pull request overview
Adds GDPR/ePrivacy-oriented analytics consent gating and introduces a standalone Privacy Policy page for this static marketing site, aiming to prevent GA4 from running before user consent.
Changes:
- Gate GA4 by defaulting
analytics_storagetodeniedand only enabling GA4 config after explicit acceptance. - Add a persistent cookie consent banner and supporting JS (
public/js/consent.js) usinglocalStorage. - Add
public/privacy.htmland link it from the site footer.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| public/index.html | Sets GA consent default to denied, adds cookie banner markup, loads consent script, adds Privacy Policy footer link. |
| public/js/consent.js | Implements consent persistence and enables GA4 only after acceptance. |
| public/css/style.css | Styles the cookie banner and adjusts footer layout/link styling. |
| public/privacy.html | Adds a new Privacy Policy page and footer link. |
@copilot Create a PR to implement self-hosting the font |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/LookAtWhatAiCanDo/www/sessions/4798a675-8dd7-47be-b5a4-dd16e585ddfa Co-authored-by: paulpv <1393897+paulpv@users.noreply.github.com>
Agent-Logs-Url: https://github.com/LookAtWhatAiCanDo/www/sessions/37120059-acd1-4ea7-8df6-de1bd3df7542 Co-authored-by: paulpv <1393897+paulpv@users.noreply.github.com>
Agent-Logs-Url: https://github.com/LookAtWhatAiCanDo/www/sessions/fcb19d10-e916-4962-aea3-22b9ad64c958 Co-authored-by: paulpv <1393897+paulpv@users.noreply.github.com>
<style>block frompublic/privacy.htmlintopublic/css/style.csslocalStoragereads/writes intry/catch; setwindow.analyticsConsentedflagenableAnalytics()now only fires iflocalStorage.setItemsucceeded — analytics is never enabled when consent can't be persistedcanTrack()helper inapp.js; all four event tracking call-sites use it✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.