The fastest way from thought to shared document.
Import anything. Render beautifully. Share instantly. Powered by Rust + WASM.
mdcore engine (Rust)
β
ββββββββββββββββΌβββββββββββββββ
β β β
WASM napi-rs native
β β β
ββββββΌβββββ ββββββΌβββββ βββββΌβββββ
Browser Edge Deno Node Raycast CLI Mobile
mdfy.cc CF npm Obsidian brew iOS
Workers pkg VS Code install Android
mdcore is a Markdown parsing, rendering, and conversion engine built in Rust. The web product mdfy.cc is the first surface built on top of the engine.
mdfy.cc is not just a renderer β itβs a full document platform:
- Import any file format (PDF, DOCX, PPTX, XLSX, HTML, CSV, LaTeX, and more)
- Edit inline with WYSIWYG or source Markdown
- AI mdfy β AI-powered structuring turns raw text into clean Markdown
- Share with a single click β short URL with beautiful rendered output
- Export to MD, HTML, TXT, PDF, or copy as rich text for Docs/Email/Slack
- WYSIWYG editing β edit directly in the rendered preview like a word processor
- Source editing β CodeMirror 6 with Markdown-aware highlighting
- Split view β side-by-side Beautified + MDFIED (source) panels
- Floating toolbar β context-aware formatting on text selection
- Narrow view β constrain content width for comfortable reading
- Documents β MD, PDF, DOCX, PPTX, XLSX, HTML, RTF
- Data β CSV, JSON, XML
- Academic β LaTeX, RST (reStructuredText)
- Plain text β TXT
- CLI output β auto-detects Claude Code / terminal output (unicode tables, checkmarks)
- AI mdfy β post-import AI structuring via Gemini
- Download β Markdown, HTML, Plain Text
- Print β PDF via browser print
- Clipboard β Raw HTML, Rich Text (Google Docs/Email), Slack mrkdwn, Plain Text
- Share β Short URL, QR Code, Embed code (iframe)
- Full GFM β tables, task lists, footnotes, strikethrough, autolinks
- Math β KaTeX for inline and display equations
- Mermaid β flowcharts, sequence diagrams, gantt charts
- 190+ languages β syntax highlighting via highlight.js
- Flavor detection β auto-detects GFM, Obsidian, MDX, Pandoc, CommonMark
- Flavor conversion β convert between GFM, CommonMark, Obsidian with one click
- Folders β create, rename, drag-and-drop documents between folders
- Trash β soft delete with restore
- Sorting β newest, oldest, AβZ, ZβA
- Cloud sync β sign in to save documents across devices
- Google / GitHub OAuth + Email magic link
- Beta β everything unlocked while we're testing, no credit card
- Pro tier β kicks in after beta: no badge, custom domain, analytics, password protection (pricing TBD)
mdcore ships five npm packages that can be used independently:
| Package | Description | Install |
|---|---|---|
@mdcore/engine |
Rust WASM engine + TypeScript postprocessor (highlight.js, KaTeX, Mermaid, file import) | npm i @mdcore/engine |
@mdcore/styles |
CSS-only rendering styles -- dark/light themes, document layout, print, diagrams | npm i @mdcore/styles |
@mdcore/api |
HTTP client for the mdfy.cc document API (publish, update, pull, delete, versions) | npm i @mdcore/api |
@mdcore/ai |
AI provider abstraction (Gemini, OpenAI, Anthropic) for text-to-markdown and diagram rendering | npm i @mdcore/ai |
The Rust engine source lives in packages/engine/ and is compiled to WASM, then wrapped by the TypeScript package in packages/mdcore/.
See docs/PACKAGES.md for the full architecture guide, dependency graph, and migration instructions.
| Layer | Technology |
|---|---|
| Core Engine | Rust + comrak |
| WASM | wasm-bindgen + wasm-pack |
| Web App | Next.js 15 + React 19 + TailwindCSS v4 |
| Source Editor | CodeMirror 6 |
| Math | KaTeX |
| Diagrams | Mermaid.js |
| DOCX Import | mammoth |
| Office Import | officeparser (PPTX, XLSX) |
| PDF Import | pdf-parse (server-side) |
| AI Structuring | Gemini API |
| HTML β MD | Turndown + GFM plugin |
| Auth | Supabase Auth (@supabase/ssr) |
| Database | Supabase PostgreSQL |
| Hosting | Vercel |
mdcore/
βββ packages/
β βββ engine/ # Rust core engine (comrak β WASM)
β β βββ src/
β β βββ lib.rs # WASM bindings (wasm-bindgen)
β β βββ render.rs # HTML rendering via comrak
β β βββ flavor.rs # MD flavor detection
β βββ mdcore/ # @mdcore/engine npm package (TypeScript)
β β βββ src/
β β βββ index.ts # mdcore object + re-exports
β β βββ postprocess.ts # highlight.js + KaTeX + ASCII diagrams
β β βββ file-import.ts # CSV, JSON, XML, HTML, RTF, LaTeX, RST
β β βββ html-to-md.ts # HTML β Markdown (Turndown)
β β βββ cli-to-md.ts # CLI output β Markdown
β β βββ mermaid-style.ts # Mermaid SVG post-processing
β βββ styles/ # @mdcore/styles (CSS-only)
β β βββ src/
β β βββ index.css # Main entry (imports all)
β β βββ theme-dark.css # Dark theme variables
β β βββ theme-light.css # Light theme variables
β β βββ rendered.css # .mdcore-rendered document styles
β β βββ code.css # highlight.js light-mode overrides
β β βββ diagram.css # Mermaid + ASCII containers
β β βββ print.css # Print / PDF export
β βββ api/ # @mdcore/api (HTTP client)
β β βββ src/
β β βββ client.ts # MdfyClient class
β β βββ documents.ts # Standalone functions
β β βββ upload.ts # Image upload
β β βββ types.ts # TypeScript interfaces
β βββ ai/ # @mdcore/ai (AI providers)
β βββ src/
β βββ mdfy-text.ts # Raw text β structured Markdown
β βββ ascii-render.ts # ASCII/Mermaid β styled HTML
β βββ conversation.ts # AI conversation detection
β βββ providers/ # Gemini, OpenAI, Anthropic
βββ apps/
β βββ web/ # Next.js 15 web app (mdfy.cc)
β β βββ src/
β β βββ app/
β β β βββ api/
β β β β βββ docs/ # Document CRUD
β β β β βββ import/pdf/ # PDF text extraction
β β β β βββ import/office/ # PPTX/XLSX extraction
β β β β βββ import/mdfy/ # AI structuring
β β β β βββ user/ # User documents
β β β β βββ og/ # OG image generation
β β β βββ auth/callback/ # OAuth callback
β β β βββ d/[id]/ # SSR document viewer
β β β βββ embed/[id]/ # Embed viewer
β β β βββ about/ # About page
β β βββ lib/
β β β βββ engine.ts # WASM engine wrapper
β β β βββ share.ts # URL sharing + document API
β β β βββ useAuth.ts # Auth hook
β β β βββ supabase*.ts # Supabase clients
β β βββ components/
β β βββ MdEditor.tsx # Main editor (WYSIWYG + Source)
β β βββ FloatingToolbar.tsx # Selection toolbar
β β βββ useCodeMirror.ts # CM6 hook
β β βββ MdCanvas.tsx # Mermaid visual editor
β β βββ MathEditor.tsx # KaTeX equation editor
β βββ vscode-extension/ # VS Code extension
βββ docs/
β βββ PACKAGES.md # Package architecture guide
β βββ ARCHITECTURE.md # Technical architecture decisions
β βββ ROADMAP.md # Product roadmap
β βββ MANIFESTO.md # Project manifesto
β βββ MASTER-PLAN.md # Master plan
βββ package.json
cd apps/web
npm install
npm run dev # β http://localhost:3000
cd packages/engine
cargo test
wasm-pack build --target bundler --out-dir ../../apps/web/src/lib/wasm --release
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
GEMINI_API_KEY=your-gemini-key
| Shortcut | Action |
|---|---|
| βB | Bold |
| βI | Italic |
| βK | Insert link |
| βS | Share (copy URL) |
| ββ§C | Copy HTML |
| βZ | Undo |
| ββ§Z | Redo |
| β\ | Toggle view mode |
| Esc | Focus editor |
| Double-click | Edit code/math/diagram/table inline |
- WYSIWYG editing (contentEditable on rendered HTML)
- Multi-format import (PDF, DOCX, PPTX, XLSX, HTML, CSV, LaTeX, RST)
- AI mdfy structuring (Gemini)
- CLI output auto-conversion
- Folders + Trash + Sorting
- Auth (Google/GitHub/Email)
- Cloud sync + document ownership
- Viral badge (βPublished with mdfy.ccβ)
- Flavor conversion (GFM β CommonMark β Obsidian)
- Stripe billing (Pro $8/mo)
- Custom domains
- View analytics
- Chrome extension (ChatGPT/Claude β mdfy.cc)
-
@mdcore/enginenpm package -
@mdcore/terminalCLI renderer - VS Code / Obsidian plugins
- Mobile SDK (UniFFI β Swift/Kotlin)
MIT
mdcore β The fastest way from thought to shared document.