// TL;DR — de kern in 60 seconden
[OK]Bezoekers van jouw website: wij slaan niets over hen op. Geen IP-adressen, geen cookies, geen profielen. Zij bestaan voor ons niet.
[OK]Jij als klant: wij slaan alleen je e-mailadres + geaggregeerde statistieken (integers, geen events) op. Geen wachtwoord in plaintext. Geen betaalgegevens (Stripe doet dat).
[OK]Zero raw logging: geen enkel request wordt opgeslagen. De Wall verwerkt en vergeet. Alleen maandtotalen (geblokkeerd: 47, gestript: 842) worden bewaard.
[OK]IP-adressen: worden nooit opgeslagen. Worden on-the-fly gehasht met SHA-256 + dagelijkse wisselende salt. De hash is onomkeerbaar en niet te koppelen aan een persoon.
[OK]Publieke feed: bevat alleen tellers (integers). Geen persoonsgegevens, geen events, geen hashes van bezoekers.
[!]Cloudflare: ziet verbindingsmetadata (IP + tijdstempel) op infrastructuurniveau — buiten onze directe controle. Zie §8.
01
Wie zijn wij
PARAMANT WALL is een product van PARAMANT, een onafhankelijk open-source project gemaakt door één persoon, gevestigd in Nederland.
Contactpersoon voor privacyvragen en AVG/GDPR-verzoeken:
E-mail: privacy@paramant.app
Website: wall.paramant.app
PARAMANT WALL treedt op als verwerker (processor) voor de persoonsgegevens van de bezoekers van jouw website. Jij, als klant, bent de verwerkingsverantwoordelijke (controller). Dit is vastgelegd in onze verwerkersovereenkomst (DPA), beschikbaar op verzoek.
02
Welke gegevens verwerken wij
Wij maken onderscheid tussen twee categorieën: klantgegevens (jij als website-eigenaar) en bezoekersdata (bezoekers van jouw website).
KLANTGEGEVENS (website-eigenaar)
| Gegeven | Waarom | Opgeslagen | Bewaartermijn |
| E-mailadres | Account identificatie + key recovery | [OK] Ja | Tot verwijdering account |
| API key (hash) | Authenticatie van proxy requests | [OK] Ja | Tot verwijdering account |
| Feed hash | Publieke feed URL identificatie | [OK] Ja | Tot verwijdering account |
| Plan / subscription status | Paywall enforcement | [OK] Ja | Tot verwijdering account |
| Maandstatistieken (integers) | Usage billing + publieke feed | [~] Geaggregeerd | 12 maanden |
| Wachtwoord | Niet nodig — passwordless systeem | [--] Niet opgeslagen | N/A |
| Betaalgegevens | Via Stripe (buiten onze systemen) | [--] Nooit bij ons | N/A |
| IP-adres klant | Rate limiting (hash, niet plaintext) | [--] Alleen als hash | 1 uur (Redis TTL) |
BEZOEKERSDATA (bezoekers van de klantwebsite)
| Gegeven | Wat de Wall doet | Opgeslagen bij ons |
| IP-adres | On-the-fly gehasht, nooit doorgestuurd | [--] Nooit |
| Cookies (_ga, _fbp, etc.) | Volledig gestript uit payload | [--] Nooit |
| user_id / client_id | Geblokkeerd of gehasht | [--] Nooit |
| Browserfingerprint | Niet verzameld | [--] Nooit |
| Paginabezoeken | Event-type telt mee in aggregaat | [--] Nooit per persoon |
| Request payload | Verwerkt en onmiddellijk weggegooid | [--] Nooit |
| Locatiedata | Niet verzameld | [--] Nooit |
[OK] Wat de publieke feed WEL bevat
Alleen integers per maand: "842 cookies gestript", "47 trackers geblokkeerd". Geen tijdstempels per event. Geen hashes. Geen informatie die terugkoppelt naar een bezoeker of klant.
03
Hoe werkt de anonimisering
Dit is de technische kern van GDPR-compliance by design. Elk inkomend request doorloopt drie stappen:
STAP 1 — IP-adres anonimisering
Het IP-adres van de bezoeker (bijv. 85.204.112.47) wordt direct gehasht:
sha256("85.204.112.47" + "2026-03-26" + GEHEIME_SALT)
→ a3f8c2d1e7b4f91c
De hash is dagelijks wisselend (andere salt elke dag). Het IP-adres is onomkeerbaar. Twee verschillende bezoekers op dezelfde dag met hetzelfde IP: één hash — gewenst voor sessie-analytics. Morgen: volledig andere hash. Geen enkel persistent profiel.
STAP 2 — Cookie & PII stripping
Alle bekende tracking-cookies (_ga, _fbp, _fbc, IDE, etc.) en persoonlijke identifiers (client_id, user_id, email) worden vervangen door [stripped] of volledig verwijderd uit de payload. Ze bereiken Google/Meta nooit.
STAP 3 — Aggregatie (geen raw events)
Na verwerking wordt alleen een integer-teller verhoogd in de database:
UPDATE usage_monthly SET stripped = stripped + 1
Het request zelf wordt niet opgeslagen. Geen tijdstempel per event. Geen URL. Geen payload. Alleen een getal dat één hoger wordt.
04
Juridische grondslagen (AVG Art. 6)
| Verwerking | Grondslag | AVG artikel |
| E-mailadres klant | Uitvoering overeenkomst | Art. 6(1)(b) |
| API key, feed hash | Uitvoering overeenkomst | Art. 6(1)(b) |
| Maandstatistieken | Gerechtvaardigd belang (facturering) | Art. 6(1)(f) |
| Proxy verwerking bezoekers | Gerechtvaardigd belang klant + Privacy by Design | Art. 6(1)(f) + Art. 25 |
| GDPR audit log | Wettelijke verplichting | Art. 6(1)(c) |
| Stripe betalingen | Uitvoering overeenkomst | Art. 6(1)(b) |
05
Geen wachtwoorden — passwordless by design
PARAMANT WALL gebruikt geen wachtwoorden. De API key is je identiteit. Dit is een bewuste privacykeuze:
[OK] Hoe het werkt
Bij registratie ontvang je per e-mail een unieke API key (
wk_abc123...). Deze key is 192 bits cryptographically secure random — niet te raden. De key ís je toegang. Sla hem op.
Ben je je key kwijt? Vraag een
key recovery link aan via
wall.paramant.app/recover. We sturen een eenmalige magic link naar je geregistreerde e-mailadres. De link vervalt na 15 minuten en kan één keer gebruikt worden.
[!] Geen wachtwoord = geen inlog-hack risico
Er is geen wachtwoorddatabase die gehackt kan worden. We slaan geen wachtwoord-hashes op. Een datalek bij ons onthult nooit een wachtwoord dat je ook elders gebruikt.
06
Derde partijen
| Partij | Doel | Wat zij zien | Locatie |
| Hetzner | Server hosting | Versleuteld verkeer, schijfopslag | 🇩🇪 Helsinki/Neurenberg, EU |
| Cloudflare | DDoS, SSL, CDN | IP + tijdstempel (infrastructuur) | VS/EU (zie §8) |
| Stripe | Betalingen | Betaalgegevens, e-mail voor factuur | VS (SCCs) |
| Google/Meta | Upstream analytics (klant keuze) | Geanonimiseerde events (geen PII) | VS (na stripping) |
[!] Geen andere derde partijen
Wij gebruiken geen analytics, geen tracking pixels, geen A/B testing tools, geen advertentienetwerken op onze eigen website. Wij "eten ons eigen eten".
07
Infrastructuur — Europees en controleerbaar
🇩🇪
Hetzner — Helsinki
Primaire server · wall-server.js
De Wall-server draait op een dedicated VPS in Helsinki (Finland). Hetzner valt onder EU/EEA jurisdictie. Geen Amerikaanse wetgeving (FISA, NSL) van toepassing.
EU · GDPR · eigendom
☁️
Cloudflare
CDN · DDoS · SSL-terminatie
Cloudflare termineert TLS en ziet verbindingsmetadata (IP, tijdstempel) op infrastructuurniveau. Cloudflare ziet nooit de inhoud van proxy requests of API payloads — deze zijn versleuteld via TLS.
TLS 1.3 · DDoS
🔒
PostgreSQL (Docker)
Database · 127.0.0.1:5432
Postgres draait in een Docker container, alleen bereikbaar van localhost. TLS + client certificate authenticatie (verify-full). Data opgeslagen op de Hetzner VPS.
TLS verify-full · loopback only
⚡
Redis
Cache · rate limits · loopback
Redis slaat alleen rate-limit tellers (gehashte IP's) en gecachede customer-data op. TTL van 60-3600 seconden. Geen PII. Alleen bereikbaar van localhost.
In-memory · TTL · loopback
08
Eerlijk over de beperkingen
Volledige transparantie vereist dat we ook schrijven wat we niet kunnen garanderen:
[!] Cloudflare ziet verbindingsmetadata
Cloudflare logt IP-adressen en tijdstempels van verbindingen op infrastructuurniveau. Dit is buiten onze directe controle. Cloudflare heeft een Privacy Shield / SCCs-arrangement. Voor maximale anonimiteit: gebruik de Wall via Tor.
[!] Stripe verwerkt betaalgegevens in de VS
Stripe Inc. is een Amerikaans bedrijf. Betaalgegevens worden verwerkt onder Standard Contractual Clauses (SCCs). Stripe heeft een eigen privacybeleid. Wij sturen Stripe alleen je e-mailadres en plan (voor de factuur).
[!] Jij blijft verwerkingsverantwoordelijke
PARAMANT WALL is een technisch hulpmiddel. GDPR-compliance is breder dan alleen tracking. Jij blijft verantwoordelijk voor je cookiebeleid, verwerkersovereenkomsten met andere partijen, en het informeren van je bezoekers.
[!] Geen formele GDPR-audit
Dit systeem is gebouwd met GDPR by Design als kernprincipe, maar is niet formeel geaudit door een gecertificeerde privacyadvocaat. Gebruik dit als fundament — geen vervanging voor eigen juridisch advies bij twijfel.
09
Jouw rechten (AVG Art. 12-22)
Recht op inzage (Art. 15)
Vraag op welke gegevens we van je hebben. We sturen je een export binnen 30 dagen.
→ privacy@paramant.app
Recht op verwijdering (Art. 17)
Verzoek je account en alle gegevens te verwijderen. CASCADE delete verwijdert alles. Audit hash blijft (geen PII).
→ curl -X POST https://wall.paramant.app/api/gdpr/delete -H "Content-Type: application/json" -d "{\"email\":\"jouw@email.nl\"}"
Recht op correctie (Art. 16)
Onjuist e-mailadres? Stuur een verzoek, we passen het aan.
→ privacy@paramant.app
Recht op portabiliteit (Art. 20)
Vraag je gegevens op in JSON-formaat. Account + statistieken.
→ privacy@paramant.app
Recht van bezwaar (Art. 21)
Bezwaar tegen verwerking op basis van gerechtvaardigd belang.
→ privacy@paramant.app
Klacht indienen
Klacht over privacyverwerking? Nederlandse toezichthouder: Autoriteit Persoonsgegevens.
→ autoriteitpersoonsgegevens.nl
We reageren op alle verzoeken binnen 30 dagen. Bij complexe verzoeken maximaal 90 dagen (met kennisgeving).
10
Cookies op wall.paramant.app
Ironisch genoeg gebruiken wij geen tracking cookies op onze eigen website. We zijn een privacy-proxy — we zouden onszelf tegenspreken als we dat wel deden.
| Cookie | Type | Doel | TTL |
| Geen analytics cookies | N/A | Wij gebruiken GA4 niet op onze eigen site | N/A |
| Geen social media cookies | N/A | Geen Facebook/Twitter/LinkedIn tracking | N/A |
wall_token (localStorage) | Functioneel | Sessie herkenning na registratie (optioneel) | Browser sessie |
Er is geen cookiebanner nodig op onze website — er zijn geen niet-functionele cookies. Ironie ten top.
11
Bewaartermijnen
| Gegeven | Bewaartermijn | Reden |
| E-mailadres + API key | Tot verwijdering account | Uitvoering overeenkomst |
| Maandstatistieken | 12 maanden | Facturering + trend analyse |
| Magic links | 15 minuten (of na gebruik) | Veiligheid — éénmalig gebruik |
| Rate limit Redis keys | 1 uur - 24 uur | DDoS bescherming |
| GDPR audit hash | 5 jaar | Wettelijke verplichting aantoonbaarheid |
| IP-adres hashes (Redis) | 1 uur | Rate limiting — geen persistent opslag |
| Raw request payloads | 0 seconden — nooit opgeslagen | Privacy by Design |
12
Technische beveiliging
Een samenvatting van de beveiligingsmaatregelen (volledig beschreven in onze technische documentatie):
[OK] Transport
TLS 1.3 extern (Cloudflare). mTLS intern (Nginx → Node.js, mutual authentication). TLS verify-full intern (Node.js → PostgreSQL). Nginx access_log off — geen request logging op disk.
[OK] Applicatie
Passwordless systeem (geen wachtwoorddatabase). Parameterized SQL queries (SQL injection onmogelijk). Rate limiting op alle endpoints. Domain locking (API key werkt alleen voor geregistreerde domeinen). Fail-fast op ontbrekende env vars.
[OK] GDPR by Design (Art. 25)
Data minimalisatie: alleen wat strikt noodzakelijk is. Aggregatie by default: nooit raw events opslaan. Dagelijkse IP-salting: geen persistent profiling. Zero raw logging: verwerk en vergeet.
13
Wijzigingen in dit beleid
Bij materiële wijzigingen informeren wij klanten per e-mail minimaal 14 dagen van tevoren. De datum van de laatste wijziging staat altijd bovenaan dit document. Wijzigingshistorie:
2026-03-26v1.0 — Eerste publicatie. Passwordless systeem beschreven.
14
Contact voor privacyvragen