README Generator

How to Automatically Show Latest Blog Posts in Your GitHub Profile README

Displaying your latest blog posts in your GitHub profile README signals ongoing intellectual engagement — you are not just writing code, you are thinking about it and sharing ideas. The blog-post-workflow GitHub Action pulls posts from any RSS feed and automatically updates a section of your README each day. This guide covers the gautamkrishnar/blog-post-workflow setup, which works with any platform that produces an RSS feed: Dev.to, Medium, Hashnode, personal blogs with a feed, or any other content platform.

Quick Setup Steps

  1. 1

    Step 1: Add <!-- BLOG-POST-LIST:START --> and <!-- BLOG-POST-LIST:END --> comment markers to your README where posts should appear.

  2. 2

    Step 2: Create .github/workflows/blog-post-workflow.yml using gautamkrishnar/blog-post-workflow@v1.

  3. 3

    Step 3: Set feed_list to your RSS feed URL (Dev.to: dev.to/feed/USERNAME, Medium: medium.com/feed/@USERNAME).

  4. 4

    Step 4: Run the workflow manually from Actions to trigger the first post list update.

  5. 5

    Step 5: Verify the comment section in your README is populated with your latest posts.

What Is the Blog Post Workflow?

The blog-post-workflow is a GitHub Action that reads your blog's RSS feed and updates a designated section of your README with your most recent posts. It runs on a schedule (daily by default) and commits the updated post list automatically, so your profile always reflects your current writing without any manual intervention.

The Action supports filtering posts by tag, controlling how many posts to display, customizing the post item format, and pulling from multiple RSS feeds simultaneously. It works with any valid RSS 2.0 or Atom feed, making it compatible with virtually every blogging platform that exists.

How to Set Up Blog Post Workflow

Follow these steps:

  1. Add comment markers to your README where you want the post list to appear:
## Recent Blog Posts
<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->
  1. Create .github/workflows/blog-post-workflow.yml:
name: Latest Blog Post Workflow
on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:
jobs:
  update-readme-with-blog:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: gautamkrishnar/blog-post-workflow@v1
        with:
          feed_list: "https://yourblog.com/rss.xml"
  1. Replace https://yourblog.com/rss.xml with your actual RSS feed URL.
  2. For Dev.to: https://dev.to/feed/YOUR_USERNAME
  3. For Medium: https://medium.com/feed/@YOUR_USERNAME
  4. Run the workflow manually from Actions to trigger the first update.

Customizing Blog Post Display

The Action accepts several configuration options:

  • max_post_count: Number of posts to display (default: 5)
  • feed_list: Comma-separated list of RSS feed URLs for multiple sources
  • template: Custom format for each post item (supports $title, $url, $date, $newline variables)
  • tag_post_pre_newline: Whether to add a newline before each item
  • disable_sort: Set to true to keep posts in feed order rather than sorting by date
  • filter_comments: Filter posts that are comment responses (for Dev.to)
  • comment_tag_name: Change the comment markers if your README uses different names

Example custom template:

template: "- [$title]($url) — $date"

For multiple feeds (e.g., Dev.to + personal blog):

feed_list: "https://dev.to/feed/username,https://yourblog.com/rss.xml"

Troubleshooting Blog Post Workflow

If the workflow runs but your README doesn't update, verify that the comment markers in your README are exactly <!-- BLOG-POST-LIST:START --> and <!-- BLOG-POST-LIST:END --> on their own lines. Any extra text on those lines will prevent the regex match.

If the Action fails with 'No valid RSS data found', test your RSS feed URL directly in your browser. Some platforms generate feed URLs differently — Dev.to uses https://dev.to/feed/USERNAME (not the usual /feed.xml pattern). For Hashnode blogs, the feed URL is typically https://YOURBLOG.hashnode.dev/rss.xml.

If the workflow runs successfully but commits show no changes, your RSS feed may not have been updated since the last run. This is expected behavior — the Action only commits when new posts are available.

Frequently Asked Questions

How do I add my blog posts to my GitHub README automatically?

Add the <!-- BLOG-POST-LIST:START --> and <!-- BLOG-POST-LIST:END --> comment markers to your README, create a GitHub Actions workflow using gautamkrishnar/blog-post-workflow@v1 with your RSS feed URL, then run it manually for the first update. After that, it runs daily on schedule.

Which blogging platforms work with the blog post workflow?

Any platform with an RSS or Atom feed works. Dev.to (dev.to/feed/USERNAME), Medium (medium.com/feed/@USERNAME), Hashnode (YOURBLOG.hashnode.dev/rss.xml), Ghost, WordPress, and any custom blog with an RSS feed. You can also combine multiple feeds in one workflow.

Why are my blog posts not showing up in my README?

Check three things: (1) the comment markers are exactly as specified on their own lines, (2) your RSS feed URL is valid and accessible (test it in a browser), and (3) the workflow has completed successfully in the Actions tab. Run it manually from Actions → Latest Blog Post Workflow → Run workflow.

How many blog posts can I show in my GitHub README?

The default is 5 posts. Use the max_post_count parameter to change this — set it to 3 for a compact list or up to 10 for more coverage. Showing 3-5 recent posts is typical; more than 5 can make the section feel heavy on profile READMEs.

From Our Blog

Generate Your GitHub Profile README

Generate a GitHub profile README featuring Latest Blog Posts with AI

Try It Free — No Sign Up