DEV Community

Yasunori MAHATA
Yasunori MAHATA

Posted on

A Tool to convert Bluesky posts to Pixela graph

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 📊 :

Pixela bsky-post-graph

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.

Interactions with Bluesky and Pixela

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 }}
Enter fullscreen mode Exit fullscreen mode

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)