Dynacover is a PHP GD + TwitterOAuth CLI app to dynamically generate Twitter header images and upload them via the API. This enables you to build cool little tricks, like showing your latest followers or GitHub sponsors, your latest content created, a qrcode to something, a progress bar for a goal, and whatever you can think of.
You can run Dynacover in three different ways:
- as a GitHub action: the easiest way to run Dynacover is by setting it up in a public repository with GitHub Actions, using repository secrets for credentials. Follow this step-by-step guide to set this up - no coding required.
- with Docker: you can use the public erikaheidi/dynacover Docker image to run Dynacover with a single command, no PHP required. Follow this guide to set this up.
- to further customize your cover, you can clone the dynacover repo to customize banner resources (JSON template and header images, both located at
app/Resources
), then build a local copy of the Dynacover Docker image to use your custom changes.
- to further customize your cover, you can clone the dynacover repo to customize banner resources (JSON template and header images, both located at
- with a PHP CLI environment: this will require
php-cli
8.1+, Composer, and a few extensions:php-gd
,php-mbstring
,php-curl
, andphp-json
. Follow this guide to set it up.
To upload your header images, you'll need to register an application within the Twitter Developers Portal and obtain 4 tokens:
- Consumer / App Token
- Consumer / App Secret
- User / Access Token
- User / Access Token Secret
Additionally, you can set up a Personal GitHub API key to fetch your sponsors, in case you are enrolled in the GitHub Sponsors program. In this case, you should use the included cover_sponsors.json
template. This is optional.
The default template shows latest 5 Twitter followers.
Similar to the basic cover, but with a more colorful background. Shows latest 5 Twitter followers.
This template shows your latest 5 Twitter followers in smaller size, in a blue-neon style header.
This template uses the Github image source to obtain sponsors and include them in the banner. Make sure you have set up your GH token on the credentials.php
file.
The "interactions banner" is generated based on your recent interactions and can be limited to only include mutuals (people that follows you and you follow them back).
php dynacover generate interactions
For mutuals only, include the --mutuals
flag:
php dynacover generate interactions --mutuals
Please notice that the "mutuals" version may have a limited set of results after filtering your latest interactions (~200 mentions).