How to Contribute to the Official Python Blog: A Step-by-Step Guide
Introduction
The official Python blog, previously hosted on Blogger under the name Python Insider, has moved to a new home at https://blog.python.org. This migration brings a modern, Git‑based workflow that makes it easier than ever for community members to contribute. All 307 historical posts have been transferred, old URLs redirect automatically, and your RSS reader should pick up the new feed without any changes (though you can update it to https://blog.python.org/rss.xml if needed).
This guide will walk you through everything you need to know to write and submit a post to the revamped Python blog. By the end, you’ll be able to open a pull request with your own article—no special tools required beyond a text editor and a GitHub account.
What You Need
Before you start, make sure you have the following:
- A GitHub account (free tier is fine).
- Basic familiarity with Git (forking, cloning, committing, pushing).
- A text editor (any plain‑text editor works; options like VS Code, Vim, or Notepad++ are all fine).
- Understanding of Markdown syntax (headings, lists, images, links).
- Knowledge of YAML for frontmatter fields (title, date, authors, tags).
Optionally, you may want to install Node.js and npm if you plan to preview the site locally.
Step‑by‑Step Guide to Submitting a Post
Step 1: Fork the Repository
Go to the official blog repository at https://github.com/python/python-insider-blog. Click the Fork button (top‑right) to create your own copy of the repository under your GitHub account. This gives you a sandbox where you can make changes without affecting the original project.
Step 2: Create a New Directory for Your Post
Inside your forked repository, navigate to the content/posts/ folder. Every post lives in its own subdirectory named with a slug—a short, URL‑friendly identifier for your article. For example, if your post is about the new Python 3.13 release, you might create a directory called announcing-python-3-13.
Step 3: Write Your Post as an index.md File
Inside your new directory, create a file named index.md. This file contains the full content of your post using Markdown. At the very top, add YAML frontmatter surrounded by --- lines. The frontmatter must include at least:
---
title: "Your Post Title"
date: 2025-04-10
authors: ["Your Name"]
tags: ["tag1", "tag2"]
---
You can also add other optional fields like description, slug (if different from directory name), and coverImage. The repository’s README contains a full list of supported frontmatter fields.
Step 4: Add Images (Optional)
If your post needs images, place them in the same directory as your index.md file. For instance, content/posts/announcing-python-3-13/screenshot.png. Then reference them in your Markdown using relative paths:

Step 5: Open a Pull Request
Commit your changes to your forked repository and push them to your remote. Then, navigate back to the original repository on GitHub and you’ll see a banner inviting you to create a pull request. Click it, provide a clear description of your post, and submit. The Python blog team will review your submission and, if everything looks good, merge it to publish.
Additional Tips & Best Practices
- Preview your post locally: If you have Node.js installed, clone your forked repo, run
npm installand thennpm run dev. The site uses Astro and will start a local server atlocalhost:4321so you can see exactly how your post will appear. - Use Keystatic CMS (optional): During local development, you can enable a visual editor by running the site with a special flag. This lets you edit content without writing raw Markdown, but it’s entirely optional.
- Check for broken links: Before submitting, verify all external links work and internal links use proper relative paths. The GitHub Actions build will also catch some issues.
- Follow the existing style: Look at previous posts in the repository to get a feel for tone, formatting, and typical content. Python release announcements, core sprint reports, and governance updates are common.
- Need help?: If you spot a bug (broken links, missing images, formatting errors) from the migration, file an issue on the repository. Pull requests that fix these are also welcome.
Conclusion
Moving the Python blog to a Git‑based workflow lowers the barrier for community contributions. You no longer need a Google account or to wrestle with Blogger’s editor. With just a simple Markdown file and a pull request, you can help share news about Python releases, events, governance, and more. Start writing, and help make the Python blog even better!
Related Articles
- Go Team Unveils Stack Allocation Breakthrough for Faster Slice Operations
- 10 Fascinating Insights into Alan Turing and the Play 'Breaking the Code' in Cambridge, MA
- The Slow Evolution of Programming and the Quick Rise of Stack Overflow
- Gemini API Now Supports Event-Driven Webhooks for Long-Running AI Jobs
- Mapbox Styles Unlocked: A Step-by-Step Guide
- Understanding WebAssembly JSPI: Origin Trial and What It Means for Developers
- How to Enjoy 'Breaking the Code' at Central Square Theater: A Step-by-Step Guide to Experiencing Alan Turing's Story
- Exploring Python 3.15.0 Alpha 3: Key Questions and Answers