Friendly Feed: Plain Language to Custom Bluesky Feeds
March 21, 2026
Someone posted on Bluesky asking if anyone could build a dead-simple custom feed builder. I replied that I could and gave myself a few days. That's how Friendly Feed started.
The idea: plain language in, custom Bluesky feed out, with a human-in-the-loop quality signal that improves the feed over time. You describe what you want — "posts about urban farming and food sovereignty from accounts I don't already follow" — and the system generates a feed config, subscribes to the firehose, filters for matching content, and serves it via Bluesky's custom feed API. Thumbs up/down on individual posts becomes training signal.
The stack: Tap (Go, WebSocket firehose consumer) → filter engine (TypeScript) → Cloudflare D1 → Cloudflare Worker serving getFeedSkeleton. Marginal cost per million feed views served: about thirty cents via CF Workers. That's a favorable unit economics story.
Then Attie launched. Attie is built by Bluesky's own exploration team, powered by Claude, same basic creation UX. The critical question is whether their refinement loop is persistent and compounding — does a thumbs-down teach the system, or does it just re-prompt? If it's the latter, the product is different. If it's the former, the moat question gets harder.
Friendly Feed is on hold pending that answer. The positioning I'm sitting on: Attie curates within your existing graph. Friendly Feed finds things beyond it. Those are genuinely different jobs. Whether that's enough differentiation depends on what Attie ships when they open the beta.