Zero-code integration
Paste one script tag or install the Google Tag Manager template. Known trackers are blocked automatically until visitors consent, without refactoring a single line of your app.
- HTML
- Next.js
- Nuxt
- WordPress
- Shopify
- Webflow
- GTM
Cookiesh scans your site, blocks trackers until visitors say yes, and keeps an audit-ready record of every choice. One line of code, under 5 kB, zero layout shift.
Free forever for 1 domain · No credit card required · Live in 5 minutes
Features
Cookiesh replaces bloated consent pop-ups with a fast, developer-first platform that runs itself once it is installed.
Paste one script tag or install the Google Tag Manager template. Known trackers are blocked automatically until visitors consent, without refactoring a single line of your app.
Under 5 kB, async and served from the edge. Your Core Web Vitals stay green.
Typed hooks and components for SPAs and logged-in dashboards. Consent follows the user across devices.
const { analytics } = useConsent()
if (analytics) track('signup')Scheduled crawls find every cookie, storage key and third-party script, then classify them against a database of over 20,000 known trackers. Anything new gets flagged before it reaches an audit.
How it works
No consultants, no sprint planning. Most teams go live during their first coffee.
Enter your domain. We crawl your pages and classify every cookie and tracker in minutes.
Match your brand colors and copy, set rules per region and preview it live on desktop and mobile.
Add a single script tag and you are live. Banner changes ship instantly, with no redeploys.
Built for developers
Drop in the script for marketing sites, or use the typed JavaScript API and SDKs when consent has to live inside your product.
<!-- 1. Load Cookiesh before any other tag -->
<script
src="https://sdk.cookiesh.eu/v1/cookiesh.js"
data-site-id="ck_live_8f2a91"
async
></script>
<!-- 2. Tag scripts by category: they only run after consent -->
<script
type="text/plain"
data-cookiesh="analytics"
src="https://analytics.example.com/script.js"
></script>import { cookiesh } from '@cookiesh/js';
// Wait for the visitor's choice (or a stored one)
const consent = await cookiesh.ready();
if (consent.analytics) initAnalytics();
// React to changes from the preference center
cookiesh.on('consent:updated', ({ categories }) => {
analytics.setEnabled(categories.analytics);
});
// Sync consent for logged-in users across devices
await cookiesh.identify(session.user.id);import { CookieshProvider, useConsent } from '@cookiesh/react';
export function App() {
return (
<CookieshProvider siteId="ck_live_8f2a91" userId={session.user.id}>
<Dashboard />
</CookieshProvider>
);
}
function Dashboard() {
const { analytics, openPreferences } = useConsent();
return (
<>
{analytics && <ProductAnalytics />}
<button onClick={openPreferences}>Privacy settings</button>
</>
);
}Pricing
Start free, upgrade when you grow. Every plan includes Google Consent Mode v2 and GPC support.
For side projects, portfolios and personal sites.
$0$0/mo
Free forever
Free forever, including:
For growing products and teams shipping every week.
$29$24/mo
Billed monthly$288 billed yearly
Everything in Hobby, plus:
For agencies and organizations with complex compliance needs.
Custom
Annual contract, volume pricing
Everything in Pro, plus:
FAQ
Everything teams usually ask before switching their consent banner.
Still have questions? Email our team
Cookiesh gives you the technical controls those laws expect: prior blocking of non-essential cookies, granular opt-in and opt-out, region-specific banners, Global Privacy Control support and timestamped proof of consent. Compliance also depends on your own policies and data practices, so review your setup with your legal team.
Yes, on every plan. Cookiesh sets default consent states before Google tags load and sends the four v2 signals (ad_storage, analytics_storage, ad_user_data and ad_personalization) as soon as a visitor makes a choice. It works with gtag.js and with our Google Tag Manager template.
The loader is under 5 kB gzipped, loads asynchronously from a global edge CDN and reserves its own space, so it causes no layout shift. The banner UI is only fetched when a visitor needs to see it, and returning visitors never download it at all.
Our crawler visits your pages on a schedule (monthly on Hobby, daily on Pro and Enterprise), records every cookie, localStorage key and third-party request, and matches them against our tracker database. New or unknown items are flagged in the dashboard so nothing reaches production unclassified.
Consent logs are stored in the EU by default and contain a pseudonymous ID, the banner version, the choices made and a timestamp. No raw IP addresses are kept. You can export records as CSV or JSON at any time, or stream them to your own systems with webhooks.
Start free on one domain. Upgrade when you need more domains, geo-targeting or custom branding.
No credit card required · Cancel anytime