A Go-based feed generator service for Bluesky social platform that includes components for streaming and processing posts, generating feeds, and exposing them via an API.
This project is a custom feed generator for Bluesky (ATProto), implementing the "AzPulse" feed. The application consists of several components working together:
- API: Serves feed data to Bluesky clients
- Consumer: Streams and processes posts from the Bluesky firehose
- FeedGen: Processes posts and generates the feed content
- Manager: CLI tool for managing feed generator records on Bluesky
The system follows a microservices architecture with the following components:
- MongoDB for data storage
- Multiple services communicating through the database
- Each service deployed as a separate container
- API:
git.aykhans.me/bsky/feedgen-api:latest
- Consumer:
git.aykhans.me/bsky/feedgen-consumer:latest
- FeedGen Az:
git.aykhans.me/bsky/feedgen-generator-az:latest
- Manager:
git.aykhans.me/bsky/feedgen-manager:latest
- Docker and Docker Compose
- Go 1.24+
docker compose up
This will start all necessary services:
- MongoDB database
- Consumer service (streams posts from Bluesky)
- FeedGen service (generates the AZ feed)
- API service (serves feed data to clients)
For local development without Docker you can checkout the Taskfile and Makefile for development tasks.
All services are configured via environment variables. See the docker-compose.yml file for examples and default values.
This project is licensed under the AGPL-3.0 License, please see the LICENSE file for details.