Skip to content
CDGet
  • Home
  • Projects
  1. Home
  2. All projects
  3. Mawy

Mawy

Library

A Markdown editor that also does the reading, shipped as a React library and a Flutter package. Write on the document as it will look or on the source, switch between the two at a click, and hand the finished text to a read-only viewer that renders it exactly the same way.

Homepage (opens in a new tab)Documentation (opens in a new tab)Source code (opens in a new tab)

About this project

Mawy is a Markdown editor and a Markdown viewer built as one library, for React and for Flutter. An editor and a separately maintained renderer eventually disagree about something — a table, a nested list, a fenced block — and at that moment the document the writer approved stops being the document the reader gets. Here the two halves share the same parser and the same renderer, so what was typed is what is read.

The editor is two views of one document rather than two editors. The Markdown source with its syntax coloured and the composed page are one click apart, every command on the formatting toolbar is also a keyboard shortcut, and switching loses nothing the other view could not express. Under the colouring is a real textarea, which is what keeps the browser’s own undo history, input method composition and the mobile keyboard working. The viewer is a finished reader: typeface, text size, line height, letter spacing, column width, light or dark, and an outline of the headings — none of which touches the document. Given no document at all it is a file picker, so dropping a .md file on it is what its empty state is for.

Setup is the package and one line of CSS. Everything the library draws goes through --mawy-* custom properties, so theming is redeclaring a token on a wrapping element rather than out-specifying a rule, and dark mode is one of those tokens. Nothing is fetched from anywhere: the typeface menu offers what the reader’s machine already has, and the thirteen open-licensed families that ship with it are used only when the application passes them in. Markdown becomes elements rather than a string of HTML, so there is no innerHTML between the document and the page. The React package is ESM with TypeScript declarations and a single runtime dependency, for the toolbar’s icons.

Features

  • Documentation site

  • TypeScript types

  • Multiple languages

  • Verified by tests

  • Cross-platform

  • Accessibility built in

  • Dark mode

  • Tree-shakeable

Project information

Started
2026
License
MIT (opens in a new tab)
Programming languages
JavaScriptDart
Tags
markdownmarkdown-editormarkdown-viewerwysiwygtext-editor
Packages
mawy-react (opens in a new tab)npmmawy (opens in a new tab)pub.dev
Popularity
4
GitHub stars
1,613
npm downloads
Data points: 30. Range: 0 to 322.
Mawy — npm downloads, Last 30 days
npm downloads
Sep 2132
Sep 30
Sep 42
Sep 57
Sep 6152
Sep 70
Sep 80
Sep 92
Sep 105
Sep 11146
Sep 12171
Sep 13322
Sep 1434
Sep 150
Sep 1635
Sep 17184
Sep 1839
Sep 1935
Sep 2014
Sep 2134
Sep 2215
Sep 2336
Sep 24144
Sep 2550
Sep 263
Sep 277
Sep 283
Sep 2914
Sep 3017
Oct 110
Last 30 days
ContactDonate
The projects listed here are open source under the MIT License.© 2026 CDGet. All rights reserved.