Quarto vs R Markdown (2026): key differences, what still works, and when to switch
- Quick answer: Quarto is R Markdown’s successor from the same Posit team. Your
.Rmdfiles keep rendering; nothing breaks if you wait. - What is genuinely new: chunk options on
#|lines, built-in cross-references (@fig-,@tbl-), websites and books withoutblogdown/bookdown, and first-class Python, Julia and Observable support. - Switch now if you start a new report, website or book, or you mix R with Python. Stay on R Markdown if you only maintain existing
.Rmdfiles or depend on a package that still targetsrmarkdown. - Migration cost: rename
.Rmdto.qmd, move chunk options onto#|lines, runquarto render. Most documents convert in minutes.
If you’ve written reports in R Markdown, Quarto will feel like coming home — it’s the next-generation successor from the same team at Posit. But it’s not just a rename. Here’s what actually changed, and how to decide whether to move.
What’s the same
Almost everything you know transfers directly:
- You still write Markdown prose with code chunks.
- You still render with a button (or a command) to HTML, PDF and Word.
knitr,ggplot2,dplyr— your whole R toolchain is unchanged.
Your existing .Rmd files keep working. Quarto isn’t a break; it’s an evolution.
What’s genuinely new
| Area | R Markdown | Quarto |
|---|---|---|
| Scope | R-centric, via the rmarkdown package |
Standalone CLI; R, Python, Julia, Observable |
| Chunk options | in the header: {r echo=FALSE} |
on #\| lines inside the chunk |
| Cross-references | add-on packages | built in (@fig-, @tbl-) |
| Websites & books | blogdown / bookdown |
built in (project: type: website) |
| Layout, callouts, tabs | manual HTML/CSS | first-class Markdown features |
The chunk-option change you’ll notice first
In R Markdown, options lived in the chunk header:
{r echo=FALSE, warning=FALSE} summary(cars)
In Quarto, they move onto their own #| (“hash-pipe”) lines inside the chunk:
```{r}
#| echo: false
#| warning: false
summary(cars)
```It reads more cleanly, plays nicely with version control (one option per line), and works identically across languages. Quarto still accepts the old header style, so there’s no rush.
Should you switch?
- New project? Start in Quarto. You get cross-references, websites and multi-language support with zero add-ons.
- Existing
.Rmdthat works? Leave it — or rename it.qmdand adjust chunk options when you next touch it. There’s no forced migration. - Building a site, book or dashboard? Quarto replaces
blogdown/bookdown/flexdashboardwith one consistent system.
The concepts you already have are the concepts Quarto uses. To try the new workflow hands-on, start the free Learn Quarto course — the key lessons run R live in your browser.
Migrating a reporting workflow to Quarto, or standing one up from scratch? We do that.