Bluesky Custom Feeds represent one of the key approaches to decentralization in the AT Protocol. The idea was to create a marketplace of algorithms—an option missing from the current social media landscape. Platforms usually offer either opaque, AI-driven algorithms that users can’t control, or purely chronological feeds that reject algorithms altogether. In this context, enabling people to choose or build their own algorithms is not just exciting—it’s necessary for digital sovereignty.
This project began as an experiment: exploring what makes an algorithm useful, how to define topics for feeds, and how to build regional feeds. Later, the focus expanded into gathering data from these feeds and presenting simple analytics to better understand activity patterns and growth.
The system is structured as a modular Node.js backend running in Docker, connected to a MongoDB database. Each feed is powered by an algorithm module that retrieves and filters posts from Bluesky (via Jetstream), then stores processed metadata in MongoDB. This setup makes it possible to serve feeds efficiently while also generating analytics in real time.
Code and deployments follow a streamlined pipeline: source code lives in GitHub, automated builds and tests run via GitHub Actions, and deployments are delivered directly to a DigitalOcean App.
To better understand how feeds were performing, I built dashboards showing:
This project highlighted how decentralized protocols like AT Protocol open new ways to interact with social data—filtering, managing, and experimenting with it. Along the way, I deepened my understanding of AT Protocol, TypeScript, MongoDB, and DigitalOcean deployments.
With today’s social platforms caught between black-box AI-driven algorithms and the rejection of algorithms altogether, this project was a valuable exercise in designing transparent, user-driven filtering of large-scale social data streams.