ContactPortaal processes citizen and farmer data, directly or indirectly. That carries responsibility. We built the platform from the first line of code on the principles of project separation, least trust and EU residency.
All persistent data (stakeholders, complaints, issues, documents) lives in Supabase PostgreSQL in Frankfurt (EU). No replication outside the EU.
The web application runs on Vercel Fluid Compute in EU regions. Requests are not routed outside the EU.
No Cloudflare, no AWS US-East. Subprocessor list is public and changes are announced in advance.
Every database row is tied to a project. Users only see rows from projects they're a member of, enforced at the database level, not just in the application layer.
Optional 2FA per account with an authenticator app (Microsoft Authenticator, Google Authenticator, 1Password). Recommended for admins; enforceable per project on request.
TLS 1.2+ on all connections. AES-256 for data at rest. Passwords hashed with Argon2id. Backups encrypted.
Full audit trail on every change to CRM tables. Deleted rows remain recoverable within the retention window.
Tokens carry project_ids and roles, every request is verified at the database against those claims. No 'admin flag in a cookie'.
The architecture is mapped against the BIO (Dutch government information-security baseline). The full BIO mapping and the complete overview of suppliers, SLAs and DPA clauses can be found on the Technical infrastructure page. NEN7510 is in scope for the on-premise variant within your own Azure tenant.
ContactPortaal runs hosted by us within the EU, or inside your own Microsoft Azure tenant. Same codebase, same modules, only the hosting differs.
Live in days, not months. Supabase PostgreSQL in Frankfurt for the database, Vercel Fluid Compute in EU regions for the runtime, Resend for transactional email.
Full control over data, backups and network. Microsoft Entra ID for single sign-on, Container Apps for the runtime, PostgreSQL Flexible Server for data, Blob Storage for files.
Book a 30-minute demo, we'll walk through your own scenario, not a generic tour.