Paragraph
section
.hero
typewriter
From personal blogs to massive documentation sites, Markdoc is a content authoring system that grows with you.
.primary
section
.try
.no-mobile
sandbox
{"height":"360px","options":{"scrollbarStyle":null}}
Boris
role: co-ceo
Some content in the tag
Author’s note:
I’m still working on converting the markdoc source into editor components
{% section .hero %}
{% typewriter /%}
> From personal blogs to massive documentation sites, Markdoc is a content authoring system that
grows with you.
[View docs](/docs/getting-started) {% .primary %}
{% /section %}
{% section .try .no-mobile %}
{% sandbox height="630px" options={"scrollbarStyle": null} /%}
{% /section %}
{% section .value-props %}
{% table %}
---
- {% ascii "key" /%}
{% item %}
### Open source {% .jumbo %}
Maintain full control over your code and content. Markdoc is open-source and fully extensible.
{% /item %}
- {% ascii "key" /%}
{% item %}
### Open source {% .jumbo %}
Maintain full control over your code and content. Markdoc is open-source and fully extensible.
{% /item %}
- {% ascii "pencil" /%}
{% item %}
### Developer & writer friendly {% .jumbo %}
Markdoc delivers a powerful, flexible, developer experience (DX) with an equally capable authoring
experience (AX).
{% /item %}
- {% ascii "card" /%}
{% item %}
### Adopt anywhere {% .jumbo %}
Use Markdoc to create interactive documentation experiences, static content sites, authoring
tooling, and more.
{% /item %}
{% /table %}
{% /section %}
{% section .get-started %}
{% side-by-side %}
{% item %}
## Get started quickly {% .jumbo %}
[Markdoc core](https://github.com/markdoc/markdoc) is a lightweight package containing everything
you need to get started. If you want to get going even faster, check out our
[Next.js plugin](https://github.com/markdoc/next.js) and deploy a Markdoc documentation site with
zero boilerplate.
[Explore documentation](/docs/getting-started) {% .primary %}
[Live edit]() {% .primary %} {% .live-edit %}
{% /item %}
```shell
npm install @markdoc/markdoc
```
```js
import Markdoc from '@markdoc/markdoc';
const doc = `
# Hello world.
> My first Markdoc page
`;
const ast = Markdoc.parse(doc);
const content = Markdoc.transform(ast);
const html = Markdoc.renderers.html(content);
```
{% /side-by-side %}
{% /section %}
{% section .by-stripe %}
{% side-by-side %}
### Markdoc powers Stripe documentation {% .jumbo %}
Stripe created Markdoc to power its largest and
[most detailed content site](https://stripe.com/docs). Since then, we have adopted it across the
company, writing hundreds of thousands of lines of Markdoc to create thousands of pages of
expressive, custom documentation.
{% /side-by-side %}
---
{% features %}
- **Familiar syntax**
Markdoc is a syntactic extension of [Markdown](https://commonmark.org/), so you can keep using
all the syntax and tooling you are used to.
[Learn the syntax](/docs/syntax) {% .primary %}
- **Easily extensible**
Markdoc lets you customize all aspects of the system, from [custom tags](/docs/tags) and
[nodes](/docs/nodes) to entirely [new renderers](/docs/render).
[Learn more](/docs/render) {% .primary %}
- **Built-in validation**
You can add custom validation throughout your content system, ensuring nothing breaks and
your content remains consistent.
[Learn more](/docs/validation) {% .primary %}
{% /features %}
{% /section %}