Quarto: Open-source technical publishing
Episode Deep Dive
1. What is Quarto?
- Quarto is an open-source, multi-language publishing system that converts notebooks (and other source files) into polished websites, reports, presentations, e-books, and more.
- It builds upon Pandoc, which provides a powerful abstract document model, allowing Quarto to generate multiple output types (HTML, PDF, Word, etc.) from the same source.
- Fully open source under the MIT License.
Key point: Quarto gives you a “one-stop shop” to publish data science and software engineering artifacts—beyond just a standard Jupyter notebook.
2. Multi-Language and Multi-Format Support
- Language flexibility: Quarto works with R, Python (via Jupyter notebooks), Julia, and even Observable JavaScript.
- Output formats:
Key point: If you produce data/visualizations in notebooks, Quarto can publish them in many professional-looking formats with minimal overhead.
3. Publishing and Continuous Integration
- Command-line:
quarto publish
can deploy your site or document to multiple services:- GitHub Pages
- Netlify
- Quarto Pub (a free hosting service from Posit)
- Hugging Face Spaces
- CI examples: The quarto-actions GitHub repo contains samples and workflows for automated rendering on push or pull requests.
Key point: You can integrate Quarto in your existing GitHub Actions or other CI pipelines to automatically build and publish updated notebooks or websites.
4. Notable Extensions, Shortcodes, and Filters
- Shortcodes: Snippets for embedding rich, custom elements in documents, e.g., YouTube videos or 3D molecule viewers.
- Filters: Transform or post-process documents at the Pandoc AST level (written in Lua, or via Pandoc’s cross-language filters).
Key point: Quarto’s extensibility lets you customize content transforms or add interactive features without disrupting the standard publishing flow.
5. Key Community Resources and Examples
- NBSanity: (nbsanity.com) Automates Quarto notebook rendering with zero local installation.
- Quarto.org: (https://quarto.org) Official website for documentation, tutorials, and guides.
- Example sites:
- fast.ai blog (built with Quarto + Jupyter notebooks)
- Real World Data Science from the Royal Statistical Society (built with Quarto, using R Markdown)
Key point: The Quarto community actively shares examples, and the official docs provide thorough guidance and tooling instructions.
6. Getting Started
- Install Quarto
- Via quarto.org download
- Or
pip install quarto-cli
- Pick your editor
- Visual Studio Code, JupyterLab, RStudio, Neovim, or any text editor
- Try the step-by-step tutorial
Key point: A hands-on tutorial typically takes ~30 minutes and gives you a solid sense of Quarto’s workflow, including code execution and publishing basics.
7. Licensing and Business Model
- MIT License: Quarto is fully open source; you can use and modify it freely.
- Posit Connect Integration: For enterprise publishing, scheduling, authentication, and advanced data product deployment, Quarto can publish directly to Posit Connect—a commercial offering from Posit (formerly RStudio).
Key point: Quarto remains unencumbered open source, while Posit offers premium tools around scheduling, enterprise features, and hosting if desired.
Overall Takeaway
Quarto revolutionizes technical publishing by enabling you to write once, then render to multiple high-quality outputs. Whether you need a polished PDF, a full-featured website, or an internal report, Quarto’s command-line tool, multi-language support, and tight Pandoc integration streamline the entire process. With an active community, broad editor integrations, and flexible publishing options, Quarto offers a powerful path to reproducible and professional-grade data science communication.
Links from the show
JJ on LinkedIn: linkedin.com
JJ on GitHub: github.com
Carlos Scheidegger
Personal site: cscheid.net
Mastodon: @scheidegger
Fast AI: fast.ai
nbdev: nbdev.fast.ai
nbsanity - Share Notebooks as Polished Web Pages in Seconds: answer.ai
Pandoc: pandoc.org
Observable: github.com
Quarto Pub: quartopub.com
Deno: deno.com
Real World Data Science site: realworlddatascience.net
Typst: typst.app
Github Actions for Quarto: github.com
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm
--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy