How to Contribute to the Python Insider Blog from Scratch
Introduction
The official Python blog — Python Insider — has moved to a new home at https://blog.python.org. All 307 posts from the old Blogger platform have been migrated, and old URLs now automatically redirect to the correct new page. The most exciting change? The blog is now built from a Git repository, which means anyone who knows how to open a pull request can contribute. No more needing a Google account or wrestling with Blogger's editor. This guide will walk you through everything you need to write and submit your first post.
What You Need
- A GitHub account (free tier works fine).
- A text editor (like VS Code, Sublime Text, or even Notepad).
- Basic familiarity with Git and Markdown (if you can write a README, you're ready).
- A topic that belongs on the official Python blog (e.g., release announcements, core sprints, governance updates).
- Optional: any images you'd like to include (place them in the same folder as your post).
Step-by-Step Guide
Step 1: Fork the Repository
Go to https://github.com/python/python-insider-blog and click the “Fork” button in the upper-right corner. This creates your own copy of the blog's source code. Once forked, clone the repository to your local machine using:
git clone https://github.com/YOUR-USERNAME/python-insider-blog.git
Step 2: Create a New Directory for Your Post
Navigate into the cloned repo and go to the content/posts/ folder. Inside, create a new directory named after your post's slug (the URL-friendly version of the title). For example, if your post is titled “Python 3.12 Released!”, use python-3-12-released.
mkdir content/posts/your-post-slug
Step 3: Add index.md with YAML Frontmatter
Inside your new directory, create a file named index.md. At the top, include YAML frontmatter that defines the title, date, authors, and tags. Here's an example:
---
title: "Your Post Title"
date: "2025-04-01"
authors:
- "Your Name"
tags:
- "release"
- "announcement"
---
Below the frontmatter, write your post in Markdown. You can use standard formatting like headings, lists, links, and code blocks. Keep in mind the post will be shown exactly as you write it—follow the Tips section for best practices.
Step 4: Upload Images (Optional)
If your post includes images, place them in the same directory as index.md. For example, save screenshot.png right next to the post file. Then reference it in your Markdown with:

This keeps everything self-contained and easy to manage.
Step 5: Open a Pull Request
Once you've finished writing and saved all files, commit your changes and push them to your forked repository on GitHub:
git add .
git commit -m "Add new post: [your title]"
git push origin main
Then go to your fork on GitHub and click the “Contribute” button, then “Open Pull Request”. Write a brief description of your post and submit. The maintainers will review it, suggest changes if needed, and merge it. That's it!
Tips for a Smooth Contribution
- Preview before submitting. The repository's README explains how to run a local development server using Astro. This way you can see exactly how your post will look on the live blog.
- Check the existing posts. Look at a few
index.mdfiles incontent/posts/to see the exact frontmatter fields used (some optional fields likefeatured_imageexist). - Use the visual editor if you prefer. The blog also has a Keystatic CMS available in dev mode. Run
npm run devand you can edit posts through a graphical interface instead of raw Markdown. - Double-check your links. The migration from Blogger may have changed some internal links. If you reference an older post, use the new URL structure:
https://blog.python.org/posts/slug/. - RSS feed remains the same. The feed URL is https://blog.python.org/rss.xml. Subscribers don't need to update anything.
- Report migration issues. If you spot broken links, missing images, or formatting errors from the old blog, please open an issue. Pull requests that fix these are also welcome.
The move to a Git-based workflow makes the Python Insider blog more open than ever. Now everyone in the community can contribute announcements, tutorials, or updates. Happy writing!
Related Articles
- GDB's Experimental Source-Tracking Breakpoints Automatically Adapt to Code Changes
- Supply Chain Attack on SAP npm Packages Exposes Developer Tool Vulnerabilities
- NOAA Warns 'Record-Breaking' El Niño Transition Could Trigger Global Weather Chaos
- 7 Essential Insights into AI-Assisted Programming Tools and Techniques
- Optimizing Go Performance with Stack Allocation for Fixed-Size Slices
- Embracing the Terminal: How Linux Transforms into a Powerful Development Environment
- Inside the Python Security Response Team: Governance, Growth, and How to Get Involved
- Python Insider Blog Embraces Git-Based Workflow with New Home