Short answer: a list is a set of accounts you read as their own feed, a starter pack is a set of accounts you follow all at once, and a custom feed is an algorithm that can pull posts from anyone. Lists and starter packs are about who; custom feeds are about what.
They overlap enough to be confusing. All three can be shared as a link, all three can show up in your feeds, and a starter pack is literally built on top of a list. Here's how they differ and when to reach for each one.
Side-by-Side Comparison
| Curation list | Moderation list | Starter pack | Custom feed | |
|---|---|---|---|---|
| What it is | A set of accounts | A set of accounts | Up to 150 accounts plus up to 3 feeds | An algorithm on a feed generator service |
| Main job | Read those accounts as a feed | Mute or block everyone on it | Follow everyone in one tap | Show posts matching a rule |
| Posts from | Only list members | – (filters, doesn't show) | – (adds follows instead) | Anyone on the network |
| Ordering | Chronological | – | – | Whatever the algorithm decides |
| Changes your follows? | No | No | Yes, if you follow all | No |
| Can be pinned as a tab? | Yes | No | Its feeds can be | Yes |
| Public? | Yes | Yes | Yes | Yes (the feed record is) |
| Who can make one? | Anyone, in the app | Anyone, in the app | Anyone, in the app | Anyone, but it needs a running service |
Lists: A Feed of Specific People
A curation list is a named set of accounts. Open it and you get a chronological feed of posts from just those accounts. You can pin it as a tab next to Following, and other people can pin it too. Nobody on the list has to be someone you follow, which is the point: a list lets you read a topic without stuffing your main timeline with it.
A moderation list uses the same structure for the opposite purpose. Subscribers choose to mute or block everyone on it, and anyone the owner adds later gets muted or blocked automatically.
On the protocol, both are an app.bsky.graph.list record with a purpose field, plus one app.bsky.graph.listitem record per member, all public in the owner's repo. Our lists tutorial covers creating them.
Use a list when you want to keep up with a defined group of people, completely and in order, without following them.
Starter Packs: Follow a Group in One Tap
A starter pack is a shareable bundle of up to 150 accounts and up to 3 custom feeds. Someone opens the link and can follow everyone in it at once, and save the included feeds. Starter packs were designed for onboarding, so a new user can sign up through one and arrive with a populated timeline. Existing users can use them the same way.
Under the hood, a starter pack is an app.bsky.graph.starterpack record that points at a list holding its members, plus references to the feeds. So it is a list in storage terms. What changes is the behavior: the pack exists to create follows, not to be read as a feed.
That's the key difference from a list. Following a starter pack is a one-time action. The accounts land in your Following feed, mixed in with everyone else. If the creator later adds people to the pack, you don't automatically follow them. A list you've pinned, by contrast, picks up new members as soon as the owner adds them.
Use a starter pack when you want to help people (or yourself) follow a community, and you want those accounts in the main timeline. We've collected good ones for NFL writers and comedy, and our guide on how to make a starter pack walks through building one.
Custom Feeds: An Algorithm, Not a Group
A custom feed is a ranked or filtered set of posts produced by a feed generator: an external service that watches the network and decides what belongs in the feed. The feed is published as an app.bsky.feed.generator record, and when you open it, the AppView asks that service which posts to show.
Because it is code, a custom feed can do things a list can't:
- Pull posts from anyone, not just a fixed set of accounts
- Match keywords, hashtags, languages or links
- Rank by likes or engagement instead of time
- Personalize per viewer
The trade-off is that you're trusting someone else's code and server. If the service goes down or the builder stops maintaining it, the feed breaks. And you can't easily see why a post is or isn't included. Our custom feeds guide covers finding and building them.
Use a custom feed when the topic is defined by what people post rather than who posts it.
Which One Should You Use?
| You want to... | Use |
|---|---|
| Read 40 journalists on one beat without following them | Curation list |
| Help newcomers find your community | Starter pack |
| Follow everyone in a community in one go | Starter pack |
| See every post with a certain hashtag or keyword | Custom feed |
| See the most-liked posts on a topic | Custom feed |
| Filter out a known group of spam accounts | Moderation list |
| Keep a live event's accounts in a separate tab | Curation list, pinned |
They also combine well. A common pattern: build a curation list of the people in a community, make a starter pack from the same people for newcomers, and include a topic custom feed in the pack.
Common Mix-Ups
- "I followed a starter pack but don't have a feed for it." Right. A starter pack adds follows; it doesn't create a tab. If you want a separate feed, look for a list with the same people, or make one.
- "My list feed doesn't look like my Following feed." It isn't meant to. A list feed is built from what its members post themselves, so don't expect it to handle reposts and replies exactly the way Following does.
- "I subscribed to a list and now I can't see people." That was a moderation list, not a curation list. Unsubscribe to undo it.
- "Is a custom feed private?" No. The feed record is public, and so are the posts it shows. Only your choice to pin it lives in your private preferences.
Frequently Asked Questions
What is the difference between a Bluesky list and a starter pack?
A curation list is a set of accounts you read as its own chronological feed without following anyone. A starter pack is a shareable bundle of up to 150 accounts and up to 3 feeds that people follow in one tap, adding those accounts to their Following feed.
Is a Bluesky starter pack a list?
Partly. Under the hood a starter pack is an app.bsky.graph.starterpack record that points at a list holding its members. In the app it behaves differently: it is built for following, not for reading as a feed.
What is the difference between a custom feed and a list on Bluesky?
A list feed shows posts only from the accounts on the list, newest first. A custom feed is an algorithm run by a feed generator service and can pull posts from anyone on the network based on keywords, likes, topics or any other rule its builder chooses.
Can a starter pack include custom feeds?
Yes. A starter pack can include up to 3 custom feeds alongside its accounts, so people who use it get the accounts and the feeds together.
Which is best for following a topic on Bluesky?
Use a list if you want a separate, complete timeline of specific accounts. Use a custom feed if the topic is defined by what people post rather than who posts it. Use a starter pack if you want those accounts in your main Following feed.
Lists, Packs and Feeds in Skyscraper
- Pinned feeds, custom feeds, lists and saved searches all live together in the feed selector
- Browse, create and read lists, and see at a glance whether each list is pinned (new in 1.7.1)
- Open starter packs, see who's in them, and follow people one by one or all at once