All writing
6 min readComparisonsAFFiNE

Nex vs AFFiNE: two answers to “a document and a canvas”

AFFiNE puts the page and the whiteboard in one space and lets you switch between them. Nex puts the whiteboard inside the page. That choice decides everything after it.

AFFiNE is the most interesting thing to happen to this category in a while, and for a specific reason: it refuses to decide whether a page is a document or a canvas. The same content exists in a page mode and an edgeless mode, and you move between them. It is a real idea, executed properly, and it is the closest anyone has shipped to a genuine alternative to the Notion model.

Nex answers the same question differently, and the difference is worth understanding before you pick either.

The canvas is a block, not a mode

In Nex a whiteboard is a block in the document. You type /whiteboard in the middle of a page and draw, and the paragraphs carry on underneath. There is no second mode to switch into, and no second representation of the same content.

The practical consequence is that a page reads top to bottom, always. The document is the spine and a diagram is a thing in it, the way an image is. That is a narrower idea than AFFiNE’s and it is narrow on purpose: two views of one document means every feature after it has to answer twice. What does a comment on a shape mean in page mode? What does export produce? What does a published page show? Each of those is answerable, and AFFiNE answers them — but each answer is a place where the two views can come to disagree.

There is a bundle argument too, and it is not trivial. Excalidraw — the canvas Nex embeds — is around a megabyte. Nex reaches it through a lazy import inside the whiteboard block, so a page with no whiteboard never loads it. A canvas that is a mode is much harder to keep off the critical path, because you cannot know in advance that nobody will press the switch.

Local-first, and what it asks of you

AFFiNE is built local-first: the workspace lives on your machine and syncing is something you opt into. For a lot of people that is the whole reason to use it. Data that never leaves your laptop cannot be read by anyone, cannot be lost to a company changing its plans, and works on a train.

Nex is server-backed. Pages live in a Convex deployment, queries are subscriptions, and the page you open on your phone is the page you left on your laptop with nothing to configure. We think that is the right default for a tool whose main job is writing things down that other people will eventually read — the moment you want to publish a page or share a comment thread, the server was going to be involved anyway.

What we owe you in exchange is an exit. Everything in Nex exports to markdown or HTML, produced in your browser rather than uploaded somewhere to be converted, and a whole subtree of pages comes down as a zip. If that is not enough for your threat model, take AFFiNE seriously — it is a good answer to a question we are not answering.

Where the two converge

The two agree on more than they disagree on. Blocks. Nested pages. A slash menu that reaches every block type. Comments that belong to a specific thing rather than to the page in general. Publishing without a separate site builder. Neither wants you to choose a template before you can start.

The honest summary: if the canvas is the point — if you think in boards and the writing hangs off them — AFFiNE’s model will fit your head better than ours. If the writing is the point and the diagram is something a paragraph needed, Nex will. And if what you actually care about is that your data never leaves your machine, that is a different question from either, with a clearer answer than most comparisons admit.