{
  "slug": "affine",
  "category": "notes",
  "name": "AFFiNE",
  "description": "Workspace that combines documents, whiteboards and databases on one canvas, with local-first storage, real-time collaboration, AI features and optional cloud sync or self-hosting.",
  "website": "https://affine.pro",
  "source": "https://github.com/toeverything/AFFiNE",
  "license": null,
  "platforms": [
    "windows",
    "macos",
    "linux",
    "android",
    "ios",
    "web"
  ],
  "jurisdiction": {
    "code": "SG",
    "name": "Singapore",
    "eyes": null,
    "eu": false,
    "gdpr": false,
    "cloud_act": null
  },
  "pick": false,
  "pick_reason": null,
  "disclosure": null,
  "grade": "D",
  "score": 40,
  "coverage": 100,
  "summary": "AFFiNE scores 40 out of 100 (grade D) on the notes criteria. It meets 1 of 4 criteria: open source. It partly meets no ads or data sales. It does not meet no trackers or telemetry and independent audit. It is based in Singapore: Not in the Five, Nine or Fourteen Eyes.",
  "url": "https://privacyratings.com/notes/affine/",
  "markdown": "https://privacyratings.com/notes/affine/index.md",
  "answers": {
    "open_source": {
      "title": "Open source",
      "weight": 3,
      "answer": "yes",
      "evidence": "https://github.com/toeverything/AFFiNE/blob/canary/LICENSE",
      "note": "All code is public. The apps are MIT, and the server backend in the same repository uses a source-available Enterprise Edition license."
    },
    "no_trackers": {
      "title": "No trackers or telemetry",
      "weight": 3,
      "answer": "no",
      "evidence": "https://reports.exodus-privacy.eu.org/en/reports/app.affine.pro/latest/",
      "note": "Exodus finds Google Firebase Analytics and CrashLytics in the Android app, and the website loads Google Analytics, PostHog and TikTok scripts."
    },
    "no_ads": {
      "title": "No ads or data sales",
      "weight": 2,
      "answer": "partial",
      "evidence": "https://affine.pro/privacy",
      "note": "Funded by paid plans with no ads in the apps, but the privacy policy allows using personal data to personalize advertising within the services."
    },
    "independent_audit": {
      "title": "Independent audit",
      "weight": 2,
      "answer": "no",
      "evidence": null,
      "note": "No independent audit is published."
    },
    "transparency_report": {
      "title": "Transparency report",
      "weight": 2,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "user_notice": {
      "title": "Tells users about requests",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "tls": {
      "title": "TLS configuration",
      "weight": 2,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "security_headers": {
      "title": "Security headers",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "web_standards": {
      "title": "Modern web standards",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    }
  },
  "tests": {
    "ssllabs": null,
    "observatory": null,
    "internetnl_web": null,
    "internetnl_mail": null,
    "trackers": [
      {
        "name": "Cloudflare Web Analytics",
        "host": "static.cloudflareinsights.com",
        "effect": "partial"
      },
      {
        "name": "Google Fonts",
        "host": "fonts.googleapis.com",
        "effect": "none"
      },
      {
        "name": "Google Tag Manager",
        "host": "inline code",
        "effect": "no"
      }
    ],
    "tested_at": "2026-10-01T06:38:37.027Z"
  },
  "last_modified": "2026-10-01T06:56:31Z"
}