Script blocking
Declarative via data-consented, pattern-based via a MutationObserver from the very first line — trackers only load after consent.
Free consent management platform
consented.eu is a complete CMP with Google Consent Mode v2, automatic script blocking and an audit-grade consent record. Hosted for free — or entirely on your own infrastructure, from the same source.
Features
Not a stripped-down free plan, but the full feature set — because there is no paid plan it would have to be kept apart from.
Declarative via data-consented, pattern-based via a MutationObserver from the very first line — trackers only load after consent.
Sets ad_storage, analytics_storage, ad_user_data and ad_personalization before GTM starts, and demonstrably updates them before any script is released.
All 24 official EU languages in the catalogue, fallback chains, import and export as JSON or CSV for translation agencies.
Every colour, every radius, every string. Banner at the bottom, banner at the top, modal or slide-in — with a contrast check against WCAG AA.
Every decision with a timestamp, config version and pseudonymised IP. Changes never overwrite, they append.
The same code we run ourselves. PHP, MariaDB, Redis optional — no build step, no Node needed on the server.
No plain-text IP, no raw user agent, no cross-site identifier. Consent stays in your database.
A blocked video or embedded map shows a small card instead of an empty space — consent for just that one service, without opening the banner. No race: the embed has no src attribute until consent is given.
In comparison
Verifiable facts about the current state. Vendor prices depend on the plan and keep changing, so there is no number here that could be wrong tomorrow.
| Feature | consented.eu | Cookiebot | Usercentrics | OneTrust | iubenda |
|---|---|---|---|---|---|
| Pricing model | free | paid, 14-day trial only | permanently free up to a usage limit, then paid | custom quote, no published pricing | permanently free up to a usage limit, then paid |
| Source code available | Yes | No | No | No | No |
| Self-hosting the same version | Yes | No | No | No | No |
| Number of domains | unlimited | depends on the plan | depends on the plan | depends on the plan | depends on the plan |
| Consent data in your own database | Yes | No | No | No | No |
| Google Consent Mode v2 | Yes | Yes | Yes | Yes | Yes |
| Global Privacy Control (GPC) | Yes | Yes | Yes | Yes | Yes |
| Tamper-evident consent log | Yes | Yes | Yes | Yes | Yes |
| A/B testing for banner variants | Yes | only on the quote-only Advanced plan | only on the quote-only Corporate plan, add-on from Business up | Yes | not on the standard plan, only via a third-party integration |
| Regional consent rules (geo-targeting) | Yes | not on the free plan, included on every paid plan | only from the "Plus" plan up | Yes | only on the "Advanced" and "Ultimate" plans |
| Usage cap on the free/entry plan | unlimited | 50 subpages on the free plan, then an automatic upgrade to the next tier | 1,000 sessions/month on the free plan, then an automatic upgrade | no free plan — see pricing model | 1,000 page views/month on the free plan, then the cookie solution is automatically disabled |
| IAB TCF certification (CMP ID) | in preparation | Yes | Yes | Yes | Yes |
| Cookie scanner | in preparation | Yes | Yes | Yes | Yes |
As of 08/2026. consented.eu is a tool for implementation — it does not replace legal advice and does not by itself make you compliant.
Honestly
A cookie banner is not a particularly hard piece of technology. It is only expensive because it is legally required — and an obligation plus a handful of vendors makes for high prices. For a small website, a club or a shop with twenty orders a month, that is completely out of proportion.
This platform is being built anyway, because we need it for our own projects. Running it mostly costs delivery traffic and database space, and both of those scale gracefully. What it does not cost is a sales team.
There is no paid plan that a free plan would have to be kept apart from. That removes the usual incentive to build in artificial limits. And if running this instance ever stops being sustainable, the source code is still there: you can self-host the same version and take your data with you.
Full openness includes this, too: running TCF in production requires registering as a CMP with IAB Europe under your own CMP ID, which comes with ongoing fees. How we deal with that is written openly in the documentation — not in the small print.
Self-hosting
No stripped-down “Community Edition”. What runs on consented.eu is the same source code you start up here — dashboard, runtime and consent log included.
# Clone the repository and check dependencies git clone https://github.com/LW-IT-Solutions/consented-eu.git cd consented-eu # Create the configuration cp .env.example .env $EDITOR .env # Set up the database php bin/migrate php bin/seed # Point the document root at public/ — done.
Create an account, add a property, two lines in the <head> — and your banner is live.