music-atmosphere-feed#
a bluesky feed that surfaces posts with music links. written in zig.
supported platforms#
- soundcloud.com
- bandcamp.com
- plyr.fm
how it works#
connects to the bluesky jetstream firehose, filters posts containing music platform links in their facets (actual hyperlinks, not just text mentions), and serves them via the AT Protocol feed generator endpoints.
customizing the filter#
edit src/filter.zig to change which posts appear in your feed:
/// Returns true if the post record should be included in the feed.
pub fn matches(record: json.ObjectMap) bool {
return hasMusicLink(record); // replace with your own logic
}
running locally#
# set environment variables
export HANDLE=your.handle
export PASSWORD=your-app-password
export FEED_HOSTNAME=your-hostname.fly.dev
export PUBLISHER_DID=did:plc:your-did
# build and run
zig build run
deploying to fly.io#
# create app and volume
fly launch --no-deploy
fly volumes create feed_data --region ord --size 1
# set secrets
fly secrets set JETSTREAM_HOST=jetstream.fire.hose.cam
fly secrets set PUBLISHER_DID=did:plc:your-did
fly secrets set FEED_HOSTNAME=your-app.fly.dev
# deploy
fly deploy
publishing the feed#
HANDLE=your.handle PASSWORD=your-app-password FEED_HOSTNAME=your-app.fly.dev \
FEED_DESCRIPTION="posts with music links" \
uv run scripts/publish.py
license#
MIT