Remix-Arkive is a Node script that will randomly select an item from an array of objects to post as a Bluesky status update at a set interval.
In my use case, I'm importing YouTube links and their corresponding data as objects from an array (data.js) and using their values to construct each post. The post text is formatted as:
Artist / Title / Remix Name / Original Release Year
Remix-Arkive uses the @atproto/api and dotenv packages and will require a Bluesky account with an App Password.
Create a .env file in your local directory (see .env.example) with:
- BSKY_HANDLE=remixarkive.bsky.social
- BSKY_APP_PASSWORD=your-app-password
- (optional) BSKY_SERVICE=https://bsky.social
Optional (recommended for testing):
- DRY_RUN=true (logs what would be posted, does not post)
- RUN_ONCE=true (exits after the initial attempt)
Optional scheduling overrides (minutes):
- POST_INTERVAL_MINUTES=120
- HEARTBEAT_INTERVAL_MINUTES=40
If you're running this on Heroku, add the same values as Config Vars. The included Procfile runs the bot as a worker dyno.
Marcus McBride, 2026.