> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.graze.social/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Testing and Fixing your Feed

While you're building your feed, there are things you can do to check it's working the way you want. Once it's published, you may find some posts creeping in that you didn't intend. Here's how to test and improve your feed.

Everything below happens in the feed editor. Open your feed and press **Edit feed** (the pencil), or use the panel buttons on the Feed Definition at the bottom of your feed's page. Along the top of the editor are **Canvas** (your rules), **Live Feed**, **Debug** and **Insert posts**.

## Seeing what's in your feed

**Live Feed** shows the posts that are in your feed right now, in the order readers get them. It's available once your feed has been saved. A new feed starts filling as soon as you first publish it, with matching posts from the last few hours.

> The **Preview** button, which used to generate a sample feed from your draft rules, is currently down for maintenance. Use **Live Feed** and **Debug** instead.

If the feed isn't showing what you expect, go over to Bluesky and find a post you think should have made it in.

## Testing specific posts with Debug

Let's say we're building a feed of pictures and videos of Harry Styles. Our rules look for his name, tour and album names in the post text, and check that the post has an image, video or gif.

Here's a post we think should be in the feed. It's a great photo of Harry:

![](https://cdn.sanity.io/images/pntpjov7/production/235d5bbec177954014accf41e84472f18b8021fd-1070x1088.png)

But it's not in our feed. Why not? Let's copy the post's URL, then:

1. Open the **Debug** panel.
2. Paste the URL into "Enter a post URL".
3. Press Enter (or the send button).

Debug checks the post against your rules exactly as they are on the canvas, even if you haven't saved yet, and gives a verdict:

- **Passed**: the post would be visible on your feed.
- **Failed**: the post would be hidden from your feed.
- **No verdict**: Debug couldn't evaluate the post against one or more nodes, so it can't say either way.

A tick next to a result means the post is already in your feed.

To see *why* a post passed or failed, open the result's **⋯** menu, choose **Apply result to canvas**, then switch back to **Canvas**. Each node is shaded green if the post passed it, and red if it failed. Use **Clear result highlights** (the eraser) to remove the shading.

In our example, the post passes the "has an image" check but fails the word list, because none of our words are in the post's text.

But we found this post by searching for "Harry Styles" on Bluesky. How did Bluesky know it was Harry in the image, when our feed didn't? If we look closely, the person who posted it used alt text (rock on!) to describe the image:

![](https://cdn.sanity.io/images/pntpjov7/production/161c3ad60bb438a3b19d4d80a1ab6c36989b9b96-1120x762.png)

So let's add another word list that checks the image alt text for the same words, and run the test again. Press **Retry all** (the circular arrow) to re-run every post in the Debug list against your updated rules.

Rats, it fails again! Applying the result to the canvas shows why: the post now passes the alt text list, but our two word lists sit inside an **All of these** logic node, which means a post needs Harry's name in the text *and* in the alt text. That's not what we wanted.

The fix is to wrap the two word lists in an **Any of these** logic node. Now a post passes if the words appear in *either* the text or the alt text. One more retry, and it's green across the board.

Once a few tests like this look right, publish your feed. Then keep an eye on it, and improve it each time something sneaks in that you don't want.

## Eliminating unwanted posts

Let's check in on our Harry Styles feed on Bluesky. Oh no! This post shouldn't be here:

![](https://cdn.sanity.io/images/pntpjov7/production/31481cc81de69ac540a8e2db9547be7d7bc5208a-988x980.png)

We have a couple of choices. We could take "fine line" out of our word list: it may be an amazing album, but it also catches drawing posts, anti-ageing posts and more. Or we can add an excluding word list that keeps album posts but leaves the others out. Debug the post again, and it fails, as it should.

After you publish the change, new posts are checked against the new rules. But this post is already in the feed. Here's what you can do about it.

### Remove individual posts

In **Live Feed** (or on a Debug result), open the post's **⋯** menu:

- **Remove from feed** hides the post from this feed. Choose **Unhide post** to bring it back.
- **Remove from all feeds** hides the post from every feed you own.

To remove several at once, open **Insert posts**, add each post's URL to the list, and press **Remove**.

### Or let it drop away

As new posts arrive, older ones get pushed down the feed and readers stop seeing them.

### Backfill, Rebuild or Clear the feed

Your feed's **Feed Settings** (the gear on its page) has three buttons that do quite different things:

- **Backfill Feed** adds matching posts from the last 6 hours. It doesn't remove anything, so it won't get rid of unwanted posts. Use it to top up a feed that looks thin.
- **Rebuild Feed** deletes every post stored for the feed, then refills it with posts from the last 24 hours that match your current rules. Use this after changing what your feed matches, so older posts that no longer fit are gone. It can't be undone.
- **Clear Feed** (under "Clear feed history") deletes every post stored for the feed and doesn't refill it. New matching posts keep arriving from that moment on, so the feed starts again from empty. This is the nuclear option, for example if sensitive content has crept in. It happens as soon as you press it, without asking you to confirm, and can't be undone.

Only one backfill or rebuild can run at a time. While one is running, the buttons read "Backfill in progress". Rebuild and Clear are only available to the feed's owner.

Keep an eye on your feed for the first couple of days, and refine it until it's perfect!

## Adding posts by hand

Sometimes a post should be in your feed but your rules didn't catch it. Open **Insert posts**, paste each post's URL and press **+** to add it to the list, then press **Add**. If your feed is sorted newest first, you can tick **Add to top** to put the posts at the top of the feed; otherwise they appear in their normal place.

You can also add a post from its **⋯** menu with **Add to feed** or **Add to top of feed**.

## Posts missing on Bluesky

One little gremlin we've noticed: your feed looks great in Graze, but when you open it on Bluesky, some posts are missing.

One thing to check is your **language settings on Bluesky**. You might have Bluesky set to show you only posts in certain content languages, like this:

![](https://cdn.sanity.io/images/pntpjov7/production/aee49a421df15bce16e6f0d2babf61657bcbaa3b-1168x762.png)

If a post isn't marked as being in one of those languages, it may not show up for you on Bluesky, even though it's in the feed.