bluesky-social/social-app
May 5, 2026
Document Date: May 2026
Generated by Inkwell Forge — automated codebase documentation analysis. Subject matter expert review is recommended before distribution.
Application Name: Social App (Bluesky) Document Title: End-User Manual Date: May 2026
Generated by Inkwell Forge — automated codebase documentation analysis. Subject matter expert review is recommended before distribution.
This End-User Manual covers 131 screen(s) of the Social App (Bluesky) application.
Screens covered in this document:
Inbox, Shell (Search), Feed, Images (Onboarding Step Finished), Choose Account Form, Status Bar Shadow, Shell (Profile Header), Handle Suggestions, Miscellaneous Notification Settings, Account Settings, Messages Settings, Utils (Search), Mention Notification Settings, Settings, Deactivated, Log, Hashtag, No Saved Feeds Of Any Type, No Following Feed, No Feeds Pinned, Find Contacts Flow, List Hidden, Shared Preferences Tester, Form Container, Set New Password Form, State (Onboarding), Login Form, Chat List, Emoji Picker, Value Proposition Pager Shared, GIF View, Password Updated Form, Verification Settings, Forgot Password Form, Value Proposition Pager, Expo Scroll Forwarder, Find Contacts Intro (Web), Find Contacts (Web), Activity List, Layout (Onboarding), Conversation, Avatar Creator Items, Edit Profile Dialog, Growable Banner, Starter Pack Card (Onboarding), Feed Section (Profile List), Types (Onboarding Step Profile), Post Thread Constants, Value Proposition Pager (Web), Interest Button, Metrics (Profile Header), Handle (Profile Header), Growable Avatar, Avatar Circle (Onboarding), Util (Onboarding), Post Liked By, Status Bar Shadow (Web), Profile Labeler Liked By, Explore Trending Videos, Explore Trending Topics, Suggested Follows (Profile Header), Profile Followers, Profile Follows, Known Followers, Profile Search, Explore Recommendations, Feed (Profile Sections), Explore Suggested Accounts, Labels (Profile Sections), Search Results, Saved Feeds, Types (Profile Sections), Explore Interests Card, Explore, App Passwords, Activity Privacy Settings, External Media Preferences, App Icon Settings (Web), App Icon Settings List Item (Web), App Icon Image, App Icon Settings List Item, Types (App Icon Settings), Automation Label Settings, Accessibility Settings, Appearance Settings, About Settings, Interests Settings, Content And Media Settings, Find Contacts Settings, Following Feed Preferences, Legacy Notification Settings, Reposts On Reposts Notification Settings, New Follower Notification Settings, Reply Notification Settings, Quote Notification Settings, Privacy And Security Settings, Like Notification Settings, Thread Preferences, Likes On Reposts Notification Settings, Repost Notification Settings, Splash, Starter Pack, Gesture Action, Signup Queued, Draggable Scroll, Takendown, Video Feed (Web), Error Screen, Back Next Buttons, Step Details (Starter Pack Wizard), Captcha Web, Types (Video Feed), State (Signup), State (Starter Pack Wizard), Starter Pack Landing, Topic, Step Profiles (Starter Pack Wizard), Step Feeds (Starter Pack Wizard), Policies, Captcha Web View (Web), Placeholder Canvas, Display Name (Profile Header), Post Quotes, Avatar Creator Circle, Activity Notification Settings, Profile Header Standard, Post Reposted By, Language Settings, Error State (Profile), About Section (Profile List), Profile Header Labeler
Screens and features not included in the assessed documentation are outside the scope of this document.
Bluesky is a decentralized social networking application built on the AT Protocol — an open standard that allows users to own their identity and data. Like other social platforms, Bluesky lets you post short messages, follow other users, like and repost content, and have direct message conversations. What makes it different is that your account identity is portable and not tied to a single company's servers.
You can use Bluesky to:
Bluesky is designed for anyone who wants to participate in public conversation online. Whether you are a new user just getting started or an experienced user managing multiple accounts, this manual covers the features you will encounter day to day.
If you are new to Bluesky, tap Create account on the welcome screen. You will be guided through a multi-step process to enter your email address, choose a password, select a username (called a handle), and complete a verification step. See Chapter 9: Onboarding for detailed instructions.
If you already have an account, tap Sign in on the welcome screen. Enter your username or email address and your password. If your account uses two-factor authentication (2FA), you will also be asked for a code sent to your email.
To sign out, go to Settings (accessible from your profile or the navigation menu) and scroll to the bottom of the settings list. Tap Sign out. You will be asked to confirm. Note that signing out will end all active sessions for all accounts on this device.
Your session remains active until you explicitly sign out. If your session expires due to inactivity or a server-side change, you will be returned to the sign-in screen automatically.
The application is organized around a bottom navigation bar (on mobile) or a sidebar (on desktop/tablet) with tabs for your home feed, search/explore, notifications, and messages. Tapping any tab takes you to that section. Tapping the active tab again scrolls the current screen back to the top and refreshes the content.
This chapter describes UI patterns and controls that appear on multiple screens throughout the application. Rather than repeating these explanations in every chapter, you can refer back here whenever you encounter one of these elements.
What it is: Many screens display a scrollable list of items — posts, conversations, profiles, or feeds. These lists behave consistently across the application.
Scrolling: Swipe up to scroll down through the list. On desktop, use your mouse wheel or trackpad.
Loading more items: When you reach the bottom of a list, the application automatically loads the next batch of items (called "infinite scroll"). A small loading indicator appears at the bottom while new items are being fetched.
Load new content button: When new items have arrived since you last loaded the screen, a floating button appears (usually near the top or bottom of the screen) labeled Load new posts or similar. Tap it to jump to the top and see the latest content.
Empty state: When a list has no items to show, you will see an icon and a short message explaining why the list is empty, along with any available actions (such as a button to add content).
Error state: If the list fails to load, you will see an error message and a Retry button. Tap Retry to try loading again.
What it is: The search bar appears at the top of the Search screen and in some other contexts (such as the Starter Pack wizard). It lets you type a query to find posts, people, or feeds.
Typing a query: Tap the search bar and type your search terms. Results update as you type.
Clearing the search: Tap the × (clear) button inside the search bar to erase your query and return to the default view.
Canceling search: On mobile, a Cancel button appears next to the search bar while it is active. Tap it to dismiss the keyboard and return to the previous view.
Advanced search filters: You can add filters directly in the search bar using the format filter:value. For example, from:alice.bsky.social limits results to posts by that user, and lang:en limits results to English-language posts.
Language filter: On the Search screen, a language dropdown appears in or near the header when filters are available. Use it to restrict results to a specific language.
What it is: Throughout the Notification Settings screens, you will encounter toggle controls for enabling or disabling specific types of notifications. These controls work the same way on every notification settings screen.
Push notifications toggle: A switch or checkbox labeled Push notifications. When turned on, you receive device-level notifications (banner alerts, lock screen alerts) for that event type.
In-app notifications toggle: A switch or checkbox labeled In-app notifications. When turned on, that event type appears in your in-app notification list.
From filter: Some notification types include a radio button group labeled From, with options Everyone and People I follow. This controls whose actions trigger notifications. The filter is automatically disabled (grayed out) if you have turned off all notification channels for that type.
Changes save immediately: There is no Save button on notification settings screens. Every toggle change is saved to your account the moment you make it.
What it is: The Settings section of the application uses a consistent list layout. Each row in a settings list is either a navigation link (tapping it takes you to a sub-screen) or an inline control (a toggle or button that acts immediately).
Navigation rows: These rows show a label, an optional icon on the left, and a right-pointing chevron (›) on the right. Tap the row to go to the corresponding settings screen.
Toggle rows: These rows show a label and a switch or checkbox on the right. Tap the switch to toggle the setting on or off immediately.
Dividers: Horizontal lines separate logical groups of settings within a screen.
Back navigation: Every settings sub-screen has a Back button in the top-left corner of the header. Tap it to return to the previous screen.
What it is: On any scrollable list screen, you can refresh the content by pulling down from the top of the list.
How to use it: Scroll to the very top of the list, then continue pulling downward. A loading spinner appears. Release your finger and the screen will reload its content from the server.
When to use it: Use pull-to-refresh when you want to check for new posts, messages, or notifications without waiting for the automatic refresh cycle.
What it is: On native (iOS and Android) devices, many list items — particularly conversation rows in the Messages section — support swipe gestures to reveal quick actions.
Swipe left (first threshold): Swipe a conversation row partway to the left to reveal a Mark as read action (shown in blue). Release to trigger it.
Swipe left (second threshold): Swipe further left to reveal a Delete or Leave action (shown in red). Release to trigger it.
Visual feedback: As you swipe, the background color changes and an icon appears to indicate which action will be triggered when you release.
Haptic feedback: On supported devices, you will feel a brief vibration when you cross each action threshold, confirming that releasing your finger will trigger that action.
What it is: Some actions — particularly destructive ones like deleting content or blocking a user — require you to confirm your intent in a dialog box before the action is carried out.
Confirmation dialogs: A dialog appears with a title, a description of what will happen, and two buttons: a colored action button (e.g., Delete, Block) and a Cancel button. Tap the action button to proceed or Cancel to go back.
Discard changes prompts: If you have made changes in a form (such as the Edit Profile dialog) and try to close it without saving, a prompt asks whether you want to discard your changes. Tap Discard to close without saving, or Cancel to return to the form.
What it is: Throughout the application, user profiles are displayed as compact cards showing the user's avatar, display name, handle, and a brief bio excerpt. Profile cards appear in search results, suggested accounts, follower lists, and more.
Tapping a profile card: Tapping anywhere on a profile card navigates to that user's full profile page.
Follow button: Many profile cards include a Follow or Following button on the right side. Tap it to follow or unfollow that user directly from the card without navigating to their profile.
Avatar: The circular (or rectangular, for moderation service accounts) image on the left side of the card. Tapping the avatar may open a larger view of the image.
What it is: When a screen cannot load its content, or when there is simply nothing to show, the application displays a consistent placeholder.
Error state: Shows an icon, a brief message explaining the problem (e.g., "Something went wrong"), and a Retry button. Tap Retry to attempt loading again.
Empty state: Shows an icon and a message explaining why the list is empty (e.g., "No posts yet" or "Inbox zero!"). Sometimes an action button is included to help you get started.
Loading state: Shows a skeleton placeholder or a spinning indicator while content is being fetched from the server.
What it is: Many screens and list items include a three-dot (⋯) button that opens a menu of additional actions. The options in this menu vary depending on the context.
Opening the menu: Tap the three-dot button. A menu slides up from the bottom (on mobile) or appears as a dropdown (on desktop).
Common options: Depending on the context, the menu may include options such as Share, Report, Mute, Block, Copy link, Delete, and Edit.
Closing the menu: Tap anywhere outside the menu, or tap the three-dot button again, to dismiss it without taking any action.
The Chat List is your main messaging hub. It shows all your accepted direct message conversations in one place, along with a preview banner for any pending chat requests you have not yet reviewed.
Tap the Messages tab in the bottom navigation bar (or sidebar on desktop).
[Screenshot: Chat List screen showing conversation list with header and inbox preview banner]
Header bar: At the top of the screen you will see the title Chats. On the right side is a gear icon that links to Messages Settings. On desktop, a New chat button also appears in the header.
Inbox preview banner: If you have pending chat requests (messages from people you have not yet accepted), a banner appears at the top of the list. It shows an envelope icon, a small blue dot if there are unread requests, and small circular avatars of the people who sent requests. Tap the banner to go to the Inbox (Chat Requests) screen.
Conversation list: Below the banner, each accepted conversation appears as a row containing:
Empty state: If you have no conversations yet, you will see a message icon and the text "You have no conversations yet. Start one!"
Loading state: A skeleton placeholder appears while conversations are being fetched.
Error state: If conversations fail to load, an error message appears with a Retry button.
Viewing Conversations
Starting a New Conversation
Managing Conversations (Native)
Managing Conversations (Web)
Refreshing
Going to Chat Requests
Accessing Settings
This screen has no user input fields. All interactions are tap-based.
Why can't I start a new chat? You need a verified email address to initiate new conversations. Go to Account Settings and verify your email.
What is the difference between the main list and the Inbox? The main list shows conversations you have accepted. The Inbox shows chat requests — messages from people you have not yet responded to.
Can I mute a conversation without leaving it? Yes. Long-press the conversation row (native) or hover and use the menu (web) to find the Mute option.
What happens if I delete a conversation? Deleting a conversation removes it from your list. The other person's copy is not affected.
Why does a conversation show "Conversation deleted"? This means the other person's account has been deleted or deactivated.
| Problem | Cause | What to Do |
|---|---|---|
| Conversations won't load | Network issue or server error | Pull to refresh, or tap Retry |
| New chat button is disabled | Email not verified | Verify your email in Account Settings |
| A conversation is missing | You may have left it | Check if you accidentally swiped to delete |
| Messages are not updating | App may be in the background | Bring the app to the foreground; it polls every 10 seconds when active |
The Inbox shows chat requests — direct messages sent to you by people you have not yet accepted. You can review each request and choose to accept it, reject it, block the sender, or report the conversation.
Tap the inbox preview banner at the top of the Chat List, or navigate directly from the Messages section.
[Screenshot: Inbox screen showing pending chat requests]
Header: The title Chat requests appears at the top. On tablet, a Mark all as read button may appear in the header when you have unread requests.
Request list: Each pending request appears as a conversation row (see Chat List for row details) with two additional elements:
Accept button: Tap to accept the chat request. If your email is not verified, you will be prompted to verify it first.
Reject button/menu: Tap to open a menu with three options:
Deleted account requests: If the sender's account has been deleted, only a Delete chat button appears (no Accept option).
Floating "Mark all as read" button: On mobile, when you have unread requests, a floating button appears at the bottom of the screen to mark all requests as read at once.
Empty state: If you have no pending requests, you will see a message icon and "Inbox zero!" with a Back to Chats button.
Error state: An error icon, "Whoops!" heading, and a Retry button appear if requests fail to load.
Reviewing Requests
Accepting a Request
Rejecting a Request
Marking All as Read
Navigating Back
This screen has no user input fields.
What happens when I accept a request? The conversation moves to your main Chat List and you can exchange messages freely.
Can the sender tell if I rejected their request? No. Rejecting or deleting a request does not send any notification to the sender.
Why is the Accept button not working? Your email address may not be verified. A verification prompt will appear — follow the steps to verify your email, then try again.
What does "Deleted Account" mean in the request list? The person who sent the request has since deleted or deactivated their account. You can only delete the conversation, not accept it.
Can I undo a block? Yes. You can unblock accounts from your account settings or from the blocked user's profile.
| Problem | Cause | What to Do |
|---|---|---|
| Accept button shows a verification prompt | Email not verified | Follow the verification steps shown |
| Request list won't load | Network issue | Tap Retry |
| Can't find a request I saw earlier | You may have already acted on it | Check your main Chat List |
The Conversation screen shows the full message history between you and one other person, and lets you send new messages.
Tap any conversation row in the Chat List, or tap Accept on a chat request in the Inbox.
[Screenshot: Conversation screen showing message thread and input area]
Header: Shows the other person's avatar, display name, and handle. A back button returns you to the Chat List.
Message list: The full conversation history, with the most recent messages at the bottom. Your messages appear on one side; the other person's messages appear on the other.
Message input area: At the bottom of the screen, a text field lets you type a new message. A send button submits it.
Blocked/restricted footer: If the conversation is restricted (for example, a chat request you just accepted), a banner may appear at the bottom explaining the restriction and offering options to accept or decline.
Loading overlay: A spinner appears while the conversation history is loading. The screen waits until messages have scrolled to the bottom before revealing the content, to avoid a jarring flash.
Error state: If the conversation fails to load, an error message appears with a Try again button.
Reading Messages
Sending a Message
Navigating Back
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Message text | The message you want to send | Yes | Any text | "Hey, are you free this weekend?" |
Why can't I send a message? Your email may not be verified. A prompt will appear — follow the steps to verify, then return to the conversation.
What happens if I navigate away mid-conversation? Your draft is not saved. The conversation history is preserved on the server.
| Problem | Cause | What to Do |
|---|---|---|
| Conversation won't load | Network issue or server error | Tap Try again |
| Can't send messages | Email not verified | Complete email verification when prompted |
The Messages Settings screen lets you control who can send you new direct messages and (on mobile devices) whether chat notifications play a sound.
From the Chat List, tap the gear icon in the header.
Header: Title reads Chat Settings.
Allow new messages from: A radio button group with three options:
Notification Sounds (mobile only): A radio button group with two options:
Informational tip: A note explains that changing this setting does not affect conversations you are already in — only new conversation requests are affected.
Changing Who Can Message You
Toggling Notification Sounds (mobile only)
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Allow new messages from | Controls who can start new conversations with you | Yes | Everyone / Users I follow / No one | Users I follow |
| Notification Sounds (mobile) | Whether a sound plays for new chat notifications | Yes (mobile only) | Enabled / Disabled | Enabled |
Will changing this setting close my existing conversations? No. Existing conversations are not affected. Only new conversation requests are controlled by this setting.
Why don't I see the Notification Sounds option? This option is only available on the native mobile app (iOS and Android), not on the web version.
| Problem | Cause | What to Do |
|---|---|---|
| Setting change doesn't seem to take effect | Network issue | Check your internet connection and try again |
| Error toast appears after changing setting | Server error | Wait a moment and try again |
The Search screen is your gateway to discovering content, people, and feeds across Bluesky. It combines a search input with an Explore feed that surfaces trending topics, suggested accounts, popular feeds, and starter packs when you are not actively searching.
Tap the Search tab in the bottom navigation bar.
[Screenshot: Search screen showing search bar and Explore content]
Search bar: At the top of the screen. Tap it to start typing a search query. A Cancel button appears while the search bar is active.
Language filter: A dropdown near the search bar (visible when filters are available) lets you restrict results to a specific language.
Autocomplete suggestions: While you are typing, a list of suggested search terms and matching profiles appears below the search bar.
Search history: When the search bar is focused but empty, your recent searches appear — both recent queries and recently viewed profiles. Tap any item to search again, or tap the × next to an item to remove it from your history.
Explore content (when not searching): When no query is active, the screen shows discovery content organized into sections. See Explore for details.
Search results (when searching): When you submit a query, results appear in tabs. See Search Results for details.
Searching
Clearing a Search
Filtering by Language
Removing Search History Items
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Search query | The term or phrase you want to search for | No | Any text; supports filter:value syntax |
bluesky lang:en |
from:handle in your search to find posts from a specific person (e.g., from:alice.bsky.social news).lang:en to filter results to English-language posts.Why are some tabs missing from my search results? The People and Feeds tabs only appear when you search without any filter parameters. If you add a filter like lang:en, those tabs are hidden.
Can I search without being logged in? You can view the Explore section, but post search results require you to be signed in.
| Problem | Cause | What to Do |
|---|---|---|
| No results appear | Query may be too specific or no matching content exists | Try a broader search term |
| Search bar doesn't respond | App may need a refresh | Pull to refresh or restart the app |
After submitting a search query, results are displayed in up to four tabs: Top, Latest, People, and Feeds.
Type a query in the Search Shell and press the search key.
[Screenshot: Search results screen showing tabs and post results]
Tab bar: Four tabs appear at the top of the results area:
Post results (Top and Latest tabs): A scrollable list of posts. Each post shows the author's avatar, name, handle, post content, and engagement counts.
People results: A scrollable list of profile cards with follow buttons.
Feed results: A scrollable list of feed cards showing the feed name, description, and a subscribe button.
Empty state: If no results are found, a message appears: "We couldn't find any results for that query." with a link to search tips.
Loading state: A spinner appears while results are being fetched.
Error state: An error message appears with a Retry option.
Browsing Results
Refreshing Results
Navigating to a Result
This screen has no user input fields (the search query is entered in the Search Shell).
Why do I see duplicate posts in the results? The application automatically removes duplicate posts across pages, but occasionally a post may appear more than once if it matches multiple result pages.
| Problem | Cause | What to Do |
|---|---|---|
| Results don't load | Network issue | Pull to refresh or tap Retry |
| People/Feeds tabs are missing | Filter parameters are active in your query | Remove filters like lang:en from your search |
The Explore screen surfaces discovery content when you are not actively searching. It shows trending topics, suggested accounts to follow, popular feeds, starter packs, and feed previews.
Open the Search Shell without typing a query. The Explore content appears automatically.
[Screenshot: Explore screen showing trending topics, suggested accounts, and feed sections]
The Explore screen is a single scrollable list organized into sections. The sections shown depend on your language settings:
Trending Topics: A list of currently popular topics on Bluesky. Each row shows a rank number, the topic name, a category label, small avatars of associated accounts, and a badge indicating whether the topic is "Hot," "New," or how many hours ago it started trending. Tap a topic to see posts about it.
Suggested Feeds: A section showing popular custom feeds you might want to subscribe to. A Search button in the section header lets you search for more feeds. A Load more button reveals additional suggestions.
Suggested Accounts: A section showing accounts you might want to follow, organized by interest category. Tabs at the top of this section let you filter by interest (e.g., News, Sports, Technology). Tap a profile card to view the profile, or tap Follow to follow directly.
Suggested Starter Packs: Curated bundles of accounts and feeds. Tap a starter pack card to view it.
Feed Previews: Sample posts from suggested feeds, giving you a taste of what each feed contains.
Interests NUX card: If you have not yet dismissed it, a card at the top shows your selected interests and offers a link to edit them. Tap Hide this card to dismiss it permanently.
Discovering Content
Following Accounts
Filtering Suggested Accounts by Interest
Searching Within a Section
Loading More Feeds
This screen has no user input fields.
Why don't I see trending topics? Trending topics may be disabled by the service, or your content language settings may exclude them. Check your language settings.
Why are some sections missing? If your content language preferences do not include English, the Explore screen shows a simplified view with only suggested accounts.
| Problem | Cause | What to Do |
|---|---|---|
| Sections fail to load | Network issue | Pull to refresh |
| Suggested accounts seem irrelevant | Interests not configured | Edit your interests in Settings |
The Hashtag screen shows posts tagged with a specific hashtag or cashtag, in either Top (most relevant) or Latest (most recent) order.
Tap a hashtag link (e.g., #bluesky) in any post. You can also navigate here from search results.
Header: Shows the hashtag (e.g., #bluesky) as the title. If the hashtag is very long, it is truncated in the middle. A Share button appears on the right.
Tabs: Two tabs — Top and Latest — let you switch between sort orders.
Post list: A scrollable list of posts containing the hashtag.
Empty state: "We couldn't find any results for that tag."
Error state: An error message with a Retry button.
Logged-out state: If you are not signed in, a prompt appears with links to sign in or create an account.
Browsing Posts
Sharing the Hashtag
Filtering by Author
This screen has no user input fields.
$BTC) are displayed in uppercase and searched slightly differently than regular hashtags.| Problem | Cause | What to Do |
|---|---|---|
| No results appear | No posts with this hashtag exist | Try a related hashtag |
| Results won't load | Network issue | Tap Retry |
The Topic screen is similar to the Hashtag screen but is used for broader topic categories rather than specific hashtags. It shows posts related to a topic in Top or Latest order.
Tap a topic link from the Explore screen or from within a post.
The layout is identical to the Hashtag Screen: a header with the topic name and a Share button, two sort tabs, and a scrollable post list.
Same as the Hashtag Screen.
This screen has no user input fields.
Same as the Hashtag Screen.
The Feed screen is the core content-browsing experience. It displays a scrollable list of posts from a feed source — your Following timeline, the Discover algorithmic feed, a custom feed generator, or an author's posts.
The Feed screen is the default view when you open the app. You can also access specific feeds by tapping feed tabs in the home screen navigation.
[Screenshot: Feed screen showing posts with floating Load Latest button and compose FAB]
Post list: A scrollable list of posts. Each post card shows:
Interstitials: Between posts, the feed may insert non-post content such as:
Load Latest button: A floating circular button (arrow icon) appears when new posts are available or when you have scrolled down. Tap it to jump to the top and load the latest content.
Compose button (FAB): A floating circular button in the bottom-right corner (pencil/compose icon) opens the post composer. Only visible when you are signed in.
Empty state: If the feed has no posts, a custom empty state message appears (varies by feed type).
Error state: An error message with a Retry button appears if the feed fails to load.
Feed shutdown message: If a feed you are subscribed to has been shut down, a banner appears at the top with options to Remove feed or Replace with Discover.
Discover fallback banner: If your Following feed runs out of posts, a banner appears indicating that the feed has switched to showing Discover content.
Browsing Posts
Composing a Post
Interacting with Posts
Managing a Shut-Down Feed
This screen has no user input fields (post composition happens in a separate composer screen).
Why do I see posts from people I don't follow? The Discover feed and some custom feeds include posts from accounts you don't follow. Check which feed tab is active.
What does the red ring around an avatar mean? The author is currently live streaming. Tap their avatar to see their live status.
What is the "Discover fallback" banner? When your Following feed runs out of posts, the app automatically shows Discover content to fill the gap. The banner lets you know this has happened.
| Problem | Cause | What to Do |
|---|---|---|
| Feed won't load | Network issue or server error | Pull to refresh or tap Retry |
| Feed shows a shutdown message | The feed generator has been discontinued | Remove or replace the feed using the banner buttons |
| New posts don't appear | App is not polling | Tap the Load Latest button or pull to refresh |
The Saved Feeds screen lets you organize the feeds that appear in your home screen navigation. You can reorder pinned feeds, pin or unpin saved feeds, remove feeds, and add the Following timeline if it is missing.
Go to Settings → Content & Media → Manage saved feeds.
[Screenshot: Saved Feeds screen showing pinned and unpinned feed lists]
Header: Title reads Feeds with a Save changes button on the right. The button is highlighted (primary color) when you have unsaved changes.
Pinned Feeds section: A list of feeds that appear as tabs in your home screen navigation. You can reorder these by dragging (or using up/down buttons if you use a screen reader).
Unpinned Feeds section: Feeds you have saved but not pinned. They are accessible but not shown as prominent tabs.
No Following Feed notice: If you have no Following feed saved, a prompt appears offering to add it.
No Saved Feeds notice: If you have no saved feeds at all, a prompt appears offering to add a set of recommended feeds.
Footer: A link to the Bluesky feed generator guide for developers.
Reordering Pinned Feeds
Pinning or Unpinning a Feed
Removing a Feed
Adding the Following Feed
Adding Recommended Feeds
Saving Changes
This screen has no text input fields.
What is the difference between pinned and saved feeds? Pinned feeds appear as prominent tabs in your home screen navigation. Saved feeds are stored in your account but not shown as tabs — you can access them through the feeds list.
Can I have too many pinned feeds? There is no hard limit shown on this screen, but having too many pinned feeds can make navigation crowded. Consider keeping only your most-used feeds pinned.
| Problem | Cause | What to Do |
|---|---|---|
| Save fails | Network issue | Check your connection and try again |
| Drag reordering doesn't work | Screen reader may be active | Use the up/down arrow buttons instead |
This screen appears when you have no saved feeds of any kind. It offers a quick way to populate your feeds with a recommended set.
This screen appears automatically in the Feeds section when you have no saved feeds.
A message explaining that you have no saved feeds, and a Use recommended button with a plus icon.
This screen has no user input fields.
This screen appears when you have saved feeds but none of them is the standard Following timeline. It offers a quick way to add it.
This screen appears automatically in the Feeds section when you have no Following feed.
A message explaining that you have no Following feed, with an inline link Click here to add one.
This screen has no user input fields.
This screen appears when you have unpinned all of your feeds, leaving your home feed empty. It offers two ways to recover.
This screen appears automatically on the home screen when all feeds have been unpinned.
A "Whoops!" heading, an explanation that all feeds were unpinned, and two buttons:
This screen has no user input fields.
The profile header is the top section of any user's profile page. It shows the user's identity, social metrics, bio, and action buttons for following, messaging, or managing your relationship with them.
Tap any user's avatar, display name, or handle anywhere in the app to navigate to their profile.
[Screenshot: Profile header showing banner, avatar, display name, metrics, and action buttons]
Banner image: A wide image at the top of the profile (150px tall). Tap it to view the full-size image.
Avatar: A circular profile picture overlapping the bottom of the banner. Tap it to view the full-size image. If the user is currently live streaming, the avatar has a red ring around it.
Action buttons row: Appears to the right of the avatar area:
Display name: Large bold text showing the user's chosen display name.
Verification/role badges: Small icons next to the display name indicating verified status or special roles.
Handle: The user's @username in smaller text. A "Follows you" badge appears if this person follows you.
Metrics row: Three tappable links showing:
Bio/description: The user's profile description, which may include links, mentions, and hashtags.
Known followers: If you and this person share mutual followers, small avatars of those mutual followers appear here.
Suggested follows: After you follow someone, a section may expand below the header suggesting other accounts you might like.
Moderation alerts: If any content labels apply to this profile, an alert banner appears.
Following/Unfollowing
Messaging
Subscribing to Activity Notifications
Editing Your Own Profile
Viewing Full-Size Images
Viewing Followers/Following
Blocking/Unblocking
When you tap Edit Profile on your own profile, a dialog opens with the following fields:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Display Name | Your public name shown on your profile | No | Text; maximum character limit applies | Alice Johnson |
| Description | Your profile bio | No | Text with links, mentions, hashtags; maximum character limit applies | Writer and coffee enthusiast |
| Avatar | Your profile picture | No | Image file (tap to select from your device) | — |
| Banner | Your profile banner image | No | Image file (tap to select from your device) | — |
Tap Save to apply changes. Tap Cancel (or the close button) to discard changes — you will be asked to confirm if you have made edits.
Verification warning: If you are a verified user and change your display name, a warning appears explaining that your verification status will be removed.
Why can't I follow this person? If a block relationship exists (you blocked them or they blocked you), the follow button may not be available.
What does the red ring around the avatar mean? This person is currently live streaming. Tap the avatar to see their live status.
Why is the Subscribe button grayed out? The account owner's privacy settings may not allow subscriptions from you. For example, if they only allow subscriptions from mutual followers and you don't follow each other, the button will be unavailable.
| Problem | Cause | What to Do |
|---|---|---|
| Follow button doesn't respond | Network issue or block relationship | Check your connection; if blocked, you cannot follow |
| Edit Profile save fails | Network issue or character limit exceeded | Check the character count indicators and your connection |
| Profile won't load | Network issue | Pull to refresh |
Labeler profiles look similar to standard profiles but represent moderation services that users can subscribe to. Subscribing to a labeler applies that service's content labels to your feed experience.
Navigate to a labeler's profile the same way as any other profile — tap their name or handle.
The layout is similar to a standard profile header, with these differences:
Rectangular avatar: Labeler accounts use a rectangular avatar instead of a circular one.
Subscribe/Unsubscribe button: Instead of a Follow button, you see a Subscribe to Labeler button (purple) or Unsubscribe button (gray).
Like button and count: A heart icon and like count appear below the bio. Tap the heart to like the labeler service. Tap the count to see who has liked it.
Labels tab: The profile has a Labels tab showing the content labels this service provides and letting you configure how each label affects your experience.
Subscribing/Unsubscribing
Liking the Labeler
Configuring Label Preferences
Same as the Edit Profile Dialog in the standard profile section (only visible on your own labeler profile).
| Problem | Cause | What to Do |
|---|---|---|
| Subscribe button is unavailable | You have reached the maximum number of labeler subscriptions | Unsubscribe from another labeler first |
| Like button is disabled | You are not signed in | Sign in to like labelers |
Shows a list of all accounts that follow a given profile.
Tap the Followers count on any profile header.
Header: Shows the profile's display name as the title and the follower count as a subtitle (e.g., "1,234 followers").
Follower list: A scrollable list of profile cards, each with a Follow button.
This screen has no user input fields.
Shows a list of all accounts that a given profile follows.
Tap the Following count on any profile header.
Header: Shows the profile's display name as the title and the following count as a subtitle (e.g., "567 following").
Following list: A scrollable list of profile cards, each with a Follow button.
Same as Profile Followers.
This screen has no user input fields.
Shows the accounts that both you and a specific profile follow — your mutual connections with that person.
Tap the "Known followers" indicator on a profile header (visible when you share mutual connections with that person).
Header: Title reads "Followers you know."
List: A scrollable list of profile cards showing mutual followers, each with a Follow button.
Empty state: "You don't follow any users who follow @handle."
This screen has no user input fields.
Lets you search for posts by a specific user, scoped to their profile.
Tap the search icon on a user's profile page (if available).
A search interface identical to the Search Shell, but with the search automatically restricted to posts from that specific user. The search bar placeholder reads "Search @handle's posts" (or "Search my posts" on your own profile).
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Search query | The term to search within this user's posts | No | Any text | "coffee" |
Shows a list of all accounts that have liked a specific post.
Tap the like count on any post.
Header: Title reads "Liked By" with the like count as a subtitle (e.g., "42 likes").
Liked-by list: A scrollable list of profile cards.
This screen has no user input fields.
Shows a list of all accounts that have reposted a specific post.
Tap the repost count on any post.
Header: Title reads "Reposted By" with the repost count as a subtitle (e.g., "15 reposts").
Reposted-by list: A scrollable list of profile cards.
Same as Post Liked By.
This screen has no user input fields.
Shows a list of all posts that have quoted a specific post (reposts with added commentary).
Tap the quote count on any post.
Header: Title reads "Quotes" with the quote count as a subtitle (e.g., "8 quotes").
Quotes list: A scrollable list of quote posts.
This screen has no user input fields.
Shows a list of accounts that have liked a specific labeler (moderation service).
Tap the like count on a labeler's profile.
Header: Title reads "Liked By."
Liked-by list: A scrollable list of profile cards.
Same as Post Liked By.
This screen has no user input fields.
This screen appears when a moderation service associated with a profile cannot be loaded.
This screen appears automatically when a profile's moderation service fails to load.
An information icon, a message reading "Hmmmm, we couldn't load that moderation service," a description of the problem, the raw error detail in a shaded box, and a Go Back button.
This screen has no user input fields.
The Activity List screen shows a curated list of posts associated with a specific notification event — for example, all the posts that triggered a group notification.
Tap a grouped notification in your notification feed that links to multiple posts.
Header: Title reads "Notifications."
Post list: A scrollable list of posts related to the notification event.
Empty state: A pencil icon and "No posts here."
This screen has no user input fields.
A Starter Pack is a curated bundle of accounts and feeds that you can share with others to help them get started on Bluesky. This screen lets you view, follow all members of, share, edit, or delete a starter pack.
Tap a starter pack link shared by another user, or navigate to a starter pack from the Explore screen.
[Screenshot: Starter Pack screen showing creator info, member list, and feeds]
Header: Shows the pack creator's avatar, the pack name, and the creator's handle. Action buttons appear on the right:
Description: The pack's description text (if provided).
Join count: If the pack has been joined by 25 or more people, a count appears showing how many people have joined.
Tabs: Up to three tabs:
Following All Members
Sharing the Pack
Editing the Pack (Owner Only)
Deleting the Pack (Owner Only)
Converting to a List (Owner Only)
Reporting the Pack (Non-Owner)
This screen has no user input fields (editing happens in the wizard).
What happens if I follow all and then change my mind? You can unfollow individual accounts from their profiles. There is no "undo follow all" option.
Why are some accounts not included in Follow all? Accounts you have blocked, muted, or already follow are automatically excluded.
| Problem | Cause | What to Do |
|---|---|---|
| Pack won't load | Network issue or pack was deleted | Check your connection; the pack may no longer exist |
| Follow all fails | Network issue | Check your connection and try again |
The Starter Pack Landing page is shown to people who arrive via a starter pack invite link before they have a Bluesky account. It introduces the pack and prompts them to create an account.
This page is shown automatically when an unauthenticated user opens a starter pack link.
Branded header: The Bluesky logo, the pack name, and the creator's handle on a gradient background.
Description: The pack's description text.
Join Bluesky button: The primary call-to-action to create an account.
Join count: How many people have joined this week (shown when the count is significant).
Create account without starter pack button: An option to create an account without applying this starter pack.
People section: Up to 8 profile cards showing accounts you will follow when you join.
Feeds section: The custom feeds included in the pack.
This screen has no user input fields.
The first step of the Starter Pack creation wizard, where you give your pack a name and description.
Tap Create a starter pack from your profile or the Starter Pack screen. This is the first step shown.
Branding: A Starter Pack icon and the tagline "Invites, but personal."
Name field: A text input for the pack's name. A character counter shows how many of the 50 allowed characters you have used.
Description field: A multiline text area for the pack's description.
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Pack name | The title of your starter pack | No (but recommended) | Text; maximum 50 characters | "My Tech Friends" |
| Description | A brief description of the pack | No | Text | "The best tech writers on Bluesky" |
The second step of the Starter Pack creation wizard, where you choose which accounts to include.
Complete Step Details and tap Next.
Search bar: Type to search for specific users to add.
Profile list: When no search query is active, a list of popular accounts is shown. When searching, autocomplete results appear.
Checkboxes: Each profile card has a checkbox. Checked profiles are included in the pack.
Empty state: "Nobody was found. Try searching for someone else."
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Search | Find a specific user to add | No | Name or @handle | "alice" |
The third and final step of the Starter Pack creation wizard, where you choose which custom feeds to include.
Complete Step Profiles and tap Next.
Search bar: Type to search for specific feeds to add.
Feed list: Your saved feeds appear first, followed by popular feeds from the network.
Checkboxes: Each feed card has a checkbox. Checked feeds are included in the pack.
Empty state: "No feeds found. Try searching for something else."
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Search | Find a specific feed to add | No | Feed name | "What's Hot" |
The Splash screen is the first thing you see when you open the app without an active session. It presents the Bluesky logo and two options: create a new account or sign in to an existing one.
Open the app when you are not signed in.
Background illustration: A themed illustration fills the screen.
Logo and wordmark: The Bluesky icon and "Bluesky" text appear centered near the top.
Create account button: A large button at the bottom of the screen.
Sign in button: A second large button below the Create account button.
This screen has no user input fields.
The Login Form lets you sign in to an existing Bluesky account using your username or email and password.
Tap Sign in on the Splash Screen.
Hosting provider selector: Shows which server you are signing in to. Tap it to change servers (for users on non-default servers).
Account section:
alice.bsky.social) or email address2FA confirmation field: Only appears if your account has two-factor authentication enabled. Enter the code sent to your email.
Error messages: Appear below the form if your credentials are incorrect.
Action buttons:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Username or email | Your Bluesky handle or registered email | Yes | Handle (e.g., alice.bsky.social) or email address | alice.bsky.social |
| Password | Your account password | Yes | Any text | — |
| 2FA confirmation code | One-time code sent to your email (if 2FA is enabled) | Only if 2FA is enabled | Code in the format sent to your email | — |
alice instead of alice.bsky.social), the app will automatically add the server's domain.Why do I see a "Connecting..." button instead of Sign in? The app is still connecting to the server. Wait a moment for the button to become active.
What if I forgot my password? Tap Forgot? next to the password field to start the password reset process.
| Problem | Cause | What to Do |
|---|---|---|
| "Incorrect username or password" error | Wrong credentials | Double-check your handle/email and password |
| "Invalid 2FA confirmation code" error | Wrong or expired code | Check your email for the latest code |
| "Unable to contact your service" error | Network issue | Check your internet connection |
If you have previously signed in to multiple accounts on this device, this screen lets you quickly switch to one of them without re-entering credentials.
This screen appears automatically when you open the app and have multiple saved accounts.
"Sign in as..." label (web only): A label above the account list.
Account list: Each saved account appears as a row showing the account's avatar and handle. A loading indicator appears on the row of an account being resumed.
Other account option: An option to sign in to a different account not in the list.
Back button (web only): Returns to the previous step.
This screen has no user input fields.
| Problem | Cause | What to Do |
|---|---|---|
| Account won't resume | Session expired | You will be taken to the password screen — enter your password |
| Account not in the list | Not previously signed in on this device | Use the Other account option |
Starts the password reset process by sending a reset code to your registered email address.
Tap Forgot? on the Login Form.
Hosting provider selector: Confirms which server your account is on.
Email address field: Enter the email address associated with your account.
Instructional text: Explains that a reset code will be sent to your email.
Error messages: Appear if the email is invalid or the request fails.
Action buttons:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Email address | The email registered to your account | Yes | Valid email address | alice@example.com |
| Problem | Cause | What to Do |
|---|---|---|
| "Your email appears to be invalid" | Email format is incorrect | Check the email address and try again |
| "Unable to contact your service" | Network issue | Check your internet connection |
The second step of the password reset flow. Enter the reset code you received by email and choose a new password.
Complete the Forgot Password Form and receive a reset code by email.
Instructional text: Explains that you will receive a code by email.
Reset code field: Enter the code from your email. The expected format is XXXXX-XXXXX (10 characters with a hyphen).
New password field: Enter your desired new password (minimum 8 characters).
Error messages: Appear if the code is invalid or the password is too short.
Action buttons:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Reset code | The code sent to your email | Yes | Format: XXXXX-XXXXX | AB123-CD456 |
| New password | Your desired new password | Yes | Minimum 8 characters | — |
XXXXX-XXXXX when you leave the field. If it looks different, check that you copied it correctly.| Problem | Cause | What to Do |
|---|---|---|
| "Invalid code format" error | Code is not in the correct format | Check the code in your email and re-enter it |
| "Please enter a password" error | Password field is empty | Enter a new password |
A confirmation screen shown after your password has been successfully reset.
Complete the Set New Password Form successfully.
A "Password updated!" heading, a message confirming the change, and an Okay button.
This screen has no user input fields.
The signup flow guides you through creating a new Bluesky account in three steps: entering your information, choosing a handle, and completing a verification step.
Tap Create account on the Splash Screen.
The signup flow has three steps, each with Back and Next buttons at the bottom:
Step 1 — Your Information:
Step 2 — Choose a Handle:
alice becomes alice.bsky.social)Step 3 — Verification:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Email address | Your email for account recovery | Yes | Valid email address | alice@example.com |
| Password | Your account password | Yes | Any text | — |
| Date of birth | Used to verify minimum age | Yes | Date | January 1, 1990 |
| Invite code | Required by some servers | Only if required | Code provided by the server | — |
| Handle | Your username on Bluesky | Yes | Letters, numbers, hyphens; no spaces | alice |
| Problem | Cause | What to Do |
|---|---|---|
| "Please enter your email" error | Email field is empty | Enter your email address |
| "Your email appears to be invalid" | Email format is incorrect | Check the email and try again |
| "Please choose your handle" | Handle field is empty | Enter a handle |
| Handle is not available | Someone else has that handle | Choose a different handle or select a suggestion |
During periods of high demand, new accounts may be placed in a queue before being activated. This screen shows your position in the queue and an estimated wait time.
This screen appears automatically after account creation if your account is in a queue.
Logo: The Bluesky logo at the top.
"You're in line" heading.
Explanation text: Describes the queue situation.
Status card: Shows your position in the queue (e.g., "150") and an estimated wait time (e.g., "About 30 minutes") or "We will let you know when your account is ready."
Check my status button: Manually checks whether your account has been activated.
Sign out button: Signs you out if you want to come back later.
This screen has no user input fields.
After your account is activated, the onboarding wizard guides you through setting up your profile and personalizing your experience. It includes steps for profile setup, selecting interests, discovering suggested accounts, exploring starter packs, and finding contacts.
The onboarding wizard starts automatically after your account is created and activated.
The wizard has multiple steps, each shown one at a time with Back and Next (or Skip) buttons:
Profile step: Set your avatar (choose an emoji and background color, or upload a photo) and display name.
Interests step: Select topics you are interested in (e.g., News, Sports, Technology). Select at least two for best results.
Suggested accounts step: Browse and follow accounts recommended based on your interests.
Suggested starter packs step: Browse starter packs and tap Follow all to follow all members of a pack.
Find contacts step (mobile only): Optionally sync your phone contacts to find people you know on Bluesky.
Finished step: A brief overview of Bluesky's key features, shown as a swipeable carousel.
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Display name | Your public name | No | Text | Alice Johnson |
| Avatar | Your profile picture | No | Emoji + color selection, or uploaded image | — |
| Interests | Topics you care about | No (but recommended) | Select from the provided list | News, Technology |
The Find Contacts flow (available on mobile only) lets you sync your phone contacts with Bluesky to discover people you already know.
This flow is available during onboarding (Find Contacts step) or from Settings → Find contacts.
A multi-step wizard that guides you through:
This screen has no user input fields visible at the flow level (phone number entry happens within the steps).
The Settings home screen is the central hub for all application preferences and account management options.
Tap your avatar or profile icon in the navigation, then tap Settings. Or navigate directly from the profile menu.
[Screenshot: Settings home screen showing profile preview and settings list]
Profile preview: Your avatar, display name, and handle appear at the top of the screen.
Account switching: If you have multiple accounts saved on this device, a Switch account section appears showing other accounts. Tap it to expand and see all accounts. Tap any account to switch to it.
Add another account: A button to sign in to an additional account.
Settings list: Navigation links to all settings sub-screens:
Sign out: A destructive button at the bottom that signs out all accounts on this device.
Switching Accounts
Removing a Saved Account
Navigating to Settings
Signing Out
Getting Help
This screen has no user input fields.
Manage your account credentials, identity, and lifecycle — including email, password, handle, birthday, data export, and account deactivation or deletion.
Settings → Account.
Email row: Shows your current email address. A shield icon appears if your email is verified. If your email is not verified, a "Verify your email" prompt appears above the update option.
Update email: Opens the email update flow.
Password: Opens the change password dialog.
Handle: Opens the change handle dialog.
Birthday: Shows your birthday with an Edit button to update it.
Age assurance: A section showing your age verification status.
Automation label: Shows whether your account is labeled as automated (bot). Tap to toggle.
Export my data: Downloads your account data as a file.
Deactivate account: Temporarily deactivates your account.
Delete account: Permanently deletes your account.
Verifying Your Email
Updating Your Email
Changing Your Password
Changing Your Handle
Editing Your Birthday
Exporting Your Data
Deactivating Your Account
Deleting Your Account
Change Handle — Server-Provided Handle:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Handle | Your new username | Yes | Letters, numbers, hyphens, underscores; no leading/trailing hyphens | alice |
Change Handle — Custom Domain:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Domain | Your custom domain | Yes | A domain you own | alice.com |
Change Password:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Reset code | Code sent to your email | Yes | Format: XXXXX-XXXXX | — |
| New password | Your new password | Yes | Minimum 8 characters | — |
Delete Account:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Confirmation code | Code sent to your email | Yes | Code from email | — |
| Password | Your current password | Yes | Your account password | — |
What is the difference between deactivation and deletion? Deactivation temporarily hides your account — you can reactivate it by signing back in. Deletion permanently removes your account and all its data.
Can I use my own domain as a handle? Yes. In the Change Handle dialog, select "I have my own domain" and follow the DNS verification steps.
| Problem | Cause | What to Do |
|---|---|---|
| Can't deactivate with App Password | App Passwords cannot perform this action | Sign in with your main password |
| Handle change fails | Handle may already be taken | Try a different handle |
| Delete account fails | Wrong code or password | Check the code in your email and re-enter your password |
Manage your account's security features and control how your content is visible to logged-out users.
Settings → Privacy and security.
Email 2FA: Shows whether two-factor authentication is enabled. A button labeled Enable or Change opens the 2FA management flow.
App passwords: Shows how many app passwords you have created. Tap to manage them.
Allow others to be notified of your posts: Shows your current activity subscription setting. Tap to change it.
Logged-out visibility: A toggle to control whether your content is visible to people who are not signed in to Bluesky.
Informational note: Explains that Bluesky is an open network and the logged-out visibility setting only applies to the official app — other apps built on the AT Protocol may still show your content.
Enabling/Managing 2FA
Managing App Passwords
Changing Activity Subscription Settings
Toggling Logged-Out Visibility
This screen has no direct user input fields (controls are in sub-screens or dialogs).
Customize the visual appearance of the application.
Settings → Appearance.
Color mode: Three options — System (follows your device setting), Light, or Dark.
Dark theme: Only visible when Dark or System (dark) mode is active. Two options — Dim (softer dark) or Dark (higher contrast).
Font family: Two options — System (your device's default font) or Theme (Bluesky's custom font).
Font size: Three options — Smaller, Default, or Larger.
App Icon (internal builds only): A link to change the app's home screen icon.
This screen has no text input fields.
Configure accessibility features including alt text requirements and haptic feedback.
Settings → Accessibility.
Alt text section:
Haptics section (mobile only):
This screen has no text input fields.
Configure the language used for the app's interface, your preferred language for feed translations, and which languages you want to see in your feeds.
Settings → Languages.
App language: A dropdown to select the language for the app's interface (buttons, labels, menus).
Primary language: A dropdown to select your preferred language for automatic post translations.
Content languages: A list of checkboxes for languages you want to see in your feeds. If none are selected, all languages are shown. A Add more languages… button opens a full language selection dialog.
Informational note: When no content languages are selected, a tip explains that all languages will be shown.
This screen has no text input fields (all selections are made via dropdowns and checkboxes).
Configure how content is displayed and which discovery features are active.
Settings → Content & Media.
Navigation links:
Toggles:
This screen has no text input fields.
Customize what types of content appear in your Following feed.
Settings → Content & Media → Following feed preferences.
Show replies toggle: When enabled, replies from people you follow appear in your Following feed.
Show reposts toggle: When enabled, reposts from people you follow appear in your Following feed.
Show quote posts toggle: When enabled, quote posts from people you follow appear in your Following feed.
Experimental section:
Informational tip: A note explaining that these settings only apply to the Following feed, not to other feeds.
This screen has no text input fields.
Configure how post reply threads are displayed.
Settings → Content & Media → Thread preferences.
Sort replies: A segmented control with three options:
Tree view: A toggle to show replies in a nested/indented tree format (showing which reply is responding to which).
This screen has no text input fields.
Control which external media platforms are allowed to embed and autoplay content within the app.
Settings → Content & Media → External media.
Informational banner: Explains that external media may allow websites to collect device information, and that no data is sent until you press "play."
Media player toggles: A list of supported external platforms (e.g., YouTube, Twitch, Spotify), each with a toggle. When a platform is enabled, its embedded content loads automatically. When disabled, you must tap a play button to load content from that source.
This screen has no text input fields.
Select the topics you are interested in to improve content recommendations throughout the app.
Settings → Content & Media → Your interests.
Subtitle: "Your selected interests help us find what you care about."
Interest pills: A grid of topic pills (e.g., News, Sports, Technology, Art). Tap a pill to select or deselect it. Selected pills appear with a dark background.
Advisory tip: If you have selected fewer than two interests, a tip recommends selecting at least two.
Saving indicator: A loading spinner appears in the header while your changes are being saved.
This screen has no text input fields.
App passwords are secondary passwords you can create for third-party Bluesky clients. They allow those apps to access your account without exposing your main password.
Settings → Privacy and security → App passwords.
Informational tip: Explains what app passwords are and when to use them.
Add App Password button: Opens the dialog to create a new app password.
Password list: Each existing app password appears as a card showing:
Empty state: "No app passwords yet" with a list icon.
Error state: "Oops!" with an error message if the list fails to load.
Creating an App Password
Deleting an App Password
Create App Password dialog:
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Name | A label to identify this password | No (auto-generated if blank) | Letters, numbers, spaces, dashes, underscores; minimum 4 characters; maximum not specified | "My Favorite Client" |
| Allow access to direct messages | Grants the app permission to read and send DMs | No | Checkbox (on/off) | — |
Why can't I see my app password after closing the dialog? For security reasons, the plaintext password is only shown once, immediately after creation. If you missed it, delete the password and create a new one.
What happens if I delete an app password? Any app using that password will immediately lose access to your account. You will need to generate a new password and update the app's settings.
| Problem | Cause | What to Do |
|---|---|---|
| "App password names must be at least 4 characters long" | Name is too short | Enter a longer name |
| "App password name must be unique" | A password with that name already exists | Choose a different name |
| Password list won't load | Network issue | Pull to refresh or tap Retry |
Add or remove a "bot" label on your account to publicly signal that it is automated.
Settings → Account → Automation label.
Profile preview card: Shows how your profile looks with or without the bot badge.
Description: Explains what the automation label does.
Show automation label toggle: A switch to add or remove the bot label.
This screen has no text input fields.
Control whether verification badges are shown throughout the app.
Settings → Moderation and content filters → Verification Settings (or navigate from within the Moderation section).
Informational tip: Explains how Bluesky's verification works differently from other platforms, with a "Learn more here" link to the official blog post.
Hide verification badges toggle: When enabled, verification badges are hidden throughout the app.
This screen has no text input fields.
Control who can subscribe to receive push notifications when you post.
Settings → Privacy and security → Allow others to be notified of your posts.
Description: Explains the feature — other users can subscribe to receive notifications when you post.
Radio button group: Three options:
This screen has no text input fields.
Manage your phone contacts import — view matched contacts, follow them, resync, or delete your imported contact data.
Settings → Find friends from contacts (mobile only).
If you have never synced contacts:
If you have previously synced contacts:
Importing Contacts (First Time)
Following Matched Contacts
Dismissing a Suggestion
Resyncing Contacts
Removing All Contact Data
This screen has no text input fields.
View application information, access legal documents, and manage diagnostic tools.
Settings → About.
Navigation links:
System log: Opens the System Log screen for diagnostic information.
Clear image cache (mobile only): Frees up storage space used by cached images.
Version information: Shows the app version and build number. Tap to copy to clipboard. Long-press to enable developer mode (for internal builds only).
This screen has no user input fields.
Change the icon displayed on your device's home screen for the Bluesky app.
Settings → Appearance → App Icon (available on internal/beta builds only).
A list of available app icon options, each shown as a preview image with the icon's name. The currently selected icon is highlighted.
This screen has no text input fields.
The Notification Settings section lets you control which events trigger notifications and how those notifications are delivered. Each notification type has its own sub-screen with consistent controls. See Notification Toggle Controls in the Common Features Guide for how these controls work.
Settings → Notifications.
Configure notifications for when other users mention you in a post.
Settings → Notifications → Mentions.
Header item: "Mentions" with the subtitle "Get notifications when people mention you."
Push notifications toggle: Enable or disable device push notifications for mentions.
In-app notifications toggle: Enable or disable in-app notifications for mentions.
From filter (if available): Radio buttons to receive mention notifications from Everyone or only People I follow.
See Notification Toggle Controls for how these controls work.
This screen has no text input fields.
Configure notifications for replies to your posts. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people reply to your posts."
Configure notifications for likes on your posts. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people like your posts." Includes a From filter (Everyone / People I follow).
Configure notifications for reposts of your posts. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people repost your posts."
Configure notifications for quote posts of your content. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people quote your posts."
Configure notifications for new followers. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people follow you."
Configure notifications for when someone reposts a post you have reposted. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people repost posts that you've reposted."
Configure notifications for when someone likes a post you have reposted. Layout and controls are identical to Mention Notifications, with the subtitle "Get notifications when people like posts that you've reposted."
Configure notifications for miscellaneous activity, specifically when someone joins Bluesky using one of your starter packs.
Settings → Notifications → Everything else.
Header item: "Everything else" with the subtitle "Notifications for everything else, such as when someone joins via one of your starter packs."
Push notifications toggle: Enable or disable push notifications for this category.
Note: In-app notifications for this category cannot be disabled.
This screen has no text input fields.
Configure notifications for posts from accounts you have subscribed to, and manage your list of subscribed accounts.
Settings → Notifications → Activity from others.
Header item: "Activity from others" with a description of the feature.
Push notifications toggle: Enable or disable push notifications for subscribed account activity.
In-app notifications toggle: Enable or disable in-app notifications for subscribed account activity.
Subscription list: A scrollable list of accounts you have subscribed to. Each card shows:
Empty state: If you have no subscriptions, a tip explains how to subscribe to accounts via the bell icon on their profile, with a link to Activity Privacy Settings.
Managing Notification Channels
Editing a Subscription
Loading More Subscriptions
This screen has no text input fields.
This screen appears when you sign in to an account that has been deactivated. It lets you reactivate your account, switch to a different account, or sign out.
This screen appears automatically when you sign in to a deactivated account.
Logo: The Bluesky logo at the top.
Status message: Text explaining that your account is deactivated, referencing your handle.
Reactivate button: "Yes, reactivate my account" — reactivates your account.
Cancel button: Signs you out of this account.
Account list: If you have other accounts saved on this device, they appear below a divider so you can switch to one.
Sign in or create an account button: Appears if you have no other saved accounts.
Reactivating Your Account
Switching Accounts
Signing Out
| Problem | Cause | What to Do |
|---|---|---|
| Reactivation fails with "Bad token scope" | Signed in with an App Password | Sign out and sign in with your main password |
| Reactivation fails with a generic error | Network issue or server error | Check your connection and try again |
This screen appears when your account has been suspended by Bluesky's moderation system. It lets you appeal the suspension or sign out.
This screen appears automatically when you sign in to a suspended account.
Logo: The Bluesky logo at the top.
Status message: "Your account has been suspended" with a link to the Terms of Service.
Appeal Suspension button: Opens an appeal form.
Sign Out button: Signs you out.
Appeal form (when appealing):
Confirmation (after submitting): A message confirming your appeal was submitted.
Appealing the Suspension
Signing Out
| Field Name | What It Means | Required? | Accepted Values / Format | Example |
|---|---|---|---|---|
| Appeal reason | Your explanation for why the suspension should be reviewed | No | Text; character limit applies | "I believe this was a mistake because..." |
This screen appears when you try to view a list that has been hidden due to a blocking relationship or content moderation.
This screen appears automatically when you navigate to a hidden list.
Icon: An eye-with-slash icon.
Heading: Either "Creator has been blocked" or "List has been hidden" depending on the reason.
Description: Explains why the list is not visible.
Action buttons (depending on your relationship to the list):
This screen has no user input fields.
The System Log is a diagnostic tool that displays the application's internal log entries. It is intended for troubleshooting and support purposes.
Settings → About → System log.
Log entry list: A scrollable list of log entries. Each entry shows:
Expanded entry: Tap a log entry to expand it and see its associated data in a formatted display.
This screen has no user input fields.
A generic error screen that appears when a specific part of the application encounters a problem it cannot recover from automatically.
This screen appears automatically when an error occurs.
Error icon: A circle with an exclamation mark.
Title: A brief description of the problem.
Message: More detail about what went wrong and what you can do.
Error details box: Technical details about the error (useful for support).
Try again button: Attempts to reload or retry the failed operation.
Back button (if header is shown): Returns to the previous screen.
This screen has no user input fields.
@handle — A user's public username on Bluesky, formatted as a domain-like string (e.g., alice.bsky.social). Handles can be changed; DIDs cannot.
2FA (Two-Factor Authentication) — An additional security layer that requires a code sent to your email in addition to your password when signing in.
App Password — A secondary, limited-scope password created for use with third-party Bluesky clients. Allows those apps to access your account without exposing your main password.
AT Protocol (atproto) — The open, decentralized social networking protocol that Bluesky is built on. It defines how accounts, posts, and other data are stored and shared across servers.
Automation label (bot label) — A self-applied label that marks your account as automated. Shown as a badge next to your name.
Banner — The wide image displayed at the top of a user's profile page.
BCP 47 — A standard for language tags (e.g., en for English, fr for French). Used in language settings.
Cashtag — A financial ticker symbol prefixed with $ (e.g., $BTC), used to tag posts about financial topics.
Chat request — A direct message from someone you have not yet accepted. Shown in the Inbox rather than the main Chat List.
Content languages — The languages you want to see in your subscribed feeds. Configurable in Language Settings.
Conversation — A direct message thread between you and one other person.
Custom domain handle — Using your own domain name (e.g., alice.com) as your Bluesky handle instead of a server-provided subdomain.
Deactivated account — An account that has been temporarily disabled by the user. The account's data is preserved and can be restored.
DID (Decentralized Identifier) — A globally unique, permanent identifier for a Bluesky account (e.g., did:plc:abc123). Unlike handles, DIDs never change.
Dim — A dark theme variant that is softer and less contrasted than the full Dark theme.
Discover feed — Bluesky's default algorithmic feed that surfaces popular and trending content.
Facets — Inline annotations in AT Protocol rich text that mark spans as links, mentions, or hashtags.
FAB (Floating Action Button) — The circular compose button that floats over the feed content.
Feed — A stream of posts from a specific source — your Following timeline, an algorithmic feed, or a custom feed generator.
Feed generator (feedgen) — A custom algorithmic feed created by a user or developer. Identified by a URI and subscribable by other users.
Following feed — The chronological feed showing posts only from accounts you follow.
Grapheme — A user-perceived character unit. A single emoji may consist of multiple code points but counts as one grapheme. Character limits in the app are measured in graphemes.
Handle — See @handle.
Hashtag — A word or phrase prefixed with # used to categorize posts (e.g., #bluesky).
In-app notifications — Notifications that appear within the app's notification list, as opposed to device push notifications.
Inbox — The section of the Messages area that shows pending chat requests you have not yet accepted.
Interstitial — A non-post element inserted into a feed at specific positions, such as suggested follows, trending topics, or onboarding prompts.
Known followers — Users who follow both you and another specific account — your mutual connections with that person.
Labeler — A special type of Bluesky account that provides content moderation labels. Users can subscribe to labelers to apply their moderation rules.
Left convo — A conversation that you have left (deleted). Removed from your list immediately, before the server confirms the deletion.
Lightbox — A full-screen image viewer that opens when you tap an avatar or banner image.
Live / Live Now — A feature that shows a live streaming indicator on a user's avatar when they are currently broadcasting.
Minimal shell mode — An app state where the navigation bar and header are hidden to maximize content viewing area.
Moderation decision — The result of evaluating content labels against your preferences, determining whether content should be shown, blurred, or hidden.
Mutual followers — Users who follow each other.
Newskie — An informal term for a new or recently-joined Bluesky user.
Onboarding — The multi-step setup process new users go through when first creating their account.
PDS (Personal Data Server) — The server that hosts your AT Protocol account data. You can use Bluesky's default server or a third-party server.
Pinned feed — A saved feed that appears as a prominent tab in your home screen navigation.
Post — A short message published on Bluesky, similar to a tweet.
Profile shadow — A client-side optimistic update that reflects a pending change (like a follow) before the server confirms it.
Pull-to-refresh — The gesture of pulling down on a scrollable list to trigger a data refresh.
Push notifications — Device-level notifications (banner alerts, lock screen alerts) delivered by the operating system.
Quote post — A post that embeds another post with added commentary.
rkey (Record Key) — The unique identifier for a specific record within a user's AT Protocol repository.
Repost — Sharing another user's post to your own followers without modification (similar to a retweet).
Saved feed — A feed you have added to your account. Saved feeds can be pinned (shown as tabs) or unpinned (accessible but not prominent).
Session — Your authenticated state in the app. A session remains active until you sign out or it expires.
Soft reset — An event triggered when you tap the currently active tab in the navigation bar. Scrolls the current screen to the top and refreshes the content.
Starter pack — A curated bundle of accounts and feeds that can be shared to help new users quickly populate their timeline.
Subscription (activity) — An opt-in to receive notifications when a specific account posts or replies.
Takendown — An account that has been suspended by Bluesky's moderation system.
Trending topics — Topics that are currently popular across the Bluesky network, shown in the Explore section.
Unread indicator — A small colored dot on a conversation row indicating there are unread messages.
Verification badge — A visual indicator next to a user's name showing they have been verified. Bluesky's verification system differs from other platforms.
| Task | How to Do It |
|---|---|
| Sign in | Open app → Tap Sign in → Enter handle/email and password |
| Sign out | Settings → Scroll to bottom → Tap Sign out → Confirm |
| Compose a post | Tap the floating pencil/compose button on the feed screen |
| Follow someone | Tap their profile → Tap Follow |
| Send a direct message | Messages tab → Tap New chat → Find the person → Start chatting |
| Accept a chat request | Messages tab → Tap the inbox banner → Tap Accept |
| Search for posts | Search tab → Tap the search bar → Type your query → Press search |
| Search for a person | Search tab → Type their name or handle → Tap People tab |
| Refresh a feed | Pull down from the top of the list |
| Load new posts | Tap the Load new posts floating button |
| Change your password | Settings → Account → Password |
| Change your handle | Settings → Account → Handle |
| Verify your email | Settings → Account → Verify your email |
| Create an app password | Settings → Privacy and security → App passwords → Add App Password |
| Change notification settings | Settings → Notifications → Select the notification type |
| Change who can message you | Messages → Gear icon → Allow new messages from |
| Edit your profile | Go to your profile → Tap Edit Profile |
| Export your data | Settings → Account → Export my data |
| Deactivate your account | Settings → Account → Deactivate account |
| Reactivate your account | Sign in → Tap Yes, reactivate my account |
| Create a starter pack | Your profile → Starter Packs section → Create |
| Add recommended feeds | Settings → Content & Media → Manage saved feeds |
| Change app language | Settings → Languages → App language |
| Change color mode | Settings → Appearance → Color mode |
| Enable 2FA | Settings → Privacy and security → Email 2FA → Enable |
| Block a user | Go to their profile → Three-dot menu → Block |
| Report content | Three-dot menu on a post or profile → Report |
| Delete a conversation | Swipe left on the conversation row → Delete |
| Document Section | Source Screen(s) | Route(s) |
|---|---|---|
| Chapter 3.1: Chat List | Chat List | /messages/chat-list |
| Chapter 3.2: Inbox | Inbox | /messages/inbox |
| Chapter 3.3: Conversation | Conversation | /messages/conversation |
| Chapter 3.4: Messages Settings | Settings (Messages) | /messages/settings |
| Chapter 4.1: Search Shell | Shell (Search) | /search/shell |
| Chapter 4.2: Search Results | Search Results | /search/search-results |
| Chapter 4.3: Explore | Explore, Explore Trending Videos, Explore Trending Topics, Explore Suggested Accounts, Explore Recommendations, Explore Interests Card | /search/explore, /search/modules/* |
| Chapter 4.4: Hashtag Screen | Hashtag | /hashtag |
| Chapter 4.5: Topic Screen | Topic | /topic |
| Chapter 5.1: Feed Screen | Feed | /src/view/com/feeds/feed |
| Chapter 5.2: Saved Feeds | Saved Feeds | /saved-feeds |
| Chapter 5.3: No Saved Feeds | No Saved Feeds Of Any Type | /feeds/no-saved-feeds-of-any-type |
| Chapter 5.4: No Following Feed | No Following Feed | /feeds/no-following-feed |
| Chapter 5.5: No Feeds Pinned | No Feeds Pinned | /home/no-feeds-pinned |
| Chapter 6.1: Profile Header Standard | Profile Header Standard, Display Name, Handle, Metrics, Growable Avatar, Growable Banner, Status Bar Shadow, Suggested Follows | /profile/header/* |
| Chapter 6.2: Profile Header Labeler | Profile Header Labeler | /profile/header/profile-header-labeler |
| Chapter 6.3: Profile Followers | Profile Followers | /profile/profile-followers |
| Chapter 6.4: Profile Follows | Profile Follows | /profile/profile-follows |
| Chapter 6.5: Known Followers | Known Followers | /profile/known-followers |
| Chapter 6.6: Profile Search | Profile Search | /profile/profile-search |
| Chapter 6.7: Post Liked By | Post Liked By | /post/post-liked-by |
| Chapter 6.8: Post Reposted By | Post Reposted By | /post/post-reposted-by |
| Chapter 6.9: Post Quotes | Post Quotes | /post/post-quotes |
| Chapter 6.10: Profile Labeler Liked By | Profile Labeler Liked By | /profile/profile-labeler-liked-by |
| Chapter 6.11: Profile Error State | Error State | /profile/error-state |
| Chapter 7.1: Activity List | Activity List | /notifications/activity-list |
| Chapter 8.1: Starter Pack Screen | Starter Pack | /starter-pack |
| Chapter 8.2: Starter Pack Landing | Starter Pack Landing | /starter-pack/starter-pack-landing |
| Chapter 8.3: Wizard Step Details | Step Details | /starter-pack/wizard/step-details |
| Chapter 8.4: Wizard Step Profiles | Step Profiles | /starter-pack/wizard/step-profiles |
| Chapter 8.5: Wizard Step Feeds | Step Feeds | /starter-pack/wizard/step-feeds |
| Chapter 9.1: Splash Screen | Splash | /src/view/com/auth/splash |
| Chapter 9.2: Login Form | Login Form | /login/login-form |
| Chapter 9.3: Choose Account Form | Choose Account Form | /login/choose-account-form |
| Chapter 9.4: Forgot Password Form | Forgot Password Form | /login/forgot-password-form |
| Chapter 9.5: Set New Password Form | Set New Password Form | /login/set-new-password-form |
| Chapter 9.6: Password Updated Form | Password Updated Form | /login/password-updated-form |
| Chapter 9.7: Signup Flow | State (Signup), Back Next Buttons, Policies, Captcha Web, Captcha Web View, Handle Suggestions | /signup/* |
| Chapter 9.8: Signup Queued | Signup Queued | /signup-queued |
| Chapter 9.9: Onboarding Wizard | State (Onboarding), Layout (Onboarding), Avatar Creator Items, Avatar Creator Circle, Avatar Circle, Interest Button, Starter Pack Card (Onboarding), Value Proposition Pager, Images | /onboarding/* |
| Chapter 9.10: Find Contacts Flow | Find Contacts Flow, Index.web (Find Contacts Intro), Index.web (Find Contacts) | /find-contacts-flow, /onboarding/step-find-contacts* |
| Chapter 10.1: Settings Home | Settings | /settings |
| Chapter 10.2: Account Settings | Account Settings | /settings/account-settings |
| Chapter 10.3: Privacy and Security | Privacy And Security Settings | /settings/privacy-and-security-settings |
| Chapter 10.4: Appearance Settings | Appearance Settings | /settings/appearance-settings |
| Chapter 10.5: Accessibility Settings | Accessibility Settings | /settings/accessibility-settings |
| Chapter 10.6: Language Settings | Language Settings | /settings/language-settings |
| Chapter 10.7: Content and Media | Content And Media Settings | /settings/content-and-media-settings |
| Chapter 10.8: Following Feed Preferences | Following Feed Preferences | /settings/following-feed-preferences |
| Chapter 10.9: Thread Preferences | Thread Preferences | /settings/thread-preferences |
| Chapter 10.10: External Media | External Media Preferences | /settings/external-media-preferences |
| Chapter 10.11: Interests Settings | Interests Settings | /settings/interests-settings |
| Chapter 10.12: App Passwords | App Passwords | /settings/app-passwords |
| Chapter 10.13: Automation Label | Automation Label Settings | /settings/automation-label-settings |
| Chapter 10.14: Verification Settings | Verification Settings | /moderation/verification-settings |
| Chapter 10.15: Activity Privacy | Activity Privacy Settings | /settings/activity-privacy-settings |
| Chapter 10.16: Find Contacts Settings | Find Contacts Settings | /settings/find-contacts-settings |
| Chapter 10.17: About Settings | About Settings | /settings/about-settings |
| Chapter 10.18: App Icon Settings | Index.web (App Icon Settings), Settings List Item, Settings List Item.web, App Icon Image, Types (App Icon Settings) | /settings/app-icon-settings/* |
| Chapter 11.2: Mention Notifications | Mention Notification Settings | /settings/notification-settings/mention-notification-settings |
| Chapter 11.3: Reply Notifications | Reply Notification Settings | /settings/notification-settings/reply-notification-settings |
| Chapter 11.4: Like Notifications | Like Notification Settings | /settings/notification-settings/like-notification-settings |
| Chapter 11.5: Repost Notifications | Repost Notification Settings | /settings/notification-settings/repost-notification-settings |
| Chapter 11.6: Quote Notifications | Quote Notification Settings | /settings/notification-settings/quote-notification-settings |
| Chapter 11.7: New Follower Notifications | New Follower Notification Settings | /settings/notification-settings/new-follower-notification-settings |
| Chapter 11.8: Reposts on Reposts | Reposts On Reposts Notification Settings | /settings/notification-settings/reposts-on-reposts-notification-settings |
| Chapter 11.9: Likes on Reposts | Likes On Reposts Notification Settings | /settings/notification-settings/likes-on-reposts-notification-settings |
| Chapter 11.10: Miscellaneous Notifications | Miscellaneous Notification Settings | /settings/notification-settings/miscellaneous-notification-settings |
| Chapter 11.11: Activity Notification Settings | Activity Notification Settings | /settings/notification-settings/activity-notification-settings |
| Chapter 12.1: Deactivated Account | Deactivated | /deactivated |
| Chapter 12.2: Takendown Account | Takendown | /takendown |
| Chapter 12.3: List Hidden | List Hidden | /list/list-hidden |
| Chapter 12.4: System Log | Log | /log |
| Chapter 12.5: Error Screen | Error | /src/view/com/util/error |
| Common Features Guide 2.6: Swipe Gestures | Gesture Action | /src/lib/custom-animations/gesture-action |
| Common Features Guide 2.1: Lists | Draggable Scroll, Expo Scroll Forwarder | /src/view/com/pager/draggable-scroll, /modules/expo-scroll-forwarder/* |
| Supporting infrastructure (not user-facing chapters) | Utils (Search), Form Container, State (Onboarding), State (Signup), State (Starter Pack Wizard), Types (various), Const (Post Thread), Util (Onboarding), Shared Preferences Tester, Emoji Picker, GIF View, Value Proposition Pager Shared, Images (Onboarding), Placeholder Canvas, Feed Section (Profile List), About Section (Profile List), Labels (Profile Sections), Feed (Profile Sections), Status Bar Shadow, Status Bar Shadow.web, Shell (Profile Header), Legacy Notification Settings, Video Feed (Web), Index.web (Find Contacts Intro), Index.web (Find Contacts) | Various |
All 131 screens listed in the assessment scope are covered in this document. The majority of screens are fully documented. Several screens are infrastructure or utility modules (not user-facing screens) and are noted below.
The following assessed items are code modules rather than rendered screens. They have no direct user-facing UI and are documented only where they contribute to user-facing behavior described in other chapters:
| Workflow | Status | Notes |
|---|---|---|
| Full notification settings navigation | Fully documented | All 10 notification type sub-screens are covered |
| Starter pack creation wizard | Fully documented | All 3 steps covered |
| Signup flow | Fully documented | All 3 steps covered |
| Onboarding wizard | Fully documented | All steps covered |
| Profile editing | Fully documented | Covered within Profile Header Standard chapter |
| Account deletion | Fully documented | Covered within Account Settings chapter |
| Custom domain handle setup | Steps 1–3 could not be verified from available documentation | The DNS verification steps are described at a high level; the exact DNS record format and verification timing are not confirmed |
| Find Contacts flow (native) | Steps 2–3 could not be verified from available documentation | The phone number verification and contact matching steps are handled by the FindContactsFlow component, which is referenced but not fully documented in the assessed screens |
| Germ DM integration | Partially documented | The Germ DM feature is documented within the Profile Header Standard chapter, but the Germ DM service itself is external and its full behavior is not documented |
The following information was inferred from technology conventions or patterns rather than being explicitly stated in the source documentation. Verification is recommended before distribution:
Session timeout behavior — The documentation states sessions remain active until explicitly signed out, but does not specify whether there is an automatic timeout period. Recommendation: Verify with the product owner whether sessions expire after a period of inactivity.
Maximum starter pack size — Referenced as STARTER_PACK_MAX_SIZE but the exact number is not stated in the documentation. Recommendation: Verify the exact limit with the engineering team and add it to Chapter 8.
Maximum labeler subscriptions — Referenced as MAX_LABELERS and described as "twenty" in the UI copy. Recommendation: Verify this number with the product owner and confirm it matches the current limit.
App password name maximum length — The documentation mentions a minimum of 4 characters but does not state a maximum. Recommendation: Verify the maximum length with the engineering team and add it to the App Passwords field reference table.
Video Feed screen — The Video Feed screen (/video-feed/index.web) is documented as an unimplemented stub that renders nothing. The native implementation is not included in the assessed documentation. Recommendation: Assess the native video feed implementation and add a chapter when it is available.
Settings List Item (App Icon Settings) — This component is documented as an empty stub with no implementation. Recommendation: Verify with the engineering team whether this component is intentionally empty or is a work in progress.
| Priority | Section | WHO to Consult | WHAT to Ask | WHERE to Insert |
|---|---|---|---|---|
| High | Chapter 9.7: Signup Flow | The QA team lead | What is the exact behavior of the CAPTCHA step on each platform (iOS, Android, web)? Are there any platform-specific differences in the verification flow? | Chapter 9.7, Step 3 description |
| High | Chapter 9.10: Find Contacts Flow | The product owner | What are the exact steps in the phone number verification sub-step? What happens if verification fails? | Chapter 9.10, What You'll See section |
| High | Chapter 8.1: Starter Pack Screen | The engineering team | What is the exact value of STARTER_PACK_MAX_SIZE? |
Chapter 8.1, Tips & Best Practices |
| Medium | Chapter 1.3: Getting Started | The product owner | Is there an automatic session timeout? If so, how long is it? | Chapter 1.3, Session Timeout section |
| Medium | Chapter 10.12: App Passwords | The engineering team | What is the maximum character length for an app password name? | Chapter 10.12, Field Reference table |
| Medium | Chapter 6.2: Profile Header Labeler | The product owner | What is the exact value of MAX_LABELERS? Is "twenty" still accurate? |
Chapter 6.2, Tips & Best Practices |
| Low | Chapter 10.2: Account Settings | The engineering team | What are the exact DNS record formats required for custom domain handle verification? | Chapter 10.2, Changing Your Handle section |
| Low | Video Feed | The product owner | When will the Video Feed feature be available? Should it be documented now or deferred? | New chapter to be added when available |