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. Feeds can now change their visibility after creation using the change visibility endpoint.

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.

const feed = client.feed("user", "jack");
await feed.getOrCreate({
  data: {
    visibility: "public",
  },
});

Supported visibility levels:

LevelViewing feed (activities + metadata)FollowingPosting
visibleAnyone can viewAnyone can followOnly the owner or member/follower with the post permission can post
publicAnyone can viewAnyone can followAnyone can post
followersOnly approved followers can viewAnyone can send a follow request, follow requests have to be approvedOnly the owner or member/follower with the post permission can post
membersOnly members can viewOnly members can followOnly the owner or member/follower with the post permission can post
privateOnly the owner can viewOnly the owner can followOnly 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
feed.addActivity({
  type: "post",
  text: "Premium content",
  visibility: "tag",
  visibility_tag: "premium",
});
// Premium users can see full activity, others a preview

For all the details on tag visibility read the Membership levels guide.