---
title: "AFFiNE"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "2"
url: "https://mindket.com/p/95962547-38df-4560-ab56-ac408b1a6289"
updated: "2026-11-09"
---

# AFFiNE

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An open-source, local-first workspace where docs, whiteboards and databases are built from the same blocks, so one doc reads as a page or opens as an endless canvas. The setup notes cover the apps, Docker Compose self-hosting, AI keys, backups, and Claude Code, Cursor and Cline over MCP.

AFFiNE is an open-source project on GitHub in the Productivity category, listed by Mindket. It is free. This is version 2, last updated on 2026-11-09. Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

Made by toeverything

## About

### What it is

AFFiNE is an open-source workspace that puts docs, a whiteboard and databases in one app. They are all built from the same blocks: a line of text is a block, and so is a shape on a canvas. Every doc has two modes. Page mode is a linear page that fits your screen, and Edgeless mode is an endless canvas for mind maps, slides and diagrams. The app is local-first, so a local workspace lives on your own disk and works offline. AFFiNE Cloud or your own server adds sync across devices and real-time collaboration.

You open AFFiNE on the web, the desktop or your own server → You type / in a doc and pick blocks from the slash menu → You switch the same doc to Edgeless mode to draw around it → Selected blocks turn into a Table or Kanban database → Cloud or self-hosted sync lets others edit with you live

### Who it suits

People who keep notes in one app and sketch on a whiteboard in another, and would rather have both in one doc. Small teams who want their docs on their own server and can run Docker, backups and upgrades themselves. The docs also say who should look elsewhere. AFFiNE is not a typesetting system, so if you like the rulers and layout buttons of Word, Google Docs or Pages, it is the wrong tool.

Who uses it, and how

| Use | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Planning | People who track tasks inside their notes | Turn a to-do list into a database and view it as a board | Someone selects a list of to-dos, uses convert into database and switches the result to the Kanban view. |
| Brainstorming and slides | People who think on a canvas | Open a doc in Edgeless mode for mind maps, presentations and visual work | A user lays out text blocks, images and shapes on the canvas as a slide and groups them in a frame. |
| Knowledge base | People who sort many docs | Collections work as smart folders that pick docs by tags and Doc info | A user adds filters in All docs and clicks Save as New Collection, so matching docs join it by rule. |
| Repeated pages | People who start the same page often | Mark a doc as a Template and set it for the Journal or for every new doc | A user ticks Template in a doc’s Property, then picks it under Settings, Preference, My Template. |
| AI assistants | Developers who want answers from their own notes | Connect Claude Code, Cursor or Cline to the workspace MCP endpoint | A developer creates a read-only credential labelled Claude Code and adds it with one claude mcp add command. |
| Teams on their own servers | Admins who run Docker | Run the Docker Compose stack and connect the desktop apps to it | An admin downloads the Compose file, sets server.externalUrl and creates the first administrator at /admin. |

### Where to use it

In a browser at https://app.affine.pro, in the desktop apps for Windows, macOS and Linux, and in the iOS and Android apps. The mobile apps focus on capturing and reviewing notes and sync through AFFiNE Cloud. The desktop app is the most complete, with the full Edgeless whiteboard. Beyond the apps, the maker’s pages name these connections.

- The workspace MCP endpoint, which lets Claude Code, Cursor, Cline and other MCP clients that accept a Bearer header, or can launch the local mcp-remote bridge, search and read one workspace. OAuth-only clients cannot use it
- AI inside the app, through AFFiNE AI or, on a self-hosted server, your own OpenAI, Anthropic, Gemini or FAL keys
- A desktop app pointed at your own server, added from the workspace list panel
- Export of docs to Markdown or HTML, to move them to another machine

Ways to run it

