# Writing Markdown
URL: https://usememos.com/docs/usage/writing-markdown

Memos stores memo content as plain text and renders it with Markdown. That keeps
content portable while still supporting rich formatting such as checklists,
tables, code blocks, links, and footnotes.

The editor keeps the Markdown source editable while decorating recognized
syntax. Use the formatting toolbar or keyboard shortcuts for common formatting,
and press `Tab` or `Shift+Tab` to indent or outdent list items.

## Core syntax [#core-syntax]

````markdown
# Heading 1
## Heading 2

**bold**
_italic_
~~strikethrough~~

- [ ] open task
- [x] completed task

```go
fmt.Println("hello from memos")
```
````

## Common patterns [#common-patterns]

* headings for longer notes
* task lists for planning
* fenced code blocks for snippets
* blockquotes for references
* tables when structure matters
* tags like `#project-x` inline in the memo body

## Code blocks [#code-blocks]

Use fenced code blocks with a language identifier when useful:

````markdown
```ts
const visible = memo.visibility === "PUBLIC";
```
````

## Checklists [#checklists]

Task lists are especially useful in Memos because they turn ordinary notes into lightweight work queues:

```markdown
- [ ] Draft release notes
- [ ] Review production config
- [x] Create backup
```

## Footnotes [#footnotes]

Add a footnote reference in the text and define it elsewhere in the memo:

```markdown
This statement needs context.[^context]

[^context]: Supporting details can live at the end of the memo.
```

## Writing tips [#writing-tips]

* keep one memo focused on one topic or update
* use headings in longer memos so they remain readable
* prefer plain Markdown over screenshots of text
* use tags consistently so search and shortcuts stay useful
* choose visibility carefully before sharing externally
* use code fences and blockquotes to make technical notes easier to scan later
