// Privacy.jsx — v0.13.0 / roadmap item #11 / SPEC §14.5. // // The framework's default privacy policy page. Reachable by anonymous // and authenticated viewers alike at `/privacy`. The text below is a // minimal stub that describes the framework's stance; deployments are // expected to override it via the `VITE_PRIVACY_POLICY_URL` env var. // // When `VITE_PRIVACY_POLICY_URL` is set: // - http(s) URL → the page renders the framework's stub above a // "Read the full deployment policy" link to the configured URL. // We don't iframe-embed third-party policy hosts because their // Content-Security-Policy frequently refuses framing; the link is // the predictable affordance. // // The framework's stub is intentionally short — the rules that matter // to a user are: (1) what categories of cookies the app sets, (2) how // to change consent, (3) where to reach the deployment operator with a // complaint. Each deployment's content repo can carry a fuller version. import { useNavigate, Link } from 'react-router-dom' export default function Privacy() { const navigate = useNavigate() const deploymentUrl = (import.meta.env.VITE_PRIVACY_POLICY_URL || '').trim() const appName = import.meta.env.VITE_APP_NAME || 'this deployment' return (
Privacy policy

Privacy policy

What {appName} stores, why, and how to control it.

What we store

{appName} runs on the Wiggleverse RFC framework. The framework stores the identity you sign in with (your Gitea login, display name, email, and avatar URL), the proposals and edits you author, the discussion threads you participate in, and your notification preferences. Authoring is public by design — this is a framework for public-async RFC work, and threads, changes, and PRs are visible to anyone who reaches the deployment. Settings (notification toggles, quiet hours, mute list, cookie consent) are private to your account.

Cookies

The app sets a small set of cookies. The full list is on the{' '} cookies policy page. You can choose which categories you allow from the consent banner shown on your first visit or from Settings → Privacy & cookies any time afterwards.

Analytics

The framework supports an optional anonymous analytics layer gated behind your consent choice. As of v0.13.0 no analytics SDK ships in the framework; deployments that enable analytics do so via a later framework version (roadmap item #13). The consent toggle exists today so the gate is already in place when the SDK lands.

Your data, your control

{deploymentUrl ? ( <>

Deployment-specific policy

This deployment may layer additional policy on top of the framework's defaults. Read the full deployment policy at:

{deploymentUrl}

) : ( <>

Deployment contact

For deployment-specific privacy questions — data subject requests, redaction requests, complaints — contact the operator of {appName}.

)}
) }