This isn't some genius level newest technology, but something like this wasn't there when I needed it. When I figured out how to do this, I thought of making it accessible to the world - and that's why it's open source.
Dynamic-Readme-Images is a template repository that uses GitHub Actions and Puppeteer to automatically capture a screenshot of a website and update it at a set interval. This way, you can embed a “dynamically updating image” in your project or article (or pretty much everything static) even though the image file is static.
For reference, I've set this repository to fetch an automatic screenshot from Artificialanalysis.ai (VERY cool website btw) that updates every 24 hours
Click the Fork button at the top-right corner of the GitHub page to create your own copy of the repository. This allows you to modify the workflow and code as needed without affecting this original template.
-
Enable GitHub Actions Write Access:
Go to your repository’s settings underSettings -> Actions
and ensure that actions are allowed to write changes (commit updates). -
Customize as Needed:
- Modify the target URL in
screenshot.js
if you want to capture a different website. - Adjust the cron schedule or add additional steps in the workflow file if desired.
- There are tons of code comments so it's actually pretty easy to set up to your requirements
- Modify the target URL in
Once the workflow has run (daily at midnight UTC), your updated screenshot will be available at:
https://raw.githubusercontent.com/[yourusername]/Dynamic-Readme-Images/main/screenshot.png
Embed it in your README or any markdown-supported platform like so:

-
Automated Screenshot Updates:
Uses a GitHub Actions workflow to take a screenshot every 24 hours (at midnight UTC) from a specified website. -
Dynamic Image Link: The generated image is available at:
https://raw.githubusercontent.com/[yourusername]/Dynamic-Readme-Images/main/screenshot.png
(Replace[yourusername]
with your actual GitHub username.)