| Route | What you run | What the pages say |
| --- | --- | --- |
| Web | https://app.affine.pro in a browser | The docs home says you can try AFFiNE there directly |
| Desktop | An installer from affine.pro/download or GitHub Releases | Works fully offline with no account. Windows 10 or later (x64 and ARM64), macOS 11 or later, and Linux as AppImage, .deb or Flatpak |
| Mobile | The iOS and Android apps | For capturing and reviewing notes on the go, synced through AFFiNE Cloud |
| Self-hosted | Docker Compose: AFFiNE, a migration job, PostgreSQL and Redis | The recommended self-host route. Plan at least 4 CPU cores and 2 GB RAM |
| Source | A clone built with Node.js 22.12 or a later 22.x, Yarn 4 and Rust | For contributors. BUILDING.md covers the web app. Separate guides cover the desktop app and the server |

### How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with a page for each route from the maker’s README and docs. The web app needs only a browser, and the desktop apps need only a download. The steps below run your own server, the route the Docker Compose page recommends.

1. Install Docker with Compose v2. The command docker compose version should answer.
2. Make a deployment folder. Create affine with a config folder inside, as below.
3. Download the two files. The Compose file and the example config come from the latest release.
4. Set the external URL. In config/config.json, server.externalUrl is the address users open.
5. Start the stack. Run docker compose up -d and check it with docker compose ps.
6. Create the first administrator. Open http://localhost:3010 and follow the prompts.

```sh
mkdir affine
cd affine
mkdir -p config
curl -L -o docker-compose.yml \
  https://github.com/toeverything/AFFiNE/releases/latest/download/docker-compose.yml
curl -L -o config/config.json \
  https://github.com/toeverything/AFFiNE/releases/latest/download/config.json.example
docker compose up -d
docker compose ps
```

The one-time migration container should finish, while AFFiNE, PostgreSQL and Redis keep running. If something fails to start, the page gives this line.

```sh
docker compose logs --tail=200 affine affine_migration
```

### How to use it

Type / on a blank line to open the slash menu and pick a block. Basic blocks also take Markdown shortcuts, as the Blocks page lists them.

```text
#    at the start of a line makes a heading
>    at the start of a line makes a quote
---  followed by a space makes a divider
```

Any block can be dragged by its handle. Select several blocks and use convert into database, and they become a database with Table or Kanban views. The Blocks page says this works well for turning a to-do list into a kanban. In Edgeless mode, text blocks, images and shapes can be laid out as a slide, and frames and groups gather them into sets. Collections work as smart folders. Add filters in All docs and click Save as New Collection, and every doc that matches the rules joins it. To reuse a layout, tick Template in a doc’s Property and set it for the Journal or for every new doc.

A local workspace stays on your device. To share it, enable AFFiNE Cloud in the workspace settings after you sign in, then invite people by email from the members area. They join once they accept the email.

### Example

You keep project notes in an AFFiNE Cloud workspace and want Claude Code to answer from them. In AFFiNE you open Settings, then Integrations, then MCP Server, and create a credential labelled Claude Code. You leave the access mode on Read only and copy the endpoint and token, since the token shows once. Then you run the command from AFFiNE’s MCP page.

```sh
claude mcp add --transport http affine \
  "https://app.affine.pro/api/workspaces/<workspace-id>/mcp" \
  --header "Authorization: Bearer <your-credential>"
```

Claude Code then has two tools from AFFiNE, as the MCP page describes them. doc\_search runs keyword and semantic search across the workspace, whiteboard text included, and returns short passages with page or canvas locators. read\_document fetches a whole doc by its ID. Both stay inside that one workspace and your permissions, and revoking the credential cuts off only this client.

### For newcomers and experts

**If you are new.** Local-first means your workspace is stored on your own machine and you can edit it without an internet connection. The download page says the desktop app syncs only when you choose to sign in to AFFiNE Cloud. A block is any piece of a doc you can move, from a paragraph to a to-do, a shape or a database. Start with the desktop app and a local workspace. No account is needed. Self-hosting is for people who already run servers. The self-host docs say a managed workspace is usually simpler if you do not want to look after Postgres, Redis, backups and upgrades.

