Swift wraps your existing CMP — Cookiebot, OneTrust, Iubenda, Didomi — with a 1.8KB edge-rendered layer that eliminates banner-induced Core Web Vitals regressions. Same compliance. 150× lighter runtime. 15-minute install.
Swift renders the banner inline on the edge, before a single byte reaches the browser's parser. No flash. No layout shift. No hydration waterfall.
Choose a plan that fits your team. Upgrade or downgrade at any time.
A Cloudflare Worker sits between your users and origin. It reads geo, checks the consent cookie, and injects banner HTML inline. No client JS required to display.
A tiny vanilla-JS runtime attaches click handlers to the pre-rendered banner. No framework, no polyfills. Loads with defer, never blocks render, never shifts layout.
Consent decisions relay back to your CMP's audit log via its API. Cookiebot, OneTrust, Iubenda, Didomi supported. Compliance stays with them. Performance is on us.
// Gate analytics on consent. Fires immediately if already granted. Swift.onConsent('analytics', () => { gtag('js', new Date()); gtag('config', 'G-XXXXXXXXXX'); }); // Check current consent state. if (Swift.hasConsent('marketing')) { loadMetaPixel(); } // Open preference center from a footer link. Swift.openPreferences();
Still have questions? Email hi@swiftconsent.dev and a founder replies within 24h.
Yes. Swift is a performance wrapper, not a compliance replacement. Your existing CMP handles regulatory rules, audit trails, vendor lists, and legal disclosures. Swift handles rendering, performance, and developer experience. Your legal team's review of your CMP is unchanged.
Compliance comes from your underlying CMP, which Swift wraps. If your current CMP setup is compliant, wrapping it with Swift does not change that. Swift never modifies consent categories, audit records, or legal disclosures — it just renders them faster.
At launch: Cookiebot, OneTrust, Iubenda, Didomi. If you use something else, we'll build an adapter for any CMP with a public API — typically 2–3 days of work on our side at no extra cost.
A Cloudflare Worker sits in front of your site (via DNS proxy or workers.dev domain). It intercepts HTML responses, checks the visitor's geo and existing consent cookie, and injects the banner markup inline before sending to the browser. No client JS is needed to display the banner — the hydration script only attaches click handlers to elements already in the DOM.
Zero. The banner is rendered in the initial HTML at a fixed position (bottom-right corner), so nothing shifts when it appears. The preference center modal is also in the initial HTML but hidden via display: none until opened.
Yes. Swift operates at the edge, below your framework. It doesn't matter what renders your HTML — Next SSR, Astro static, SvelteKit streaming, WordPress, Rails — the worker injects the banner into the response regardless.
Vercel Edge Middleware and Netlify Edge Functions are on the roadmap. For now, Cloudflare Workers is the supported runtime — it's free up to 100k requests/day.
15 minutes from signup to production. Wraps your existing CMP. Cancel any time.