UStackUStack
c15t icon

c15t

c15t 开源框架:管理 Cookie 同意与脚本加载。headless 思路让开发者自定义同意 UX,并按同意状态控制请求启用/拦截。

c15t

c15t 是什么?

c15t 是一个开源框架,用于在现代 Web 应用中管理 Cookie 同意和脚本加载。其核心目的是帮助开发者控制同意的收集方式,以及根据同意状态启用(或阻止)跟踪或其他脚本。

该项目定位为“开发者优先”和“headless”,即底层同意逻辑与用户界面分离,团队可在自己的技术栈中构建横幅和对话框体验,而非依赖不透明的供应商逻辑。

主要特性

  • 开源同意框架,针对 Cookie、同意和隐私合规工作流,专注于现代 Web 应用。
  • 专为客户端/边缘执行设计的同意和脚本加载控制,目标是在相关同意状态设置前阻止请求。
  • Headless 核心,可与多种框架兼容(列出:React、Vue、Svelte、Angular、Next.js、Nuxt、SvelteKit、Astro、Solid、Qwik 等)。
  • CLI 脚手架,可快速生成 Cookie 横幅,或选择“直接嵌入 headless 逻辑”并完全自定义体验。
  • 通过自身 CSS/设计令牌进行开发者控制的 UI 自定义,横幅/对话框组件预计与您的样式集成。
  • i18n 支持,用于横幅语言/区域设置处理(翻译一次,到处使用同意)。
  • 基于地理位置的语言和呈现选项,包括“以最终语言提供最终横幅”的能力,以及可选不显示(按描述)。
  • 支持 15+ 隐私法管辖区的地域针对性,包括 GDPR 和 CCPA/CPRA,列出 LGPD、PIPEDA、PIPL 和 APPI 示例。

如何使用 c15t

典型设置从添加 c15t 的框架特定提供者和 UI 组件开始,然后用您的同意模式、后端 URL 和需置于同意后的脚本进行配置。

来自页面的 Next.js 示例:

  1. 导入提供者和 UI 组件(例如 ConsentManagerProviderConsentBannerConsentDialog)。
  2. 将脚本添加到提供者配置(示例显示通过 metaPixel({ pixelId: "..." }) 的 Meta Pixel 脚本)。
  3. 设置选项,包括 mode(示例使用 hosted)和 backendURL(来自环境变量)。
  4. 渲染 <ConsentBanner /><ConsentDialog />,让用户管理隐私设置。

站点还提及通过 CLI 快速启动(npx @c15t/cli)。

使用场景

  • 需要同意横幅和设置对话框的 Next.js 应用,同时将同意状态与脚本加载绑定(例如,仅在用户选择后启用特定分析脚本)。
  • 多框架团队希望采用单一同意逻辑方法,并用自身组件构建 UI,因为核心为 headless 并兼容多种框架。
  • 本地化密集型产品,需要同意横幅文本以用户语言呈现,利用内置 i18n/区域处理。
  • 跨区域运营的产品,隐私法消息(甚至是否显示横幅)需按管辖区和语言变化,通过所述地理位置和管辖区配置支持。
  • 偏好自定义样式和设计令牌集成的团队,用于横幅/对话框,而非采用预制 UI。

常见问题

  • c15t 是仅 UI 解决方案吗?
    不是。站点描述 c15t 具有 headless 核心,开发者可“直接嵌入 headless 逻辑”并控制体验和样式。

  • 支持哪些框架?
    页面列出与 React、Vue、Svelte、Angular、Next.js、Nuxt、SvelteKit、Astro、Solid、Qwik 等兼容。

  • 可以自定义横幅外观吗?
    可以。页面指出,您可用自身 CSS 和设计令牌进行样式化,并控制体验。

  • c15t 支持多语言吗?
    是的。页面指出有 i18n 支持,内置区域处理。

  • 如何处理不同隐私管辖区?
    页面描述地理位置和管辖区针对性,包括 GDPR 和 CCPA/CPRA 示例,并提及 15+ 管辖区。

替代方案

  • 无头同意管理库/框架无关:团队可自行构建同意状态管理,并在自家 UI 后屏蔽脚本加载,而非使用专用同意框架。这将实现工作从现成框架转移。
  • 专注 UI 的 Cookie/横幅组件:某些方案主要提供可配置的现成同意横幅。这些通常牺牲开发者对同意逻辑和脚本屏蔽的控制,与无头方式相比。
  • 带同意模式的标签/脚本管理工具:分析/标签管理类别的替代品可能提供同意感知的脚本触发。工作流常围绕标签规则,而非开发者可直接集成的无头同意核心。
  • 隐私/合规平台:这些通常管理更广泛的合规工作流。可能较少契合 c15t 描述的框架无关、开发者控制的同意与脚本加载模式。