In this post, I’ll lay out the basics of how to create a curated Bluesky feed–that is, a feed for a list of approved posters, like the Polisky feed. With a couple of deletions, this is also a guide to how to create an uncurated Bluesky feed, although given the nature of the site this is not an appropriate solution for all users.
This is not difficult, but it is just a little intimidating at first.
Step 1: Set Up a SkyFeed account
Go to Skyfeed.app to begin setting up your account. You will also need an app password from Bluesky. This is not your login password–it is a passcode unique for Skyfeed and must be separately generated on Bluesky. To get an app password, log in to Bluesky and go to Settings, then App Passwords. Generate one, copy it, go back to Skyfeed, and enter the app password. You should be logged in now.
Step 2: Set Up Your Mute List
A “mute list” in Bluesky/AT protocol parlance is a list of users. You will not be using this for its original purpose, which was to mute those users. Instead, you’ll be using it to set up a list of people who are approved to post on your feed. To avoid confusion when people find out they’re on your list, since they might be offended that you’re muting them, you should make sure you name the feed something descriptive and add a good description to the feed.
(As you’ve guessed by now, if you’re not going to be curating your feed, you don’t need to do this. If you’re setting up a professional list, though, you’re going to want to do this.)
To set up the mute list in Bluesky, go to Moderation (the raised hand) and then hit Mute Lists.
Once you’ve selected Mute Lists, hit “+ New Mute List” and enter a description:
Your list is empty, so you’ll need to populate it. To populate it, go to a user’s profile, click the … icon, and hit “Add to lists”. (You can also do that from the timeline by clicking on a user’s profile and then hitting the same … icon and “Add to Lists” button.)
After that, add the user to the list you’re trying to populate.
At this point, you should go back to your mute list and make sure you have clicked “Unsubscribe”. If you don’t, you’ll be muting all of your users!
Step 3: Set Up a Feed in Skyfeed
Go back to Skyfeed. Now, go to Feed Builder and set up a feed.
You’ll start with something that looks like this:
There’s a lot going on here, but you can think of this in terms of what you’re inputting (that is, the source of posts), what you’re filtering for, and then what you’re searching for. Since our goal here is to create a plain feed without too many bells and whistles, we’ll skip the advanced stuff, but you’ll be able to develop different ways to curate your feed.
The first step is to restrict the input to our feed. (As you’ve guessed by now, if you’re not going to be curating your feed, you don’t need to do this.) In the Input field, hit the dropdown and choose List.
Tap the “Your Lists” link. This will bring up a dropdown for you to choose a list, so choose the appropriate one.
At this point, you will probably see a bunch of errors. These don’t matter, but if they’re bugging you, just remove the expression in the “RegEx” field. But really, you can ignore them. (Also, make sure that you don’t have an input list for “Entire Network” still hanging out from when you created the new feed–just go ahead and delete that.)
A quirk of curating via mute lists is that you can’t mute yourself, so if you want your account to appear in your own feed you will want to manually add your own account. Hit the green +Add Block button and choose Input Single User. Then choose “Select yourself”. Now drag it (click and hold the = on the right-hand side) and move it just below the Input block we just set up.
Next, we’re going to filter some things. I think that a professional feed should alert people to important news and posts, not be cluttered, so I like to remove replies:
There’s some other things to remove as well. Hit the green +Add Block button and add a Remove block. Drag it (click and hold the = on the right-hand side) and move it just below the original reply block. Then click “is in Hellthread.” If you don’t know what this is, you will especially want to add this block to remove anything in Hellthread.
Finally, the hashtag or keyword replacement. I suggest keeping this simple. Here’s the Polisky list RegEx. Note that the keywords are not Case Sensitive (that would make “Polisky” different to “polisky”). The pipes (|) mean “or” in RegEx (regular expressions). To input the globe emoji or any other emoji, just copy-paste the emojji into the regex field.
If this is a feed where you want people to choose to post, make sure to choose something short and distinctive–the point of this format is to make inadvertent broadcasting unlikely. Contrariwise, if you want to pick up a broad feed (anything about Joe Biden or Taylor Swift, for instance), you might have a long string of keywords that will pick up a lot. (This might also be a good reason to have a Remove block afterward if your keywords are too intense.)
Also note that you can set your feed to pick up any information within Alt Texts or within links. You can imagine instances where that could be useful to you!
Note that the Feed builder processes linearly, so the order you enter these blocks in matters. In other words, you want to have inputs -> filters -> regex.
The final version should look something like this:
The feed is populated by the last seven days of posts from the PoliSci mute list and then by my own account. The feed then removes any replies and anything in Hellthread (I doubt many folks on the list are there, but just in case). It then runs the RegEx to find any posts that include “polisci”, “polisky”, or the globe emoji and sorts them in reverse chronological order (most recent at top).
An important note: Mute Lists are public, so you don’t have to create your own Mute List to populate your feed. In what I’m calling “subfeeds” (because there didn’t exist a term before), you could use a pre-existing Mute List, like the Polisky one, to give everyone already approve-listed into one feed the ability to post to your feed (and then you could add your own list as a separate input block). Just find the Mute List ID (Polisky’s is at://did:plc:kyttpb6um57f4c2wep25lqhq/app.bsky.graph.list/3k2djx2vgyn2x ) and enter that as the List URI. This should cut down on moderation burdens significantly if you’re running a list that’s principally or mostly drawing from an existing community.
Step 4: Publicize!
Now it’s time to let people know your feed exists! Share the link to the feed and describe what you’re doing. Make sure there’s good content brewing (it helps to have a pre-existing community that just needs a focal point) and keep sharing if things slack off for the first phase of its development.
Questions? Feedback? Comments? Use the comments form below like it’s 2007 and I will respond and even update this!