CookieFort
We started from a practical constraint: a CMP has to run everywhere, but our product UI doesn’t need to live inside the client’s frontend. So the customer-facing piece is a small vanilla JS widget; everything else is our Next.js dashboard : settings, live preview, install snippet, scanner, consent journal, usage.
On the backend, consents and audit trails are relational (Postgres + Prisma). Visits are counted separately from consent decisions: billing follows sessions, proof follows choices. That split forced us to be precise in the product and in the copy.
The scanner uses Playwright because document.cookie alone misses what marketing sites actually load. Google Consent Mode Basic/Advanced, GTM vs GA4, and optional Meta/TikTok/LinkedIn/Pinterest pixels are configuration in the dashboard, enforced in the widget.
It’s still early, ~20 production sites, and we’re iterating from what those customers care about most (speed to install, Consent Mode, proof) more than from hypothetical pricing slides.