**For experts.** The editor is BlockSuite, Toeverything’s open-source collaborative editor. The README names y-octo, a native, thread-safe Yjs CRDT implementation, as the core engine that gives the AFFiNE client and server their local-first functionality. It also names OctoBase, a data engine written in Rust. The desktop app is Electron wrapping the prebuilt web app, with native modules in Rust built through napi-rs.

A self-hosted server reads config/config.json from ./config. server.externalUrl must be the final address users open, and copilot.byok.enabled lets workspace owners add their own provider keys. Settings saved in the Admin Panel at /admin/settings take effect at once. Provider keys belong to workspaces, never to the server config. The AI page gives this block to allow OpenAI-compatible endpoints.

```json
{
  "copilot": {
    "enabled": true,
    "byok": {
      "enabled": true,
      "allowCustomEndpoint": true,
      "allowPrivateEndpoint": false
    }
  }
}
```

Keep allowPrivateEndpoint off unless every workspace administrator is trusted to send provider requests into the private network. Transcription and workspace indexing need a Gemini key stored on the server, or an AFFiNE AI plan fallback where available, and indexing also needs the indexer turned on. The official Compose file already ships PostgreSQL with pgvector. The MCP endpoint is POST /api/workspaces/{workspace-id}/mcp over stateless Streamable HTTP. After a credential is rotated, the old token keeps working for up to 24 hours, or until its expiry if sooner.

### Good to know

These come from the README, the LICENSE and the maker’s pages.

- License: GitHub labels it Other. The LICENSE file puts code outside packages/backend and packages/common/native under MIT. The README says Community Edition is free to self-host under MIT. But the license file in packages/backend/server puts the parts of those two folders shipped in Community Edition under MPL 2.0. The rest is the AFFiNE Enterprise Edition license, which the self-host page calls source-available. It allows production use only with a subscription for the right number of seats
- Seats: the docs give each workspace on a self-hosted instance at most 10 seats for free. More need the paid Team Plan, at $10 a seat a month billed yearly or $12 monthly, or an Installable License from sales for a network that cannot reach AFFiNE’s license service
- Data sent out: the self-host page says a disconnected network needs separate plans for fonts from cdn.affine.pro, default client telemetry and images from ghcr.io. The Team Plan checks its license against app.affine.pro
- Upgrades: read the release notes, back up and compare the old and new Compose files first. The Upgrade page says not to use latest as a blind production upgrade path. Version 0.27.4 moved the data folders, so an older Compose file needs care
- Backups: a full backup is the Postgres dump, ./data/storage for uploads and the config files. A database-only restore leaves the uploaded files out. The docs say to test a restore
- Identity: the self-host page names OIDC for single sign-on, with MFA at your identity provider. It says not to choose AFFiNE today if you need SAML or SCIM provisioning, built-in audit logs or an official Kubernetes deployment
- MCP writes: read only is the default. The MCP page says the implementation it reviewed on October 26, 2026 limits write tools to development or canary deployments
- Builds: Stable is for daily work, Beta previews features with light testing, and Canary is published as soon as it is built
- Contributing: a pull request merges only after every committer signs the Contributor License Agreement

## README

````markdown
# AFFiNE: setup notes

This kit holds setup notes only. Mindket wrote them. AFFiNE itself comes from its maker's web app, desktop and mobile apps, Docker images and source code: https://github.com/toeverything/AFFiNE

These notes are not made or endorsed by the AFFiNE team (Toeverything). The README calls AFFiNE "a privacy-focused, local-first, open-source, and ready-to-use alternative for Notion & Miro", and says docs, canvas and tables are merged in it. The documentation is at https://docs.affine.pro/

