// the find
uiwjs/react-md-editor
A simple markdown editor with preview, implemented with React.js and TypeScript.
A textarea-based markdown editor for React with split-pane edit/preview, syntax highlighting via rehype-prism-plus, and GFM support. It deliberately avoids CodeMirror/Monaco dependencies, which keeps it simple but also limits what it can do. Good fit for adding a markdown input field to a React app when you don't need a full code-editor experience.
The textarea foundation means keyboard behavior matches native browser expectations without fighting editor abstractions. The command/toolbar system is genuinely extensible — you can add custom toolbar buttons with dropdowns, access the text state directly, and override rendering per-command. Three bundle entry points (full, common, nohighlight) let you trade bundle size against language coverage, which is a thoughtful tradeoff to expose. Dark mode support is built in via CSS custom properties rather than a theme prop, so it picks up system preference automatically.
No sanitization by default — raw HTML in markdown goes straight to the DOM, and the README buries this behind a security note. You have to wire up rehype-sanitize yourself, which is the wrong default for any app where users control input. The split-pane layout is fixed; there's no easy way to go side-by-side versus stacked, or to have the preview float. Textarea-based editing means no virtual cursor, no column selection, no multi-cursor — anything beyond basic keyboard shortcuts hits a wall. SSR support (Next.js) requires a dynamic import with ssr: false, which is a recurring pain point that shows up in their own issues tracker.