# Feed and Activity Visibility

## Feed Visibility Levels

Feed groups have a default visibility (if it's not set when creating the group, `visible` will be set). You can also override the group's default when creating a feed. For changing a feed's visibility after creation, see [Changing Feed Visibility](https://getstream.io/activity-feeds/docs/flutter/changing-feed-visibility/).

Visibility changes are asynchronous. The change request returns optimistically while follow relationships are reconciled in the background, and counts may be temporarily stale until reconciliation completes.

```dart label="Dart"
// More options
const query = FeedQuery(
  fid: FeedId(group: 'user', id: 'jack'),
  data: FeedInputData(
    visibility: FeedVisibility.public,
  ),
);
final feed = client.feedFromQuery(query);
await feed.getOrCreate();
```

Supported visibility levels:

| Level       | Viewing feed (activities + metadata) | Following                                                                    | Posting                                                             |
| ----------- | ------------------------------------ | ---------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| `visible`   | Anyone can view                      | Anyone can follow                                                            | Only the owner or member/follower with the post permission can post |
| `public`    | Anyone can view                      | Anyone can follow                                                            | Anyone can post                                                     |
| `followers` | Only approved followers can view     | Anyone can send a follow request, <br /> follow requests have to be approved | Only the owner or member/follower with the post permission can post |
| `members`   | Only members can view                | Only members can follow                                                      | Only the owner or member/follower with the post permission can post |
| `private`   | Only the owner can view              | Only the owner can follow                                                    | Only the owner can post                                             |

## Activity Visibility Levels

- `public`: marks the activity as public - everyone who can view feed content, can see it
- `private`: marks the activity as private - only feed owner can see it
- `tag:mytag`: marks the activity as only visible to followers/members with the permission to see this tag

This visibility system is very flexible and allows you to build:

- Apps like Patreon where only certain levels of users can see your content
- Apps like Strava where it's possible to share your activity with nobody, everyone or your followers

```dart label="Dart"
// Premium users can see full activity, others a preview
final privateActivity = await feed.addActivity(
  request: const FeedAddActivityRequest(
    text: 'Premium content',
    type: 'post',
    visibility: AddActivityRequestVisibility.tag,
    visibilityTag: 'premium',
  ),
);
```

For all the details on tag visibility read the [Membership levels guide](https://getstream.io/activity-feeds/docs/flutter/membership-levels/).


---

This page was last updated at 2026-08-07T20:37:29.546Z.

For the most recent version of this documentation, visit [https://getstream.io/activity-feeds/docs/flutter/feed-and-activity-visibility/](https://getstream.io/activity-feeds/docs/flutter/feed-and-activity-visibility/).