Automated posts to Bluesky
I was interested in re-engaging with my prior Twitter habit without falling down a rabbit hole every time I went to post something. Since I’m trying to blog more, I figured I could send summaries of my posts to Bluesky.
Bluesky has an easy-to-use API with good documentation. It doesn’t even require registering an OAuth app – you just login with your username and password - which reminds me of how simple it was to make Twitter bots back in the day.
Building upon the CMS I built for this blog, I added a script to post my most-recent entry to Bluesky. The script keeps track of which posts are already on Bluesky by adding a “bsky_uri” parameter to the post’s front matter. I used Python’s schedule library to run it every hour.
Links in this post:
- "I’m trying to blog more": https://brian.abelson.live/log/2025/01/02/daily-link-blog.html
- "Bluesky": https://bsky.app/profile/abelsonlive.bsky.social
- "easy-to-use API": https://docs.bsky.app/
- "good documentation": https://atp.readthedocs.io/en/latest/atproto_client/auth.html
- "CMS": https://brian.abelson.live/log/2023/11/26/this-site-now-has-a-cms.html
- "script": https://gitlab.com/abelsonlive/brian.abelson.live/-/blob/main/cms/cms/bsky.py
- "front matter": https://jekyllrb.com/docs/front-matter/
- "schedule": https://schedule.readthedocs.io/en/stable/index.html
- "run it every hour": https://gitlab.com/abelsonlive/brian.abelson.live/-/blob/main/cms/cms/cron.py