Bluesky Feed Generator
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.
Overview
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
Architecture
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
Pre-Built docker images
- 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
Getting Started
Prerequisites
- Docker and Docker Compose
- Go 1.24+
Running with Docker Compose
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)
Development
For local development without Docker you can checkout the Taskfile and Makefile for development tasks.
Configuration
All services are configured via environment variables. See the docker-compose.yml file for examples and default values.
License
This project is licensed under the AGPL-3.0 License, please see the LICENSE file for details.