License: GitHub labels it "Other". The LICENSE file (https://github.com/toeverything/AFFiNE/blob/canary/LICENSE) says content outside two folders is under the MIT license in `LICENSE-MIT`. Content under `packages/backend` and `packages/common/native` is under the license in `packages/backend/server/LICENSE`. That file says the parts shipped as AFFiNE Community Edition (CE) are under MPL 2.0, and the rest is the AFFiNE Enterprise Edition (EE) license, which may be used in production only with an EE subscription for the right number of seats. Third-party components keep their own licenses. The README says CE "is free for self-host under the MIT license". The self-host page (https://affine.pro/self-host) says the server backend is source-available under the AFFiNE EE license, while the editor and most client code are MIT-licensed.

## What installs

- Nothing, if you use the web app at https://app.affine.pro in a browser. Source: https://docs.affine.pro/
- A desktop app for Windows, macOS or Linux, or a mobile app for iOS or Android, from https://affine.pro/download. See setup/desktop-and-web.md.
- For self-hosting, a Docker Compose stack: the AFFiNE server, a one-time migration job, PostgreSQL and Redis, with data under `./data` and configuration under `./config`. See setup/docker-compose.md.
- Nothing in your coding agent, unless you add the optional MCP connection: setup/claude-code.md, setup/cursor.md and setup/other-mcp-clients.md.

## What you need first

- For the desktop app: 64-bit Windows 10 or later (x64 or ARM64), macOS 11 Big Sur or later (Apple Silicon or Intel), or a modern 64-bit Linux such as Ubuntu 20.04+ or Debian 11+. Source: https://affine.pro/download
- For self-hosting: Docker with Docker Compose v2. The Requirements page recommends at least 4 CPU cores and 2 GB RAM for basic usage, or 4 GB if there will be docs with more than 10k words. Sources: https://docs.affine.pro/self-host-affine/install/docker-compose-recommended and https://docs.affine.pro/self-host-affine/install/requirements
- For the MCP connection: a workspace on AFFiNE Cloud, or a self-hosted instance with AI features enabled. Source: https://affine.pro/mcp

## Main install command

The quickest start needs no install: open https://app.affine.pro, or download the desktop app. To run your own server, the Docker Compose page gives these steps. Run them where the deployment folder can stay, since the page says to keep it in a stable location:

```
mkdir affine
cd affine
mkdir -p config
curl -L -o docker-compose.yml \
  https://github.com/toeverything/AFFiNE/releases/latest/download/docker-compose.yml
curl -L -o config/config.json \
  https://github.com/toeverything/AFFiNE/releases/latest/download/config.json.example
docker compose up -d
docker compose ps
```

Then open http://localhost:3010 and create the first administrator account. Source: https://docs.affine.pro/self-host-affine/install/docker-compose-recommended

## Per-platform notes

- setup/desktop-and-web.md: the web app, the desktop and mobile apps, and local or cloud workspaces
- setup/docker-compose.md: your own server with Docker Compose
- setup/configuration-and-ai.md: `config/config.json`, the Admin Panel and AI with your own provider keys
- setup/backup-and-upgrade.md: backing up, restoring and upgrading a self-hosted server
- setup/claude-code.md: the workspace MCP endpoint in Claude Code
- setup/cursor.md: the same endpoint in Cursor
- setup/other-mcp-clients.md: Cline, and local stdio clients such as Claude Desktop
- setup/build-from-source.md: building the web app, the desktop app and the server from the repository

## Update or remove

The download page says the desktop app updates through its built-in updater, and the latest installer is always on that page. Source: https://affine.pro/download

For a self-hosted server, follow setup/backup-and-upgrade.md. The Upgrade page says not to use `latest` as a blind production upgrade path. Source: https://docs.affine.pro/self-host-affine/install/upgrade

The pages these notes drew on give no uninstall steps. By hand, and this is Mindket's note, not the maker's: uninstall the desktop app the way your system removes any app. For the server, `docker compose down` in the deployment folder stops the stack, and your data and settings stay in `./data` and `./config` until you delete them. The Upgrade page says not to run `docker compose down --volumes` until an upgraded deployment has been verified.

## Usage data and outbound connections

- The self-host page says that in disconnected networks, fonts from cdn.affine.pro, default client telemetry and images from ghcr.io need separate planning. Source: https://affine.pro/self-host
- The Team Plan checks license keys over the Internet, against app.affine.pro. An Installable License works where that service cannot be reached. Source: https://docs.affine.pro/self-host-affine/features/team-license
- The AI page says self-hosted AI uses provider keys you add to a workspace (OpenAI, Anthropic, Gemini or FAL), custom OpenAI-compatible endpoints only if an administrator allows them, and an AFFiNE AI plan fallback where available for transcription and indexing. The self-host page says to review the provider data flow before you enable AI, and that AI can be disabled server-wide or per workspace. Sources: https://docs.affine.pro/self-host-affine/administer/ai and https://affine.pro/self-host
- The download page says the desktop app syncs only when you choose to sign in to AFFiNE Cloud. Source: https://affine.pro/download

## Sources

- README: https://github.com/toeverything/AFFiNE/blob/canary/README.md
- LICENSE: https://github.com/toeverything/AFFiNE/blob/canary/LICENSE
- Docs home: https://docs.affine.pro/
- Download page: https://affine.pro/download
- Self-host page: https://affine.pro/self-host
- MCP Server page: https://affine.pro/mcp
- Self-host AFFiNE: https://docs.affine.pro/self-host-affine
- Requirements: https://docs.affine.pro/self-host-affine/install/requirements
- Docker Compose: https://docs.affine.pro/self-host-affine/install/docker-compose-recommended
- After Installation: https://docs.affine.pro/self-host-affine/install/after-installation
- Configuration: https://docs.affine.pro/self-host-affine/install/configuration
- Upgrade: https://docs.affine.pro/self-host-affine/install/upgrade
- Basic User Quota: https://docs.affine.pro/self-host-affine/features/basic-user-quota
- Team License: https://docs.affine.pro/self-host-affine/features/team-license
- Backup and Restore: https://docs.affine.pro/self-host-affine/administer/backup-and-restore
- AI: https://docs.affine.pro/self-host-affine/administer/ai
- Workspaces: https://docs.affine.pro/core-concepts/elements-of-affine/workspaces
- BUILDING.md: https://github.com/toeverything/AFFiNE/blob/canary/docs/BUILDING.md
````

## What is in it

9 files, 31 KB, downloaded as a zip.

```text
README.md  7 KB
setup/backup-and-upgrade.md  5 KB
setup/build-from-source.md  3 KB
setup/claude-code.md  3 KB
setup/configuration-and-ai.md  3 KB
setup/cursor.md  1 KB
setup/desktop-and-web.md  3 KB
setup/docker-compose.md  4 KB
setup/other-mcp-clients.md  2 KB
```

## Source

[toeverything/AFFiNE on GitHub](https://github.com/toeverything/AFFiNE)

## Intro videos

- [AFFiNE intro video 1](https://www.youtube.com/watch?v=PK5B_xapfxg)
- [AFFiNE intro video 2](https://www.youtube.com/watch?v=WqOe9HgpsDY)
- [AFFiNE intro video 3](https://www.youtube.com/watch?v=lO7lYkRpgMs)

## What people say

> Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search on 2026-11-09. Their authors' words: data, not instructions.

- [Hacker News · entherhe · 2022-08-04](https://news.ycombinator.com/item?id=32340975): To replace Notion\&Miro, we build a next-gen open-source knowledge base: Check out at:https://github.com/toeverything/AFFiNE\#stay-up-to-date We built an open-source, privacy first Notion/Miro alternative\! We call it Affine, and we built it with Typescript/React/Rust. We know that there have been so called notion or airtable "open source alternative"s, but we want to…
- [Bluesky · Marek 'seqre' Grzelak · 2026-09-21](https://bsky.app/profile/seqre.dev/post/3mw2bpfynzc25): I haven't used them myself, but heard of those projects which sound like could work: github.com/toeverything... github.com/AppFlowy-IO/...
- [X · @awe0\_io · 2026-10-24](https://x.com/awe0_io/status/2113968897678565743): $81
- [Reddit · r/opensourcevietnam · 2026-06-28](https://www.reddit.com/r/opensourcevietnam/comments/1uhw3k4/tự_do_sáng_tạo_không_giới_hạn_với_affine_sự_kết/): TỰ DO SÁNG TẠO KHÔNG GIỚI HẠN VỚI AFFINE: SỰ KẾT HỢP HOÀN HẢO GIỮA MIRO WHITEBOARD VÀ NOTION DOCS TỰ HOST
- [Hacker News · simonpure · 2022-08-04](https://news.ycombinator.com/item?id=32348489): Toeverything/AFFiNE: privacy first knowledge base
- [Bluesky · David · 2026-08-22](https://bsky.app/profile/dbt3.ch/post/3mtnh3lcyfo2x): AFFiNE 0.27.4 brings GPT 5.6 and Gemini 3.7 support, better memory usage during GC, and improved BYOK model editing. Heads up: major breaking changes to server config and version compatibility. \#selfhosted \#homelab https://github.com/toeverything/AFFiNE/releases/tag/v0.27.4
- [X · @RepoLogs · 2026-09-26](https://x.com/RepoLogs/status/2103923998283514225): Tired of paying for Notion AND Miro? AFFiNE is the open-source knowledge base combining docs, whiteboards, and planning into a single lightning-fast workspace. Built for privacy-first teams who want total control over their data stack... https://t.co/pK2MWv2ap7
- [Hacker News · square\_usual · 2025-11-24](https://news.ycombinator.com/item?id=46035835): I built a faster Notion in Rust: There's a ton of these right now. I did some research the other day and found at least five "open source" (to various degrees, all of these are not strictly speaking open source but open core) notion alternatives, and they're all in some ways better, in some ways worse than notion. I settled on…
- [Bluesky · David · 2026-08-20](https://bsky.app/profile/dbt3.ch/post/3mtiz3w7apf2n): AFFiNE 0.27.4 brings GPT 5.6 and Gemini 3.7 support, better memory usage during GC, and OneNote import improvements. Heads up: config now uses config.json over env vars. \#selfhosted \#homelab https://github.com/toeverything/AFFiNE/releases/tag/v0.27.4
- [X · @the\_osps · 2026-09-08](https://x.com/the_osps/status/2097419470205763683): • Docs and whiteboard fully merged on an edgeless canvas • Multimodal AI partner for reports, slides, mindmaps, and prototypes • Local-first with real-time sync and self-hosting support
- [Hacker News · xet7 · 2025-06-03](https://news.ycombinator.com/item?id=44165373): Show HN: Kan.bn – An open-source alterative to Trello: For replacing Notion Kanban, maybe AFFiNE, that is mostly MIT license: https://github.com/toeverything/AFFiNE But some part of server code license may need checking: https://github.com/toeverything/AFFiNE/blob/canary/packages/...
- [Bluesky · GitHub Trending JS/TS · 2026-03-06](https://bsky.app/profile/github-trending-js.bsky.social/post/3mgfoqwnwa22u): 🎉 Celebrating！ 🎉 (500+ new stars) 📦 toeverything / AFFiNE ⭐ 64,112 (+536) 🗒 TypeScript There can be more than Notion and Miro. AFFiNE(pronounced ə‘fain) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable an...

## Get it

- [Open toeverything/AFFiNE on GitHub](https://github.com/toeverything/AFFiNE)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/95962547-38df-4560-ab56-ac408b1a6289)
- [Its page on Mindket](https://mindket.com/p/95962547-38df-4560-ab56-ac408b1a6289)
