jessesquires/mariposa
*A command-line tool to (partially) automate posting [JSON feeds](https://www.jsonfeed.org) to [Bluesky](https://bsky.app) and [Mastodon](https://mastodon.social)*
About
The goal of this tool is to replace services like IFTTT or Zapier to automatically post to Bluesky and Mastodon whenever I publish a new blog post.
This is a tool I wrote for my own purposes. It is partially automated because you need to run it manually, although you could probably automate it fully if desired. However, I do not need that for my current usage. Feel free to adapt and use as desired. I've made it modular, but features are very limited to only what I currently need.
[!NOTE]
This project contains limited features and functionality very specific to my needs and use case. While I am open to reviewing pull requests that add additional features, please note that it is an explicit non-goal to write fully fledged clients for Bluesky and Mastodon.
How It Works
Prerequisite: presumably, you have a JSON feed for your blog. I use Jekyll for my blog, which easily accommodates generating a JSON feed.
The tool reads a JSON feed locally from disk, and then posts the latest entry to Bluesky (API) and Mastodon (API). The text of the post includes only the blog post title and url.
Usage
1. Create a config.yml with your credentials
bluesky:
email: "your@email.com"
password: "your-app-password"
mastodon:
instanceName: "mastodon.social"
accessToken: "your-access-token"[!IMPORTANT]
For Bluesky: create an app password. Do not use your login password.
For Mastodon: create an application with the
write:statusesscope.
2. Run
swift run mariposa --config path/to/your/config.yml --feed path/to/your/feed.jsonContributing
Interested in making contributions to this project? Please review the guides below.
Also consider sponsoring this project or buying my apps! ✌️
Credits
Created and maintained by Jesse Squires.
Many thanks to Manton Reece for writing this blog post, which helped me get started quickly with the Bluesky API.
License
Released under the MIT License. See LICENSE for details.
Copyright © 2025-present Jesse Squires.
Package Metadata
Repository: jessesquires/mariposa
Default branch: main
README: README.md