Open source · MIT · npm

What You See
Is Markdown.

WYSIME is a lightweight, Markdown-first WYSIWYG editor written in Vanilla JavaScript. Give users a rich editing surface while keeping Markdown as the canonical stored format.

v0.1.0 initial public preview Vanilla JS no editor framework MIT commercial use allowed
H1BIU≡☑</>▦↗

Markdown without the editing friction.

Edit visually, keep Markdown underneath. WYSIME is designed to stay host-agnostic: storage, authentication and upload infrastructure remain yours.

Markdown-first. Your application keeps control of the source format while WYSIME handles the authoring experience.
Built for integration

A focused editor, not another application framework.

WYSIME provides the editing layer. Your application keeps control of routes, authentication, persistence, business logic and image storage.

MD

Markdown-first

Markdown remains the canonical value you read, store and exchange.

JS

Vanilla JavaScript

No ProseMirror, Tiptap, Quill or other editor framework in the runtime.

↔

Bidirectional editing

Render the supported editorial Markdown subset and serialize edited content back to Markdown.

▦

Contextual tables

Add or remove rows and columns, switch header rows or columns, and delete tables in context.

IMG

Upload-ready images

Inject your own upload callback instead of coupling the editor to a storage backend.

</>

Code & editorial blocks

Inline code, fenced code blocks, callouts, steps, tasks, links and structured content.

FR

English & French UI

Built-in interface localization through the public locale option.

TS

Type declarations

JavaScript runtime with bundled TypeScript declarations for IDE autocomplete.

✓

Sanitized HTML

DOMPurify is used to sanitize supported HTML paths and pasted content.

Install

From npm to an editor in a few lines.

Install WYSIME as a normal dependency, import the editor and its stylesheet, then mount it on your field.

69 kBESM build
18.6 kBESM gzip
9.7 kBCSS build
MITopen source license
Terminal
npm install wysime
JavaScript
import { WYSIMEditor } from "wysime";
import "wysime/style.css";

const editor = new WYSIMEditor("#editor", {
  locale: "en"
});
Designed to stay yours

Host-agnostic by design.

WYSIME deliberately avoids application-specific routes, authentication, databases and business modules. That keeps the editor reusable in SaaS products, internal tools, CMS interfaces and custom applications.

Read the source. Review the API. Build with it.

The complete source, documentation, tests and release history are public on GitHub.

FAQ

Common questions about WYSIME.

What exactly is WYSIME?

WYSIME means “What You See Is Markdown Editor”. It provides a visual WYSIWYG editing experience while keeping Markdown as the canonical source value.

Is WYSIME completely dependency-free?

No. It deliberately avoids an editor framework, but uses DOMPurify for HTML sanitization. This distinction is documented in the project.

Can I use it in commercial software?

Yes. WYSIME is MIT licensed. Commercial use, modification and redistribution are allowed subject to the MIT license notice requirements.

Does WYSIME upload files by itself?

The editor can expose image upload behavior, but storage is intentionally delegated to your application through a configurable callback.

Is the Markdown parser full CommonMark?

No. WYSIME currently targets a documented editorial Markdown subset and custom editorial blocks. See the GitHub documentation for the exact supported syntax.

Where should I report bugs?

Use the GitHub Issues page so reports, reproduction steps and fixes remain attached to the open-source project.