Juridisch · GDPR · AVG

Privacyverklaring

[DOC] v1.0 · 26 maart 2026 · NL/EN · Hetzner Helsinki

Dit is de volledige, eerlijke privacyverklaring van PARAMANT WALL. We schrijven hem niet voor advocaten — we schrijven hem zodat jij hem begrijpt. Alles staat erin: wat we opslaan, wat we nooit opslaan, en waarom. Geen kleine lettertjes.

// 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)

GegevenWaaromOpgeslagenBewaartermijn
E-mailadresAccount identificatie + key recovery[OK] JaTot verwijdering account
API key (hash)Authenticatie van proxy requests[OK] JaTot verwijdering account
Feed hashPublieke feed URL identificatie[OK] JaTot verwijdering account
Plan / subscription statusPaywall enforcement[OK] JaTot verwijdering account
Maandstatistieken (integers)Usage billing + publieke feed[~] Geaggregeerd12 maanden
WachtwoordNiet nodig — passwordless systeem[--] Niet opgeslagenN/A
BetaalgegevensVia Stripe (buiten onze systemen)[--] Nooit bij onsN/A
IP-adres klantRate limiting (hash, niet plaintext)[--] Alleen als hash1 uur (Redis TTL)

BEZOEKERSDATA (bezoekers van de klantwebsite)

GegevenWat de Wall doetOpgeslagen bij ons
IP-adresOn-the-fly gehasht, nooit doorgestuurd[--] Nooit
Cookies (_ga, _fbp, etc.)Volledig gestript uit payload[--] Nooit
user_id / client_idGeblokkeerd of gehasht[--] Nooit
BrowserfingerprintNiet verzameld[--] Nooit
PaginabezoekenEvent-type telt mee in aggregaat[--] Nooit per persoon
Request payloadVerwerkt en onmiddellijk weggegooid[--] Nooit
LocatiedataNiet 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)
VerwerkingGrondslagAVG artikel
E-mailadres klantUitvoering overeenkomstArt. 6(1)(b)
API key, feed hashUitvoering overeenkomstArt. 6(1)(b)
MaandstatistiekenGerechtvaardigd belang (facturering)Art. 6(1)(f)
Proxy verwerking bezoekersGerechtvaardigd belang klant + Privacy by DesignArt. 6(1)(f) + Art. 25
GDPR audit logWettelijke verplichtingArt. 6(1)(c)
Stripe betalingenUitvoering overeenkomstArt. 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
PartijDoelWat zij zienLocatie
HetznerServer hostingVersleuteld verkeer, schijfopslag🇩🇪 Helsinki/Neurenberg, EU
CloudflareDDoS, SSL, CDNIP + tijdstempel (infrastructuur)VS/EU (zie §8)
StripeBetalingenBetaalgegevens, e-mail voor factuurVS (SCCs)
Google/MetaUpstream 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.

CookieTypeDoelTTL
Geen analytics cookiesN/AWij gebruiken GA4 niet op onze eigen siteN/A
Geen social media cookiesN/AGeen Facebook/Twitter/LinkedIn trackingN/A
wall_token (localStorage)FunctioneelSessie 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
GegevenBewaartermijnReden
E-mailadres + API keyTot verwijdering accountUitvoering overeenkomst
Maandstatistieken12 maandenFacturering + trend analyse
Magic links15 minuten (of na gebruik)Veiligheid — éénmalig gebruik
Rate limit Redis keys1 uur - 24 uurDDoS bescherming
GDPR audit hash5 jaarWettelijke verplichting aantoonbaarheid
IP-adres hashes (Redis)1 uurRate limiting — geen persistent opslag
Raw request payloads0 seconden — nooit opgeslagenPrivacy 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
VERWERKINGSVERANTWOORDELIJKE
PARAMANT
Open-source project · Nederland
Privacy e-mail: privacy@paramant.app
GDPR verwijdering: curl -X POST https://wall.paramant.app/api/gdpr/delete -H "Content-Type: application/json" -d "{\"email\":\"jouw@email.nl\"}"
AP (toezichthouder): autoriteitpersoonsgegevens.nl