Privacy Policy
This privacy policy explains how the typovrak.tv website collects, uses, and protects personal data, under the General Data Protection Regulation (GDPR) and the guidance of the CNIL.
1. Data controller
The data controller is Morgan Scholz (typovrak), an individual based in France. This is a personal, non-commercial website.
Contact: typovrak@gmail.com
2. Personal data collected
Audience measurement
The website measures its own audience. When you open a page, the server records:
- the page path (for example
/posts/some-article), - the date and time of the visit,
- the host of the referring site (for example
google.com), never the full URL, - a coarse country, derived from the request,
- a coarse device class (mobile, tablet, or desktop).
The website never collects your IP address (not even hashed), your full user-agent string, or any identifier that would let it recognise you across visits.
Module request form
The NixOS page has an optional form to request a new module. This is the only place the site collects data you type, and only if you choose to fill it in and tick the consent box. It stores what you submit: the module you ask for, the details you add, and your email address so the publisher can reply. There is no newsletter.
Quiz results
Some posts end with a short quiz. When you answer a question, and again when you finish the quiz, the server records anonymous results: the article, the question number, the answer picked, and whether it was correct, plus the final score. These carry no identifier, so a result cannot be linked to you or to your other answers. They are used only to spot questions that are too hard.
What each table stores
For full transparency, here is every table in the database with example rows. Every value in the tables below is made up, shown only to illustrate the format. The exact schema, with column types and comments, is in db/schema.sql.
Every table below also stores when each row was written and an internal row number, except the totals, which is just a count per page. Those are left out of the examples to keep them readable.
Page views: One row each time a page is opened. No IP address, no full user-agent, no identifier.
| path | referrer_host | country | device |
|---|---|---|---|
| /posts/arch-linux-2024-setup | google.com | FR | desktop |
| /nixos | (none) | DE | mobile |
Page view totals: A running count per page, so a page can show its view number without re-counting every visit.
| path | views |
|---|---|
| /posts/arch-linux-2024-setup | 1493 |
| /nixos | 271 |
Quiz answers: One row each time you validate a question, to see which questions are too hard. question is its position in the quiz, picked holds the option numbers you chose. No identifier.
| path | question | picked | correct |
|---|---|---|---|
| /posts/arch-linux-2024-setup | 0 | 1 | true |
| /posts/arch-linux-2024-setup | 5 | 0,2,3 | true |
| /posts/arch-linux-2024-setup | 3 | 0 | false |
Quiz scores: One row when you finish a quiz, holding the final score. No identifier.
| path | correct | total |
|---|---|---|
| /posts/arch-linux-2024-setup | 6 | 6 |
Module requests: The one place data you type is stored, and only if you fill the form and tick the consent box. Your email is kept so the publisher can reply.
| module | details | |
|---|---|---|
| home-assistant | A module to expose Home Assistant sensors | typovrak@gmail.com |
3. Purposes of processing
The data is used only for these purposes:
- audience measurement, to know which articles are read and to monitor the site’s technical performance,
- anonymous quiz results, to see which questions are too hard,
- module requests, to read your request and reply to you.
It is not used to profile visitors, and is not sold, rented, or shared for other purposes.
4. Tools and services used
- Vercel Web Analytics: cookieless traffic statistics, without collecting personal data.
- Vercel Speed Insights: cookieless performance metrics.
- Neon: hosts the database where the audience data, quiz results, and module requests are stored.
- Discord: when you send a module request, its content (including your email) is delivered to a private Discord channel through a webhook, so the publisher is notified.
- Brevo: sends the confirmation email you receive after a module request. It processes your email address and the content of your request to deliver that message. Brevo is a French company and processes this data in the European Union.
- giscus (GitHub Discussions): powers the comments. The widget is loaded from GitHub only when you click to load it, which exposes your IP address to GitHub at that point. Posting a comment requires a GitHub account, under GitHub’s own terms.
The site does not use Google Analytics or Hotjar.
5. Cookies and consent
The website sets no cookie and writes nothing to your browser’s storage. Because nothing is read from or written to your device, no consent banner is required, and there is none. The consent you give in the module request form concerns the storage of the data you submit, not any access to your device.
Signing in to comment through giscus is handled by GitHub and may set cookies on GitHub’s domain, not on this site.
6. Legal basis for processing
Audience measurement is based on the legitimate interest of the publisher in measuring the site’s audience (GDPR art. 6(1)(f)), kept proportionate by collecting no personal identifier.
The module request form is based on your consent (GDPR art. 6(1)(a)), given by ticking the box before you send it. You can withdraw that consent at any time by emailing the address below, and the request will be deleted.
7. Data retention period
Audience-measurement data is kept for at most 25 months, in line with the CNIL’s cap, then deleted.
Anonymous quiz results are kept on the same basis, at most 25 months, then deleted.
Module requests are kept only as long as needed to handle them, and at the latest for 12 months, then deleted.
8. Transfer of data outside the European Union
Some processors are United States companies (Vercel, Discord, and GitHub for the comments), so some data may be processed outside the European Union. Such transfers are governed by the European Commission’s Standard Contractual Clauses.
9. Data security
The typovrak.tv website is served over HTTPS with a strict set of security headers and a Content Security Policy. Database queries are parameterised against injection, and access to the data is restricted.
10. Data recipients
The data is accessible only to the publisher. It is processed by the following providers acting as processors, solely for the purposes described above:
- Vercel (hosting, analytics, and performance),
- Neon (database hosting),
- Discord (module request notifications),
- Brevo (module request confirmation emails),
- GitHub (comments, via giscus).
No personal data is sold, rented, or transferred to third parties for their own purposes.
11. Your rights
Under the GDPR you have the right to access, rectify, and erase your data, to object to and restrict its processing, and to withdraw consent.
Audience-measurement rows and quiz results carry no identifier, so they usually cannot be linked back to you, which limits what can be acted on in practice. Data you send through the module request form is tied to your email address, so you can ask to access or erase it by writing from that address.
To exercise a right, email typovrak@gmail.com. The data controller is Morgan Scholz.
12. Complaints to the CNIL
If you believe your rights have not been respected, you can lodge a complaint with the French data protection authority, the CNIL.
13. Changes to this privacy policy
This privacy policy may change to stay compliant with current law. The date below reflects the latest revision.
Date of last modification: 17 August 2026