How to Contribute to the Python Insider Blog with Git and Markdown
Introduction
The Python Insider Blog has found a new home at blog.python.org, and with it comes a streamlined workflow built on Git and Markdown. All 307 previous posts have been migrated, and old links redirect correctly — your RSS feed should update automatically to https://blog.python.org/rss.xml. This modern setup lowers the bar for contributors: no more needing a Google account or wrestling with Blogger's editor. If you can open a pull request, you can write a post.
This guide walks you through the entire process, from setting up your environment to submitting your contribution. Whether you're announcing a Python release, a core sprint, a governance update, or anything else official, you'll be publishing in no time.
What You Need
- GitHub account — forking the repository and opening pull requests.
- Text editor — any plain-text editor works; VS Code, Sublime Text, or even Notepad will do.
- Basic Git knowledge (optional but helpful) — cloning, committing, and pushing changes.
- Python Insider Blog repository — https://github.com/python/python-insider-blog
- Optional: Node.js and Astro — if you want to preview your post locally (see the repo README).
Step-by-Step Guide
Step 1: Fork the Repository
- Navigate to python/python-insider-blog on GitHub.
- Click the Fork button in the upper-right corner to create your own copy.
- Clone your fork to your local machine using:
git clone git@github.com:YOUR-USERNAME/python-insider-blog.git - Change into the directory:
cd python-insider-blog
Step 2: Create a Directory for Your Post
- Inside the cloned repo, navigate to
content/posts/. - Create a new directory named with your post's URL-friendly slug. For example, if your post is titled “Python 3.12 Released”, use something like
python-3-12-released.
mkdir -p content/posts/python-3-12-released
Step 3: Write Your Post in Markdown
- Inside your new directory, create a file named
index.md. - Add YAML frontmatter at the top with required fields:
title,date,authors,tags. Example:
--- title: "Python 3.12 Released" date: 2025-03-10 authors: ["Guido van Rossum"] tags: ["release", "news"] --- - Write your content using standard Markdown syntax. You can include headings, lists, links, images, and code blocks.
Step 4: Add Images (Optional)
- Place any images you want to use in the same directory as your
index.mdfile (e.g.,content/posts/python-3-12-released/logo.png). - Reference them in your Markdown using relative paths:

Step 5: Preview Your Post (Optional)
- If you have Node.js installed, you can run the local development server:
npm install(once) thennpm run dev. - Open the URL shown (usually
http://localhost:4321) and navigate to your post. - Alternatively, you can use the Keystatic CMS in dev mode by visiting
/admin— but raw Markdown is fully supported.
Step 6: Commit and Push Your Changes
- Stage your new files:
git add content/posts/python-3-12-released/ - Commit with a descriptive message:
git commit -m "Add post: Python 3.12 Released" - Push to your fork:
git push origin main
Step 7: Open a Pull Request
- Go to your fork on GitHub and click the Contribute button (or Pull Request tab).
- Click Open Pull Request. Ensure the base repository is
python/python-insider-blogand the head is your fork with the new branch (if you created one) or main. - Give your PR a clear title and description. Mention what the post covers.
- Click Create Pull Request.
Your PR will be reviewed by the Python Insider team. Once merged, the site rebuilds automatically via GitHub Actions and your post goes live on blog.python.org.
Tips for a Smooth Contribution
- Check the repository README — it contains detailed information about frontmatter fields and local development.
- Follow the style of existing posts — look at a few
index.mdfiles incontent/posts/to match formatting. - Test your links and images before submitting to avoid broken assets.
- If you spot migration issues (broken links, missing images, formatting glitches), please file an issue on the repository. PRs to fix them are welcome too.
- Your RSS feed should work automatically — the new feed URL is
https://blog.python.org/rss.xml. If you experience any issues, readers can update manually. - No special tools required — just a text editor and Git. The entire build is powered by Astro, Tailwind, and GitHub Actions, so you don't need to install anything unless you want to preview.
Now you're ready to contribute to the Python Insider Blog! The new Git-based workflow makes it easier than ever to share Python news with the community. Happy writing!
Related Articles
- Go 1.26: Key Questions and Answers About the Latest Release
- Dual Parameter Style Support in mssql-python: Q&A Guide
- Kubernetes v1.36: Declarative Validation Goes GA – Your Questions Answered
- Google's TCMalloc Breaks Linux Kernel API, Forces Exception to No-Regressions Rule
- Rustup 1.29.0 Brings Faster Installations, Broader Platform Support, and Enhanced Shell Integration
- 5 Key Changes to Secure Your SSH Access Against Quantum Threats on GitHub
- How to Revolutionize AI Agent Performance with NVIDIA's Unified Omni-Modal Model
- From Skeptic to Convert: How a 15-Minute Vibe-Coded CLI Ended Subscription Laziness