How to Contribute to the Python Insider Blog on GitHub
Introduction
The official Python Insider Blog has moved to a new home at blog.python.org, powered by a Git repository. This shift makes contributing easier than ever—no more needing a Google account or wrestling with Blogger's editor. Now, if you can open a pull request, you can write a post. Whether you want to announce a new Python release, share a core sprint update, or discuss governance changes, this guide will walk you through the process of submitting your first blog post. The entire blog content lives as Markdown files in the python-insider-blog GitHub repository, and all 307 legacy posts from Blogger have been migrated. Old URLs automatically redirect, and RSS subscribers just need to point to https://blog.python.org/rss.xml. Ready to contribute? Let's get started.
What You Need
- A GitHub account (free) to fork and submit pull requests.
- Basic familiarity with Git (or willingness to use GitHub's web interface).
- A text editor (VS Code, Notepad++, Vim, or any Markdown-capable editor).
- Optional: Node.js and npm if you want to preview the blog locally (Astro setup).
- Understanding of Markdown (simple syntax for formatting text).
Step-by-Step Guide
1. Fork the Repository
- Navigate to https://github.com/python/python-insider-blog.
- Click the Fork button in the top-right corner. This creates a copy of the repository under your own GitHub account.
- Clone your fork to your local machine using:
git clone https://github.com/YOUR_USERNAME/python-insider-blog.git
2. Create a New Directory for Your Post
- Inside the cloned repository, navigate to the
content/posts/folder. - Create a new directory named with a short slug for your post (e.g.,
my-python-announcement). Slugs should be URL-friendly—lowercase, hyphens instead of spaces. - Your final path will look like:
content/posts/my-python-announcement/
3. Write Your Post in Markdown
- Inside your new folder, create a file named index.md.
- Start the file with YAML frontmatter (metadata between triple dashes). Required fields:
title: Your post title (e.g., "Python 3.12 Released")date: Publication date in YYYY-MM-DD formatauthors: List of author names (e.g.,["Guido van Rossum"])tags: Comma-separated tags (e.g.,[release, announcement])
--- title: "Python 3.12 Released" date: 2025-03-15 authors: ["Jane Doe"] tags: [release, python312] --- - After the frontmatter, write your blog content using Markdown syntax. You can include headings, lists, links, code blocks, etc.
- If you have images, place them in the same directory as
index.md(e.g.,my-image.png). Reference them with relative paths like. - Save the file.
4. Open a Pull Request
- Commit your changes locally:
git add . git commit -m "Add post: My Python Announcement" - Push to your fork:
git push origin main - Go to your fork on GitHub. You should see a banner prompting you to create a pull request. Click Compare & pull request.
- Provide a clear title and description for your PR. Mention what the post is about and any special notes (e.g., time-sensitive release).
- Submit the pull request. The Python Insider core team will review it, suggest edits if needed, and merge when ready.
Alternative: Use Keystatic CMS (Optional)
If you prefer a visual editor over raw Markdown, you can run the site in development mode to use Keystatic. This requires Node.js installed:
npm install
npm run dev
Then open http://localhost:4321/admin in your browser. You'll see a user-friendly interface to draft posts. Changes are saved directly into the content/ folder. However, you still need to submit your changes via a pull request (fork and PR).
Tips and Best Practices
- Preview locally: If you have Node.js, run
npm run devto see your post rendered exactly as it will appear on the live blog. This helps catch formatting issues early. - Check the README: The repository's README contains full documentation on frontmatter fields, local development, and any additional rules.
- Use meaningful slugs: Your directory name becomes part of the URL (e.g.,
/my-python-announcement/). Keep it short but descriptive. - Images in the same directory: Always place image files next to your
index.md. This keeps assets organized and avoids broken links. - Don't worry about styling: The blog uses Tailwind CSS, which automatically applies consistent styling to your Markdown content. Focus on the writing.
- Check for broken links: After migration, some older posts might have issues. If you notice a problem, file an issue or submit a PR fixing it.
- Keep updates brief: Official blog posts typically cover specific announcements. For broader Python community discussions, consider the Python Discourse or other venues.
With these steps, you're ready to contribute to the Python Insider Blog. The process is straightforward, open, and community-driven. Happy writing!
Related Articles
- From CS Degree to Go 1.25 Engineer: A Bootcamp Success Story
- New AI Plugin 'Destiny' Brings Ancient East Asian Astrology to Claude Code
- Assessing Arm64 Compatibility for Hugging Face Spaces: A Step-by-Step Guide
- All About the Python Security Response Team: Governance, Membership, and How to Get Involved
- Go Developer Survey 2025: Your Voice Matters
- Legacy Driver Separation in Mesa: A Step-by-Step Guide to Git Branching
- The 6 Core Reasons Python Apps Are So Hard to Ship as Standalone
- How to Set Up Continuous Profiling at Scale with Pyroscope 2.0