feat: 📈 update privacy policy and consent banner explainer

This commit is contained in:
Sebin Nyshkim 2025-08-03 21:25:26 +02:00
parent 17e0709fd9
commit 9e492f666d
Signed by: SebinNyshkim
SSH key fingerprint: SHA256:LG1WHMySL/4iW/Yci+0eHgbf0te5beRiLlmyoY8E5D0
2 changed files with 9 additions and 7 deletions

View file

@ -124,7 +124,7 @@
<div class="space-y-4 p-4 text-center">
<p class="text-xl font-bold">Analytics</p>
<p>
May I collect some anonymized data about the device you use to view this site? I won't know who you are. See:
May I collect anonymized data about your device to help me improve this site? No personally identifiable data is stored. See:
<a href="/privacy" class="!decoration-white hover:!text-white dark:!decoration-sky-600 dark:hover:!text-sky-600">Privacy Policy</a>.
</p>
</div>

View file

@ -12,7 +12,7 @@ Ackee is open-source analytics software. The data it collects is anonymized in a
Ackee gives me insight into the following data points:
* Number of visits per day
* Number of visitors for a given day
* Number of visitors that currently view the site
* Approximate duration of stay
* Number of times a given page was visited
@ -23,23 +23,25 @@ Ackee gives me insight into the following data points:
* Screen size of the device
* Primary language of the browser or operating system
Ackee uses the IP, user-agent and domainId to identify a user. All information will be hashed together with a [salt](https://en.wikipedia.org/wiki/Salt_(cryptography)) that changes daily. The final hash is called `clientId`.
Ackee uses the IP, user-agent (browser name, version, operating system) and domain ID of a visitor to calculate a client ID. This data is immediately discarded after calculation. Ackee calculates the client ID in a way that it cannot be used to trace back to individual visitors. It avoids that database backups can be used to stick data together to reconstruct the browsing history of a user.
The daily salt is never stored anywhere. It avoids that database backups can be used to stick data together to reconstruct the browsing history of a user.
In other words: Unless we're in the same room together and already know the above data points in advance, I do not know who clicks around on this site. I only know that *someone* was here but not *who*.
## Purpose of collecting data
I collect this data to better understand my audience, improve the site's user experience, and to inform future development and editorial decisions. The data will not be shared with anyone, ever.
I collect this data to better understand my audience, improve the site's compatibility so it looks and works right on as many devices as possible, and to inform future development and editorial decisions. The data will not be shared with anyone, I will remain the sole person with access to it. It is purely for the purpose of maintenance.
## Data retention
Ackee removes data from previous records when a new record with an existing identification gets added. This way the user identifier and other identifiable data is only stored once in the database.
Ackee removes data from previous records when a new record with an existing identification gets added. This way the user identifier and other potentially identifiable data is only stored once in the database.
In other words: Ackee forgets who you are as soon as it sees you again. It's not possible to reconstruct a browsing history, even on a daily basis.
## User consent
Data collection is opt-in. I will not collect any analytics data until you explicitly allow me to do so. If you previously opted-in but changed your mind, click the button below:
Data collection is opt-in. No data is sent to my Ackee installation before you give your explicit consent. If you decline, no data will ever be sent to my Ackee installation. The banner at the bottom of the page will keep asking you until you decide to agree or disagree. In either case, your browser will remember your choice in its local storage. If you clear your browser's cache your choice may be cleared as well, in which case the banner will appear and ask for your consent once more.
If you previously opted-in but changed your mind, click the button below:
<button onclick="localStorage.setItem('ackeeDetailed', false)" class="items-center bg-sky-600 *:stroke-[2.5] 2xl:px-6 2xl:py-3 2xl:rounded-2xl button duration-300 font-bold gap-2 hover:bg-sky-700 inline-flex no-underline px-5 py-2 rounded-xl text-white transition-colors">Opt-out</button>