explaingit

toeverything/affine

68,063TypeScriptAudience · pm founderComplexity · 3/5Setup · moderate

TLDR

AFFiNE is an open-source, local-first workspace app that combines structured note-taking like Notion with an infinite visual canvas like Miro, all your data stays on your own device by default.

Mindmap

mindmap
  root((AFFiNE))
    What it does
      Notion alternative
      Miro-like canvas
      Local-first storage
    Key features
      Block-based editing
      Infinite canvas
      AI assistant
      Real-time collaboration
    Tech stack
      TypeScript
      Electron desktop
    Use cases
      Knowledge management
      Team workspaces
      Visual brainstorming
      Self-hosted notes
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Keep project notes, task databases, and whiteboard sketches in one app without switching between Notion and a separate diagramming tool.

USE CASE 2

Self-host a team knowledge base and collaborative whiteboard to keep sensitive data off third-party cloud servers.

USE CASE 3

Use the built-in AI assistant to convert rough bullet-point notes into a polished document or presentation.

USE CASE 4

Organize personal knowledge with linked pages and canvas mind maps, with all data stored locally on your device.

Tech stack

TypeScriptElectron

Getting it running

Difficulty · moderate Time to first run · 5min

Browser and desktop apps work immediately with no setup, self-hosting the sync server requires Docker.

Open-source and free to use and self-host, check the repository for specific license terms.

In plain English

AFFiNE is an open-source, all-in-one workspace application that aims to combine the functionality of two very different tools, Notion (a structured document and database tool) and Miro (a visual whiteboard), into a single product. The core idea is that you should be able to work in both a traditional text-document mode and an open infinite canvas mode, and mix the two freely. In AFFiNE, everything is composed of blocks, chunks of content like text, images, databases, embedded web pages, sticky notes, shapes, or linked documents. These blocks can be placed freely on an edgeless visual canvas for spatial brainstorming, or organized into structured pages for writing and note-taking. Switching between the two views is built into the product rather than being a separate app or mode. The tool also includes an AI assistant that can help write documents, convert outlines into presentations, summarize content, or generate mind maps. A defining feature is its local-first approach: your data is stored on your own device by default, meaning you are not dependent on a company's servers to access your notes. Real-time collaboration and cloud sync are available as optional layers on top of this. The app can be self-hosted on your own infrastructure, and the code is open source so it can be forked and extended. You would reach for AFFiNE when you want a knowledge management workspace where you can write structured notes, organize tasks, sketch ideas on a whiteboard, and collaborate, without your data being locked into a proprietary cloud service. It works in the browser, as a desktop app built with Electron, and can be self-hosted. The codebase is primarily TypeScript.

Copy-paste prompts

Prompt 1
How do I self-host AFFiNE on a Linux VPS so my team can collaborate in real time on documents and whiteboards?
Prompt 2
I want to move from Notion to AFFiNE, what's the import process and which Notion features translate across?
Prompt 3
Help me set up an AFFiNE workspace for a small product team with a Kanban board, meeting notes pages, and a shared whiteboard.
Prompt 4
How do I use AFFiNE's AI assistant to turn a messy set of meeting notes into a structured action plan with owners and deadlines?
Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub toeverything on gitmyhub

Verify against the repo before relying on details.