I created a tool that converts my daily Bluesky posts into a Pixela graph. The source code is available on GitHub.
For my account, it looks like this 📊 :
I’m aware that I tend to post on Bluesky only when I have free time. This tool helps visualize that pattern.
Implementation
The tool works by calling the Bluesky API, aggregating the number of posts per day, and then sending the data to Pixela via POST requests.
I won't go into details here because you can check the source code. It's small enough to take a look at. One thing I'd like to point out is that both the Bluesky and Pixela APIs are straightforward and easy to work with.
Appendix
The repository includes a GitHub Actions workflow that runs the script periodically:
name: Post to Pixela on a daily basis
on:
schedule:
- cron: '0 0 * * *' # Every day at 00:00 UTC
workflow_dispatch:
jobs:
slack:
runs-on: ubuntu-24.04
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
cache: 'pip'
- name: Install Dependencies
run: pip install -r requirements.txt
- name: Run the script
run: python main.py
env:
BSKY_APP_PASSWORD: ${{ vars.BSKY_APP_PASSWORD }}
BSKY_USERNAME: ${{ vars.BSKY_USERNAME }}
PIXELA_GRAPH_ID: ${{ vars.PIXELA_GRAPH_ID }}
PIXELA_USERNAME: ${{ vars.PIXELA_USERNAME }}
PIXELA_USER_TOKEN: ${{ vars.PIXELA_USER_TOKEN }}
If you’re interested, you can clone the code, set up your Bluesky and Pixela environment variables, and have your graph updated automatically on a regular basis!
Top comments (0)