#549: Great Docs
Your documentation has two audiences now - humans reading the rendered HTML, and AI agents trying to make sense of your library. Rich Iannone and Michael Chow from Posit are back on Talk Python with a brand new Python documentation tool called Great Docs that takes both seriously. Rich is the creator of Great Tables, and before that the R package GT, the man has a serious eye for design, and he's pointed that energy at the Python docs ecosystem. We'll talk about how Great Docs spins up a polished site in three commands, why every page ships as Markdown for your favorite LLM, how it leans on Quarto for executable code blocks and tabbed install sections, and where it lands against Sphinx, MkDocs, and Zensical. Plus, you'll meet Tablin. Here we go.
Episode sponsors
Sentry Error Monitoring, Code talkpython26
Temporal
Talk Python Courses
Links from the show
Guests
Michael Chow: github.com
Rich lannone: github.com
Python Web Security with OWASP Top 10 and Agentic AI Course: talkpython.fm
Great Docs: posit-dev.github.io/great-docs
Great Tables: posit-dev.github.io
GT Episode: talkpython.fm
Sphinx: www.sphinx-doc.org
mkdocs: www.mkdocs.org
Zensical: zensical.org
Hugo: gohugo.io
Ghost: ghost.org
Rs pkgdown: pkgdown.r-lib.org
Quarto: quarto.org
quickstart: posit-dev.github.io
llms.txt file: llmstxt.org
llms.txt: talkpython.fm
mcp: talkpython.fm
cli: talkpython.fm
Watch this episode on YouTube: youtube.com
Episode #549 deep-dive: talkpython.fm/549
Episode transcripts: talkpython.fm
Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong
---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython
Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython
Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy
Build Captivating Display Tables in Python With Great Tables
<p>Do you need help making data tables in Python look interesting and attractive? How can you create beautiful display-ready tables as easily as charts and graphs in Python? This week on the show, we speak with Richard Iannone and Michael Chow from Posit about the Great Tables Python library.</p>
<p>Michael and Richard discuss the design philosophy and history behind creating display tables. We dig into the grammar of tables, the background of the project, and an ingenious way to build a collection of examples for a library.</p>
<p>We briefly cover how Richard and Michael started contributing to open source. We also discuss practicing data skills with challenges and resources like Tidy Tuesday.</p>
<p>This episode is sponsored by Mailtrap.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/graph-data-with-python-and-ggplot/">Graph Your Data With Python and ggplot</a> </p>
<p>In this course, you’ll learn how to use ggplot in Python to build data visualizations with plotnine. You’ll discover what a grammar of graphics is and how it can help you create plots in a very concise and consistent way.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:00 – Michael’s background in open source</li>
<li>00:04:07 – Rich’s background in open source</li>
<li>00:05:27 – Advice for someone starting out</li>
<li>00:08:55 – What do you mean by the term “display” table</li>
<li>00:11:32 – What components were missing from other tables?</li>
<li>00:13:31 – Using examples to explain features</li>
<li>00:16:09 – Why was there an absence of this functionality in Python?</li>
<li>00:19:35 – A progressive approach and the grammar of tables</li>
<li>00:21:26 – Sponsor: Mailtrap</li>
<li>00:22:01 – The design philosophy of great tables</li>
<li>00:25:31 – Nanoplots, spark lines, and column spanners</li>
<li>00:27:06 – Building a gallery of examples</li>
<li>00:28:56 – Heat mapping cells and automatically adjusting text color</li>
<li>00:32:54 – Output formats for the tables</li>
<li>00:34:46 – Building in accessibility</li>
<li>00:36:55 – Dependencies</li>
<li>00:37:42 – What is the common workflow?</li>
<li>00:41:39 – Video Course Spotlight</li>
<li>00:43:15 – Adding graphics</li>
<li>00:46:41 – Using a table contest to get examples</li>
<li>00:49:47 – quartodoc and documenting the project</li>
<li>00:55:00 – Tidy Tuesday and data science community</li>
<li>01:00:29 – What are you excited about in the world of Python?</li>
<li>01:03:46 – What do you want to learn next?</li>
<li>01:08:05 – How can people follow the work you do online?</li>
<li>01:09:57 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://posit-dev.github.io/great-tables/articles/intro.html">Great Tables - Intro</a></li>
<li><a href="https://posit-dev.github.io/great-tables/examples/">Examples – great_tables</a></li>
<li><a href="https://github.com/posit-dev/great-tables/tree/main">great-tables: Make awesome display tables using Python. - GitHub</a></li>
<li><a href="https://github.com/machow/siuba">siuba: Python library for using dplyr like syntax with pandas and SQL</a></li>
<li><a href="https://posit-dev.github.io/great-tables/blog/design-philosophy/">The Design Philosophy of Great Tables – great_tables</a></li>
<li><a href="https://www.youtube.com/watch?v=p42Xc6dl3Ek">Richard Iannone - Using Great Tables to Make Presentable Tables in Python - YouTube</a></li>
<li><a href="https://x.com/elcheff/status/1753756506992890115">Evaluation of the players of #LigaEndesa this week in Europe - Great Tables Example - X</a></li>
<li><a href="https://github.com/machow/quartodoc">quartodoc: Generate API documentation with quarto</a></li>
<li><a href="https://www.youtube.com/playlist?list=PL19ev-r1GBwkuyiwnxoHTRC8TTqP8OEi8">Tidy Tuesday R Screencasts - YouTube</a></li>
<li><a href="https://pola.rs/">Polars — DataFrames for the new era</a></li>
<li><a href="https://github.com/narwhals-dev/narwhals">narwhals-dev/narwhals: Lightweight and extensible compatibility layer between dataframe libraries!</a></li>
<li><a href="https://plotnine.org/">A Grammar of Graphics for Python – plotnine 0.13.6</a></li>
<li><a href="https://github.com/rich-iannone">Richard Iannone - GitHub</a></li>
<li><a href="https://github.com/machow">Michael Chow - GitHub)</a></li>
<li><a href="https://www.linkedin.com/in/richard-iannone-a5640017/">Richard Iannone - LinkedIn</a></li>
<li><a href="https://www.linkedin.com/in/michael-a-chow/">Michael Chow - LinkedIn</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/using-jupyter-notebooks/">Using Jupyter Notebooks</a></li>
<li><a href="https://realpython.com/courses/pandas-groupby-real-world-data/">pandas GroupBy: Grouping Real World Data in Python</a></li>
<li><a href="https://realpython.com/courses/graph-data-with-python-and-ggplot/">Graph Your Data With Python and ggplot</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Founders Playbook: Lessons from Riot, Discord, & More
Gaming is not just entertainment—it's a revolution reshaping our culture, technology, and economy.
a16z’s Jonathan Lai and Andrew Chen dive into the current gaming renaissance and its future impact. Joining them are Michael Chow, CEO and Steven Snow, CPO of The Believer Company, and Eros Resmini, Founder and Managing Partner of The Mini Fund.
They explore the intersection of tech, art, psychology, and design in gaming, discussing how startups can navigate intense competition, distribution challenges, and high production costs. With insights from these industry leaders, this episode covers the transformative potential of AI, the importance of player feedback, and strategies to stand out in a crowded market.
Recorded during Speedrun, a16z’s extensive games accelerator, this episode offers a glimpse into the strategies and innovations driving the gaming industry forward.
Resources:
Find Steven on Twitter: https://twitter.com/StevenSnow
Find Michael on LinkedIn: https://www.linkedin.com/in/believer-paladin/
Find Eros on Twitter: https://twitter.com/erosresmini
Find Jonathan on Twitter: https://twitter.com/Tocelot
Find Andrew on Twitter: https://twitter.com/andrewchen
Learn more about Speedrun: https://a16z.com/games/speedrun/
Stay Updated:
Let us know what you think: https://ratethispodcast.com/a16z
Find a16z on Twitter: https://twitter.com/a16z
Find a16z on LinkedIn: https://www.linkedin.com/company/a16z
Subscribe on your favorite podcast app: https://a16z.simplecast.com/
Follow our host: https://twitter.com/stephsmithio
Please note that the content here is for informational purposes only; should NOT be taken as legal, business, tax, or investment advice or be used to evaluate any investment or security; and is not directed at any investors or potential investors in any a16z fund. a16z and its affiliates may maintain investments in the companies discussed. For more details please see a16z.com/disclosures.
Stay Updated:
Find a16z on YouTube: YouTube
Find a16z on X
Find a16z on LinkedIn
Listen to the a16z Show on Spotify
Listen to the a16z Show on Apple Podcasts
Follow our host: https://twitter.com/eriktorenberg
Please note that the content here is for informational purposes only; should NOT be taken as legal, business, tax, or investment advice or be used to evaluate any investment or security; and is not directed at any investors or potential investors in any a16z fund. a16z and its affiliates may maintain investments in the companies discussed. For more details please see a16z.com/disclosures.
Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.