← Back to Blog

Ship A Bluesky Custom Feed On A Cloudflare Worker

Ship A Bluesky Custom Feed On A Cloudflare Worker

Bluesky's custom feeds are the real superpower the platform gives creators. Unlike Twitter's algorithmic timeline, you can publish your own feed. Composed by your own rules. And any user who likes it pins it into their sidebar. If your feed is useful, it becomes an inbound channel.

Writing the feed generator from scratch used to be a week of work: firehose subscriber, AT Protocol XRPC server, KV layer, feed-record registration. The Bluesky Feed Builder shrinks that to a form. Fill the keyword rules, click generate, deploy the Cloudflare Worker.

What the form asks for

The feed itself. Name, handle, description, your DID, language, rate limit. Then the rules. Keyword include list (any one matches), require-all list (all must match), exclude list (any kills), handle allow-list (always include these), handle deny-list (always exclude these). Standard firehose filter semantics.

What it emits

Three files. First, a feed-config.json that describes the filter logic in a portable format. Useful if you want to migrate to a different runtime later. Second, a Cloudflare Worker worker.js that implements the two XRPC endpoints Bluesky actually calls (describeFeedGenerator and getFeedSkeleton) plus the /.well-known/did.json for your feed identity. Third, the did.json payload itself, in case you're hosting identity separately.

The one piece the tool doesn't generate

The firehose subscriber. Bluesky publishes a real-time websocket of every post on the network (wss://bsky.network), and you need a subscriber to read it, apply your keyword rules, and write matches into KV so the Worker can serve them. The generated fix prompt walks you through that piece. It's about 80 lines of Node.js using @atproto/api and the skyware package. Run it on a Durable Object, a Node.js server, or a long-running GitHub Action; whichever fits your stack.

Why this is a Network tool, not a social tool

If you're running a network of sites, a custom feed built around your niche is an owned-distribution channel that doesn't depend on any algorithm. That's the same logic behind Chapter 23 of The $100 Network, Edge SEO. Cloudflare Workers as Your Secret Weapon. The Worker is the deployment target for almost everything in the book. And Chapter 50. Social Distribution and Content Repurposing. Makes the case that custom feeds are algorithm-proof in a way LinkedIn and X aren't.

Pair this with the Syndication Planner to cross-post your long-form articles into your own feed, and the Newsletter Swap Matchmaker to co-promote with another feed's curator.

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility StatementPrivacy Policy

Last updated: April 2026