# PolicyStack > Open-source primitives for privacy and consent. Policy turns your privacy and cookie policy into a typed TypeScript config that renders as React components or Markdown. Consent is a sub-4kb headless cookie-consent state machine with adapters for React, Vue, Solid, Svelte, and Angular. Cloud is the hosted control plane on top — policy versioning, audit trails, and consent analytics. ## Products - [Policy](https://policystack.dev/policy.md): TypeScript-defined privacy policies, rendered with framework-native components - [Consent](https://policystack.dev/consent.md): Sub-4kb headless cookie-consent state machine - [Cloud](https://policystack.dev/cloud.md): Hosted policy versioning and consent analytics (early access) ## SDK - [SDK reference (llms.txt)](https://policystack.dev/sdk.txt): Type-generated `@policystack/sdk` API surface — feed it to a coding agent to produce a correct policystack.ts ## Documentation - [Documentation home](https://policystack.dev/docs.md): Reference for Consent and Policy — the open-source primitives behind PolicyStack ### Policy docs - [Introduction](https://policystack.dev/docs/policy.md): What Policy is and why it exists - [AI skill pack](https://policystack.dev/docs/policy/agent-skills.md): Install the Policy skill pack into Claude Code — guided procedures for setup, auditing, jurisdiction posture, and instrumentation - [CLI](https://policystack.dev/docs/policy/cli.md): Install Policy and generate an agent prompt in one command - [Configuration](https://policystack.dev/docs/policy/configuration.md): Setting up your policystack.ts config file - [Internationalization](https://policystack.dev/docs/policy/i18n.md): Render Policy in French, German, Dutch, or Spanish - [Auto-collect](https://policystack.dev/docs/policy/policies/auto-collect.md): Automatically populate data.collected and thirdParties from your source code - [Cookie Policy](https://policystack.dev/docs/policy/policies/cookies.md): Generate and render a cookie policy from your policystack.ts config - [Overview](https://policystack.dev/docs/policy/policies/overview.md): The policy types supported by Policy - [Privacy Policy](https://policystack.dev/docs/policy/policies/privacy.md): Generate and render a privacy policy from your policystack.ts config - [Quick Start](https://policystack.dev/docs/policy/policies/quick-start.md): Add policy pages to your React app in minutes - [@policystack/react/policy](https://policystack.dev/docs/policy/react.md): React adapter — PrivacyPolicy, CookiePolicy, custom renderers - [Examples](https://policystack.dev/docs/policy/references/examples.md): Example projects using Policy - [Supported jurisdictions](https://policystack.dev/docs/policy/references/jurisdictions.md): The canonical list of jurisdiction codes Policy accepts and what each one ships - [@policystack/svelte/policy](https://policystack.dev/docs/policy/svelte.md): Svelte adapter — PrivacyPolicy, CookiePolicy, snippet overrides - [@policystack/vue/policy](https://policystack.dev/docs/policy/vue.md): Vue adapter — PrivacyPolicy, CookiePolicy, custom renderers ### Consent docs - [Consent](https://policystack.dev/docs/consent.md): Open-source primitives for building cookie banners and preferences - [@policystack/angular](https://policystack.dev/docs/consent/angular.md): Angular 18+ adapter — providePolicyStackConsent, ConsentService, *ocConsent - [@policystack/cli](https://policystack.dev/docs/consent/cli.md): Terminal UI for scans and config sync - [@policystack/core/consent](https://policystack.dev/docs/consent/core.md): Framework-agnostic consent store and the shared concepts every adapter wraps - [@policystack/react/consent](https://policystack.dev/docs/consent/react.md): React adapter — useConsent, useCategory, ConsentGate - [@policystack/vite/consent](https://policystack.dev/docs/consent/scanner.md): Static AST detection of cookie writes and vendor scripts - [@policystack/scripts](https://policystack.dev/docs/consent/scripts.md): Pre-built script integrations: GA4, Meta Pixel, PostHog, Segment, GTM, Hotjar - [@policystack/solid](https://policystack.dev/docs/consent/solid.md): Solid adapter — one PolicyStack provider, signals-based hooks - [@policystack/svelte/consent](https://policystack.dev/docs/consent/svelte.md): Svelte 5 runes adapter, with a Svelte 4 Readable fallback - [@policystack/vite](https://policystack.dev/docs/consent/vite.md): Vite plugin — surfaces ungated cookie and vendor calls in dev and CI - [@policystack/vue/consent](https://policystack.dev/docs/consent/vue.md): Vue 3 adapter — one PolicyStack provider, composables, ConsentGate ## Blog - [Ship a cookie banner and privacy policy in your Wasp app](https://policystack.dev/blog/wasp-cookie-banner.md): Wasp gives you auth, a database, and deployment out of one config file — but the privacy story is still yours to ship. Wire PolicyStack into the root component and get a consent banner, a privacy policy, and a cookie policy from one TypeScript config. - [OpenPolicy and OpenCookies are now PolicyStack 1.0](https://policystack.dev/blog/policystack-v1.md): Two projects became one. `@openpolicy/*` and `@opencookies/*` are now `@policystack/*` — one install, one typed config, one provider. 1.0 freezes the public surface: the Document AST, the validator, the jurisdiction table, and the slot contract are stable, and semver finally means something. - [PolicyStack speaks French, German, Dutch, and Spanish](https://policystack.dev/blog/policystack-i18n.md): PolicyStack lifts privacy and cookie policies out of English-only. One config, five locales, no string-key lookup — TypeScript is the lookup, and tsc fails the build if a translation is missing a key. - [Ship a Remix 3 app with consent before your first user](https://policystack.dev/blog/remix-day-one.md): Remix 3 is in beta and most consent tooling was built for the React era. PolicyStack is headless primitives, so it works with Remix's server-first, non-React runtime out of the box. One TypeScript config drives the cookie banner, the privacy policy, and the cookie policy. - [Ship a cookie banner in your Astro site without a framework](https://policystack.dev/blog/astro-cookie-banner.md): Astro renders the markup at build time; ~40 lines of vanilla JavaScript wire it to PolicyStack Consent's headless state machine. No React, no hydration island, no third-party iframe — just progressive enhancement and a banner that's part of your design system. - [Ship a native privacy policy in your Expo app](https://policystack.dev/blog/expo-privacy-policy.md): Define your policy in TypeScript, render it with React Native primitives — no WebView, no markdown parser at runtime — and let Claude keep the third parties list honest as you add SDKs. - [Ship a cookie banner with your TanStack app](https://policystack.dev/blog/tanstack-cookie-banner.md): Wire a sub-4kb headless consent state machine into your app and render the banner in your own components — with an optional Vite plugin that fails the build on any cookie that isn't gated. - [Ship a privacy policy with your TanStack app](https://policystack.dev/blog/tanstack-privacy-policy.md): Define your policy in TypeScript, let the Vite plugin compile it at build time, and render it on a route alongside the rest of your app. ## Optional - [Home](https://policystack.dev/index.md): PolicyStack overview and links to the three products - [Blog index](https://policystack.dev/blog.md): All posts, newest first