MCPcopy Index your code
hub / github.com/TypeCellOS/BlockNote

github.com/TypeCellOS/BlockNote @v0.51.4 sqlite

repository ↗ · DeepWiki ↗ · release v0.51.4 ↗
2,096 symbols 8,118 edges 1,331 files 282 documented · 13%
README

TypeCell

Welcome to BlockNote! The open source Block-Based React rich text editor. Easily add a modern text editing experience to your app.

Homepage - Documentation - Quickstart - Examples

Live demo

See our homepage @ https://www.blocknotejs.org or browse the examples.

Example code (React)

npm version

import { useCreateBlockNote } from "@blocknote/react";
import { BlockNoteView } from "@blocknote/mantine";
import "@blocknote/core/fonts/inter.css";
import "@blocknote/mantine/style.css";

function App() {
  const editor = useCreateBlockNote();

  return <BlockNoteView editor={editor} />;
}

@blocknote/react comes with a fully styled UI that makes it an instant, polished editor ready to use in your app.

Features

BlockNote comes with a number of features and components to make it easy to embed a high-quality block-based editor in your app:

Animations:

Helpful placeholders:

Drag and drop blocks:

Nesting / indentation with tab and shift+tab:

Slash (/) menu:

Format menu:

Real-time collaboration:

Feedback 🙋‍♂️🙋‍♀️

We'd love to hear your thoughts and see your experiments, so come and say hi on Discord.

Contributing 🙌

See CONTRIBUTING.md for more info and guidance on how to run the project (TLDR: just use pnpm start).

The codebase is automatically tested using Vitest and Playwright.

License 📃

BlockNote is 100% Open Source Software. The majority of BlockNote is licensed under the MPL-2.0 license, which allows you to use BlockNote in commercial (and closed-source) applications. If you make changes to the BlockNote source files, you're expected to publish these changes so the wider community can benefit as well. Learn more.

The XL packages (source code in the packages/xl-* directories and published in NPM as @blocknote/xl-*) are licensed under the GPL-3.0. If you cannot comply with this license and want to use the XL libraries, you'll need a commercial license. Refer to our website for more information.

Credits ❤️

BlockNote builds directly on two awesome projects; Prosemirror by Marijn Haverbeke and Tiptap. Consider sponsoring those libraries when using BlockNote: Prosemirror, Tiptap.

BlockNote is built as part of TypeCell. TypeCell is proudly sponsored by the renowned NLNet foundation who are on a mission to support an open internet, and protect the privacy and security of internet users. Check them out!

NLNet

Hosting and deployments powered by Vercel:

NLNet

This project is tested with BrowserStack

Extension points exported contracts — how you extend this code

ImportMetaEnv (Interface)
(no doc)
packages/xl-docx-exporter/src/vite-env.d.ts
UseFocusWithinOptions (Interface)
(no doc)
packages/react/src/hooks/useFocusWithin.ts
ImportMetaEnv (Interface)
(no doc)
packages/xl-odt-exporter/src/vite-env.d.ts
NodeConfig (Interface)
(no doc)
packages/core/src/blocks/Table/block.ts
EdgeDropPosition (Interface)
(no doc)
packages/xl-multi-column/src/extensions/DropCursor/multiColumnDropCursor.ts
ImportMetaEnv (Interface)
(no doc)
packages/xl-pdf-exporter/src/vite-env.d.ts
ImportMetaEnv (Interface)
(no doc)
packages/xl-email-exporter/src/vite-env.d.ts
ImportMetaEnv (Interface)
(no doc)
shared/vite-env.d.ts

Core symbols most depended-on inside this repo

create
called by 341
packages/core/src/blocks/BlockNoteSchema.ts
map
called by 284
packages/core/src/extensions/SideMenu/MultipleNodeSelection.ts
transact
called by 175
packages/core/src/editor/BlockNoteEditor.ts
focusOnEditor
called by 132
tests/src/utils/editor.ts
cn
called by 129
packages/shadcn/src/lib/utils.ts
assertEmpty
called by 122
packages/core/src/util/typescript.ts
setTextCursorPosition
called by 109
packages/core/src/editor/BlockNoteEditor.ts
useCreateBlockNote
called by 93
packages/react/src/hooks/useCreateBlockNote.tsx

Shape

Function 1,657
Method 277
Class 88
Interface 74

Languages

TypeScript100%

Modules by API surface

packages/core/src/editor/BlockNoteEditor.ts71 symbols
packages/core/src/api/parsers/markdown/markdownToHtml.ts41 symbols
packages/core/src/api/exporters/markdown/htmlToMarkdown.ts33 symbols
packages/core/src/extensions/TableHandles/TableHandles.ts27 symbols
docs/components/fumadocs/layout/sidebar/base.tsx22 symbols
packages/core/src/editor/managers/BlockManager.ts20 symbols
packages/server-util/src/context/ServerBlockNoteEditor.ts18 symbols
packages/core/src/comments/threadstore/TipTapThreadStore.ts18 symbols
packages/core/src/api/blockManipulation/tables/tables.ts16 symbols
packages/shadcn/src/components/ui/dropdown-menu.tsx15 symbols
packages/core/src/editor/managers/StateManager.ts15 symbols
packages/core/src/editor/managers/ExtensionManager/index.ts15 symbols

Dependencies from manifests, versioned

@ai-sdk/anthropic3.0.2 · 1×
@ai-sdk/google3.0.2 · 1×
@ai-sdk/groq3.0.2 · 1×
@ai-sdk/mistral3.0.2 · 1×
@ai-sdk/openai3.0.2 · 1×
@ai-sdk/openai-compatible2.0.2 · 1×
@ai-sdk/provider-utils4.0.2 · 1×
@ai-sdk/react3.0.5 · 1×
@ariakit/react0.4.19 · 1×
@aws-sdk/client-s33.609.0 · 1×
@aws-sdk/s3-request-presigner3.609.0 · 1×
@base-ui/react1.1.0 · 1×

For agents

$ claude mcp add BlockNote \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact