tiptap-markdown

A Markdown extension bringing bidirectional Markdown input/output to the Tiptap rich-text editor

Library
npm
v0.9.0
525 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
40 /100 Fair
Development Activity 0
Maintenance 20
Community 52
Maturity 60
Momentum 28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
66 /100 Good
Architecture 68
Code Quality 70
Innovation 50
Learning Curve 75

tiptap-markdown is a community-built extension for Tiptap (the ProseMirror-based rich-text editor toolkit) that lets an editor instance read and write Markdown directly, alongside Tiptap’s native HTML/JSON document model. It plugs in as a standard Tiptap extension — extensions: [StarterKit, Markdown] — and exposes editor.storage.markdown.getMarkdown() plus Markdown-aware setContent() so Markdown can be used as a first-class content format rather than only HTML.

The library covers configurable serialization details (tight vs. loose lists, bullet markers, HTML passthrough, linkify, paste/copy transforms) and supports custom ProseMirror-markdown parse/serialize extensions for teams with bespoke node types. As of Tiptap 3.7, the Tiptap team shipped an official markdown extension, and this package’s README now recommends migrating to it, with the maintainer no longer triaging issues or PRs here — worth factoring in for new projects, though it remains widely installed (1.3M weekly downloads) in codebases built before the official extension existed.

What You Get

  • A drop-in Markdown Tiptap extension added alongside StarterKit and other extensions
  • editor.storage.markdown.getMarkdown() to read the current document as a Markdown string
  • Markdown-aware setContent(), so editor.commands.setContent('**test**') parses Markdown directly
  • Configurable serialization options: html, tightLists, bulletListMarker, linkify, breaks, transformPastedText, transformCopiedText
  • Support for custom parse/serialize rules for teams extending Tiptap with their own node/mark types

Common Use Cases

  • Building a WYSIWYG editor for a CMS or blogging platform that stores content as Markdown
  • Letting users paste raw Markdown into a rich-text editor and have it render formatted immediately
  • Adding copy-as-Markdown behavior so content copied out of the editor pastes cleanly into chat apps or issue trackers
  • Migrating an existing Markdown-based content pipeline to a richer WYSIWYG editing experience without changing the storage format

Under The Hood

Architecture - The extension’s entry point (src/Markdown.js) registers Tiptap storage and commands, delegating actual conversion work to src/parse/MarkdownParser.js (Markdown text to ProseMirror document, built on markdown-it for tokenizing) and src/serialize/MarkdownSerializer.js + src/serialize/state.js (ProseMirror document back to Markdown text, extending prosemirror-markdown’s default serializer). src/extensions/ houses per-node/mark serialization rules that map Tiptap’s built-in extensions (headings, lists, bold, links, etc.) to their Markdown equivalents.

Tech Stack - JavaScript (83.6%) with a Vue-based example app (11.2%) and Vite as the build tool, distributed as both ES module and UMD builds (dist/tiptap-markdown.es.js / .umd.js) with hand-written TypeScript declarations (index.d.ts). It depends on markdown-it for parsing and integrates with whichever Tiptap/ProseMirror version the host project uses.

Code Quality - Tests under __tests__/ (Markdown.spec.js, parse.spec.js, serialize.spec.js, tight-lists.spec.js, clipboard.spec.js, util.spec.js) run via Vitest with snapshot testing, covering round-trip parsing/serialization and the trickier tight-vs-loose list formatting edge cases. Given the project’s now-reduced maintenance (the author points users to Tiptap’s own official extension and states current issues/PRs won’t be addressed), code quality is frozen at its last-released state rather than actively evolving.

API Design - Following Tiptap’s own extension convention (extensions: [StarterKit, Markdown]) makes adoption nearly zero-friction for existing Tiptap users, and the configuration options map directly onto common Markdown-flavor decisions (tight lists, bullet style, HTML passthrough) that teams actually need to tune. The main API wrinkle for new adopters is the explicit upstream README notice that Tiptap’s official markdown extension (introduced in 3.7.0) is now the recommended path going forward.

Used by 14 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Databases · Low Code Platforms

15,623

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
71
Repo Health
77
Technical
60
Dependency
Built with
TypeScript 72%
Java 22%
Updated 3 weeks ago
Python
68%
Other

Baserow

Databases · No Code Platforms

6,012

Open-source no-code platform to build databases, apps, automations, and AI agents — self-hosted or cloud, with full data ownership.

View details
89
Repo Health
84
Technical
68
Dependency
Built with
Python 68%
JavaScript 16%
Vue 11%
Updated 5 days ago
Java
72%
Other

ByteChef

AI Agents · Automation

1,003

Unified open-source platform for AI agent orchestration and workflow automation with 180+ connectors, MCP support, and durable execution.

View details
85
Repo Health
82
Technical
67
Dependency
Built with
Java 72%
TypeScript 28%
Updated 5 days ago
Go
65%
AGPL 3.0

Fider

Customer Support · Product Management

4,545

Open-source feedback portal where customers submit, vote on, and track feature requests so product teams build what actually matters.

View details
89
Repo Health
85
Technical
71
Dependency
Built with
Go 65%
TypeScript 28%
Updated 5 days ago
TypeScript
96%
AGPL 3.0

Kan

Project Management

5,703

An open-source, self-hostable Kanban board built as a modern Trello alternative with team workspaces, board permissions, and Trello import.

View details
85
Repo Health
78
Technical
67
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
97%
Other

Lightdash

Analytics · Data Engineering

6,166

The open-source Looker alternative that turns your dbt project's metrics and dimensions into governed, self-serve charts and dashboards — no license key required.

View details
93
Repo Health
84
Technical
64
Dependency
Built with
TypeScript 97%
Updated 4 days ago
TypeScript
44%
Other

Magic

AI Agents · Automation · Low Code Platforms

5,043

Magic is an enterprise-grade open-source AI agent platform combining a generalist AI agent, workflow engine, IM, and collaborative office system for running an AI-powered digital workforce.

View details
70
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 44%
PHP 32%
Updated 1 months ago
TypeScript
65%
Other

NocoDB

Databases · Low Code Platforms · No Code Platforms

65,098

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
90
Repo Health
77
Technical
62
Dependency
Built with
TypeScript 65%
Vue 30%
Updated 6 days ago
TypeScript
94%
Apache 2.0

Openship

Devops · Hosting Control Panel

12,979

Openship is an open-source, self-hostable deployment platform that points at a repo and builds, ships, routes, and TLS-terminates the app — driven from a desktop app, web dashboard, or CLI.

View details
84
Repo Health
85
Technical
65
Dependency
Built with
TypeScript 94%
Updated 5 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers