markdown.landing Open editor

language/markdown

An Online Markdown Editor with a Live GFM Preview

Type GitHub-flavored Markdown on one side and watch it render on the other — tables, task lists, code blocks, Mermaid diagrams and math, all previewed live as you write.

flavorGitHub-flavored
previewlive, side-by-side
extrasMermaid, math, code
installnone
README.md
# Release notes

- [x] Ship the editor
- [ ] Write the docs

| Feature | Status |
| ------- | ------ |
| Preview | live   |

```js
export const version = '7.6';
```
gfm → html · preview updates live

01 platform

What a real Markdown editor adds to a text box

Markdown is easy to write in anything. What a proper editor adds is the other half — seeing the rendered result as you type, in the exact flavor GitHub and the rest of the ecosystem use.

  • A live preview, side by side

    The rendered HTML sits beside the source and updates as you type, so a table that is one pipe short or a list that did not nest is obvious immediately, not after you paste it somewhere.

  • GitHub-flavored, not a dialect

    Tables, task lists, strikethrough, fenced code and autolinks all behave the way they do in a GitHub README, so what you write here is what renders there.

  • The VS Code engine underneath

    Monaco brings multi-cursor, find-and-replace across files and the command palette to your prose, which is what makes editing a long document bearable.

  • Private and installable

    The document lives in your browser, never on a server, and XCODX installs as a PWA — so your notes keep working offline and stay yours.

02 deep dive

Write on the left, rendered on the right

The preview is the point: Markdown only tells you it worked when you can see it, and here you can see it as you go.

It renders on every keystroke. Type a heading and it appears formatted; add a table row and the table grows. There is no compile step and no refresh — the preview is a reflection of the source, not a build of it.

Scrolling stays in step. The preview follows the source as you move through a long document, so the paragraph you are editing is the paragraph you are looking at.

It is the real output. The preview is the HTML your Markdown produces, so copying the rendered result into a page or an email carries the formatting you saw, not an approximation of it.

updates
as you type
layout
side-by-side
output
HTML
flavor
GFM
notes.md
## Today
- [x] wrote the intro
- [ ] review the PR

> A blockquote renders as a quote,
> not as text with a `>` in front.
task lists and tables render live

03 features

What this Markdown editor supports

Everything below is on the moment you open the Markdown editor, which starts as a research notebook mixing prose, code, diagrams and math.

  • Tables and task lists

    GitHub-flavored tables with alignment, and checkbox task lists that render as real checkboxes — the two extensions a plain Markdown parser most often gets wrong.

  • Fenced code, highlighted

    Code blocks are syntax-highlighted by language, the same way they render in a repository, so a snippet in your docs looks like code rather than gray text.

  • Mermaid diagrams

    A ```mermaid fence renders a flowchart or sequence diagram inline, so a document can carry a picture that stays in sync with the words around it.

  • Math with KaTeX

    Inline and block math render through KaTeX, so $e^{i\pi}+1=0$ becomes a typeset equation — enough for notes, papers and problem sets.

  • Multi-file projects

    Keep a folder of Markdown files with images and assets beside them, switch between tabs, and commit the lot with Git — a notebook, not a single scratch pad.

  • Export as you need

    The source is a plain .md file and the preview is real HTML, so the document moves into a repo, a static site or a doc tool without a proprietary format in the way.

04 deep dive

Mermaid, math and code inside your Markdown

The parts that separate a notebook from a text file are the embedded ones — a diagram, an equation, a highlighted snippet — and they render here without a plugin to wire up.

Diagrams live in a fence. Open a ```mermaid block, write the diagram as text, and it renders as SVG in the preview — the same Mermaid the diagram editor uses, embedded in your prose.

Math renders through KaTeX. Dollar-delimited TeX becomes typeset math, inline or as a block, which covers the notation most notes and papers reach for. This is KaTeX math, not a full LaTeX document compiler.

Code is highlighted by language. A fenced block tagged with its language is colored the way it would be in a repository, so a README's examples read as code and the language is obvious at a glance.

diagrams
```mermaid fence
math
KaTeX, $…$
code
fenced, highlighted
not
full LaTeX docs
paper.md
The mass–energy relation is $E = mc^2$.

```mermaid
flowchart LR
  Idea --> Draft --> Review
```
a fence and an equation, both rendered

05 workflow

From a heading to a rendered README

No install, no build, no publish step to preview — the whole loop from an empty file to a document that renders like it will on GitHub.

readme — xcodx
  • new project → Markdown
  • created README.md · notebook starter
  • add a | table | with rows
  • preview: table rendered with alignment
  • add a ```mermaid fence
  • diagram rendered inline as SVG
  • git commit -m "docs: getting started"
  • [main a3f0b21] docs: getting started · 1 file
  • See it the way GitHub will

    Because the preview is GitHub-flavored, the README you write here renders the same when you push it, with no surprises in the tables or task lists.

  • The same loop on a tablet

    Rendering happens client-side, so an iPad previews Markdown the same way a laptop does, with nothing installed.

  • It is just a .md file

    Export the project and the document is plain Markdown on disk — no lock-in, ready for a repo or a static-site generator.

