remark

A plugin-powered markdown processor that parses, transforms, and serializes markdown on top of unified.

Library
npm
v15.0.1
9,025 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
66 /100 Good
Development Activity 48
Maintenance 56
Community 60
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
90 /100 Excellent
Architecture 88
Code Quality 92
Innovation 90
Learning Curve 80

remark is a markdown processor built on the unified collective. It parses markdown into a structured mdast syntax tree, lets a pipeline of plugins inspect and transform that tree, and serializes it back to markdown. The core remark package is a thin, frozen preset that wires remark-parse and remark-stringify onto a unified processor, so you get a ready-to-use markdown-in, markdown-out pipeline.

Because everything flows through the shared unist/mdast tree, remark powers everything from linting and formatting to content migrations and static-site generation. Its plugin ecosystem is one of the largest in the JavaScript world, covering GitHub Flavored Markdown, frontmatter, MDX, syntax tooling, and more.

What You Get

  • A ready-to-use markdown processor exposing the single remark() factory that returns a frozen unified processor.
  • Access to the mdast (markdown AST) representation for programmatic inspection and transformation of documents.
  • A vast plugin ecosystem for GFM, frontmatter, MDX, linting, formatting, and custom transforms.
  • First-class TypeScript types and ESM support with 100% type coverage enforced in CI.

Common Use Cases

  • Programmatically formatting and normalizing markdown files across a repository or docs site.
  • Linting markdown for style and consistency as part of a CI pipeline or editor integration.
  • Transforming markdown content during static-site or content-pipeline builds.
  • Converting between markdown flavors or extracting structured data from markdown documents.

Under The Hood

Architecture

remark’s core package (packages/remark/index.js) is deliberately tiny: it imports remark-parse and remark-stringify, chains them onto a unified() processor with .use(...).use(...), and calls .freeze() to lock the preset. All real work happens in the unified ecosystem — remark-parse turns markdown text into an mdast tree via micromark, plugins registered by consumers walk and mutate that tree, and remark-stringify serializes the tree back to markdown. This tree-in-the-middle design is what lets an entire plugin ecosystem interoperate on a single shared data structure (mdast/unist).

Tech Stack

The library is pure ESM JavaScript with hand-written TypeScript declarations (index.d.ts). Its runtime dependencies are unified, remark-parse, remark-stringify, and @types/mdast. The monorepo is a pnpm/npm workspace containing remark, remark-parse, remark-stringify, and remark-cli. Tooling includes TypeScript for type-checking and declaration builds, xo + prettier for linting/formatting, and c8 for coverage.

Code Quality

Quality standards are unusually high: the project enforces typeCoverage.atLeast: 100 in strict mode, runs xo and prettier, and gates on c8 --100 coverage. Tests live in a 355-line test.js using Node’s built-in node:test runner and assert/strict, exercising the public API surface, settings handling, and the CLI end to end. The public surface of the core package is a single named export, keeping the maintenance burden minimal.

API Design The developer experience is excellent for its scope: remark() returns a standard unified processor, so the API is remark().use(plugin).process(file) with sync (processSync) and async variants. Naming is consistent with the wider unified/remark ecosystem, documentation is extensive (a thorough readme plus getting-started, plugins, and products guides), and getting started requires almost no boilerplate. The main conceptual cost is learning the unified processor model and the mdast tree, which the docs address directly.

Used by 66 apps in this directory

TypeScript
91%
AGPL 3.0

OpenPanel

Analytics

7,187

Open-source Mixpanel alternative with session replay, MCP integration, and privacy-first product analytics you fully control.

View details
83
Repo Health
74
Technical
64
Dependency
Built with
TypeScript 91%
Updated 1 weeks ago
TypeScript
98%
Other

Orama

Developer Tools · Search

10,584

A complete, embeddable search engine and RAG pipeline running in browsers, servers, and edge networks with full-text, vector, and hybrid search in under 2KB.

View details
64
Repo Health
83
Technical
64
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
TypeScript
96%
MIT

Orca

AI Agents · AI Code Assistants

104,104

An open-source Agent Development Environment that orchestrates fleets of parallel AI coding agents — Claude Code, Codex, Gemini and more — each running in its own isolated git worktree.

View details
84
Repo Health
85
Technical
74
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
67%
AGPL 3.0

Plane

Collaboration · Productivity · Project Management

61,353

Open-source project management platform to replace Jira, Linear, and ClickUp — with built-in cycles, real-time collaborative docs, and full self-hosting.

View details
92
Repo Health
82
Technical
77
Dependency
Built with
TypeScript 67%
Python 30%
Updated 1 weeks ago
Python
62%
Apache 2.0

Polar

Developer Tools · Ecommerce · Invoicing Finance

10,410

Open source payments infrastructure that turns software into a business — subscriptions, usage-based billing, digital products, and merchant-of-record compliance in one platform.

View details
90
Repo Health
82
Technical
66
Dependency
Built with
Python 62%
TypeScript 31%
Updated 1 weeks ago
Python
99%
Apache 2.0

Rasa Open Source

AI Assistants · AI Development · Voice AI

21,353

Rasa Open Source is a Python machine learning framework for building contextual, multi-turn chatbots and voice assistants that understand natural language and maintain conversation state.

View details
62
Repo Health
78
Technical
63
Dependency
Built with
Python 99%
Updated 3 months ago
TypeScript
97%
Other

Rocket.Chat

Team Chat

46,304

The secure, self-hosted team communications platform for organizations that cannot compromise on data sovereignty.

View details
96
Repo Health
79
Technical
63
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
97%
Other

Rocket.Chat

Team Chat

46,304

The secure, self-hosted team communications platform for organizations that cannot compromise on data sovereignty.

View details
96
Repo Health
79
Technical
63
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
100%
AGPL 3.0

RSSHub

Automation · Social Media

46,631

Turn any website into an RSS feed — social media, streaming platforms, and niche sites all become subscribable in seconds.

View details
94
Repo Health
82
Technical
71
Dependency
Built with
TypeScript 100%
Updated 6 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