explaingit

toeverything/affine

🔥 Hot68,513TypeScriptAudience · developerComplexity · 4/5ActiveLicenseSetup · moderate

TLDR

Open-source workspace combining document editing (like Notion) and visual whiteboarding (like Miro) in one app, with local-first data storage and optional collaboration.

Mindmap

mindmap
  root((repo))
    What it does
      Document editing
      Visual canvas
      Block-based content
      AI assistant
    How it works
      Local-first storage
      Real-time sync
      Self-hostable
      Open source
    Use cases
      Knowledge management
      Team collaboration
      Brainstorming
      Task organization
    Tech stack
      TypeScript
      Electron
      Browser-based
    Audience
      Knowledge workers
      Teams
      Privacy-conscious users

Things people build with this

USE CASE 1

Build a personal knowledge base combining written notes with visual mind maps and sketches on an infinite canvas.

USE CASE 2

Set up a team workspace where members can collaborate on documents and whiteboards in real time without data stored on external servers.

USE CASE 3

Self-host a Notion-like workspace on your own infrastructure for privacy-sensitive organizations.

USE CASE 4

Create a hybrid workspace for brainstorming sessions that mix structured outlines with freeform visual sketching.

Tech stack

TypeScriptElectronReactNode.js

Getting it running

Difficulty · moderate Time to first run · 30min

Electron app requires Node.js and npm install with native module compilation; first build may take 10-15 minutes.

Open source; you can use, modify, and self-host the code freely, with the ability to fork and extend it for your own needs.

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 set up AFFiNE locally on my machine and start creating documents with the block-based editor?
Prompt 2
Show me how to switch between document view and canvas view in AFFiNE and use both for the same project.
Prompt 3
How do I self-host AFFiNE on my own server and enable real-time collaboration for my team?
Prompt 4
What are the AI assistant features in AFFiNE and how do I use them to generate summaries or mind maps from my notes?
Prompt 5
How do I fork the AFFiNE codebase and customize it to add my own block types or features?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.