06 ecosystem

Markdown beside the rest of the toolkit

Markdown is one of many things the editor renders — the same tab documents a project, compiles its code and previews the result, per file.

  • React
  • Vue
  • Angular
  • Svelte
  • SolidJS
  • Lit
  • HTMX
  • Vite
  • TypeScript
  • JavaScript
  • HTML
  • CSS
  • SCSS
  • Less
  • Pug
  • Tailwind
  • Bootstrap
  • Vuetify
  • Ant Design
  • shadcn/ui
  • Phaser
  • Node.js
  • Python
  • Java
  • C++
  • C#
  • Go
  • Rust
  • Ruby
  • PHP
  • Kotlin
  • Swift
  • SQL
  • Bash

07 languages

What the editor renders alongside Markdown

A Markdown document sits beside everything else the editor compiles in the browser, renders natively, or runs on demand.

Compiled in your browser11

Zero build step. Transform runs on a Web Worker, so typing never blocks.

  • JSX
  • TSX
  • TypeScript
  • Vue SFC
  • Svelte
  • Angular (JIT)
  • SolidJS
  • SCSS
  • Sass
  • Less
  • Pug

Rendered natively8

Straight to the live preview, no transform in the way.

  • HTML
  • CSS
  • JavaScript
  • JSON
  • Markdown
  • Jupyter (.ipynb)
  • SVG
  • YAML

Executed on demand22

70+ languages run through a self-hosted Piston engine. stdout, stderr, images and tracebacks land in the console.

  • Python
  • Java
  • C
  • C++
  • C#
  • Go
  • Rust
  • Ruby
  • PHP
  • Kotlin
  • Swift
  • Lua
  • Scala
  • Perl
  • Haskell
  • Elixir
  • Dart
  • R
  • Julia
  • SQLite
  • Bash
  • PowerShell

08 questions

Markdown in the browser — common questions

Does the Markdown editor show a live preview?

Yes. The rendered result sits beside the source and updates as you type, with the two panes scrolling in step, so you always see how the document looks while you write rather than after you publish it.

Is this GitHub-flavored Markdown?

Yes. Tables, task lists, strikethrough, fenced code and autolinks follow GitHub-flavored Markdown, so a README written here renders the same way once you push it to a repository.

Can I use Mermaid diagrams and math in Markdown?

Yes. A ```mermaid fence renders a diagram inline as SVG, and dollar-delimited TeX renders as typeset math through KaTeX. Both work in the preview with no plugin to configure.

Does it render LaTeX documents?

It renders KaTeX math expressions inside Markdown, not full LaTeX documents. There is no TeX engine here compiling a .tex file to a PDF — the math support is for equations in your notes, papers and READMEs.

Can I keep several Markdown files in one project?

Yes. Projects are multi-file, so a folder of notes with images and assets beside them, tabs to switch between them, and Git to version them all work — it is a notebook rather than a single text box.

Do I need to install anything to edit Markdown?

No. The editor and the renderer run entirely in the browser, so there is no install and no build. It works offline once loaded as a PWA, and your documents stay in your browser.

Can I export the Markdown or its HTML?

Yes. The source is a plain .md file you can export in the project zip, and the preview is the real HTML the Markdown produces, so the document moves into a repo, a site or another tool without a proprietary format.

Do I need to install anything to use XCODX Studio?

No. XCODX Studio is a browser-based IDE — the editor, the compilers and the preview all run client-side. There is no download, no package manager to set up and no configuration file to write. Opening the editor is the whole setup step.

Where is my code stored?

In your own browser. Projects, file history and Git objects live in local storage on your device and are never uploaded to a server. That also means XCODX works offline: it is a Progressive Web App, so you can install it and keep coding with no connection.

Is XCODX Studio free?

Yes. The editor, the live preview, the 70+ language runtimes, npm installs, Git and the integrated terminal are all free to use.

Can I use XCODX on a tablet or Chromebook?

Yes. The editor is a responsive web app, so a Chromebook, an iPad or an Android tablet gets the same compilers and the same preview a laptop does — there is no desktop-only build, because there is no build to install at all. The layout adapts to the screen rather than shrinking a desktop UI into it.

Can I export a project or move it to my own machine?

Yes. Export the whole project as a zip with its folder structure intact and open it locally, or commit it and push. It is ordinary source on disk from that point on — no proprietary format and no lock-in, which is also why importing an existing repository from GitHub works the same way in reverse.