You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A decentralized, open-source microblogging platform and the flagship of the Fediverse (federated universe). Mastodon's mental model is a network of interconnected communities — unlike centralized platforms (Twitter, Threads), Mastodon consists of thousands of independently operated "instances" (servers) that communicate via the ActivityPub protocol. Each instance has its own moderation, rules, and community culture, but users can follow and interact across instances seamlessly. Key differentiators: decentralization (no single company controls it), no algorithmic feed (chronological only), no ads, content warnings (CW), 500-character posts ("toots"), granular privacy controls per post, robust moderation tools per instance, and full data portability (move your account between instances).
Site Map
├── Home Timeline
│ ├── Posts from Followed Accounts (chronological, no algorithm)
│ ├── Boosts (reposts from followed accounts)
│ ├── Replies (from followed accounts, if enabled)
│ └── No ads, no algorithmic insertion
├── Local Timeline
│ ├── All Public Posts from Your Instance (chronological)
│ ├── Shows your instance's community activity
│ └── Good for discovering instance neighbors
├── Federated Timeline
│ ├── All Public Posts Your Instance Knows About (from any instance)
│ ├── "Firehose" of the visible Fediverse from your instance's perspective
│ └── Can be overwhelming; useful for broad discovery
├── Explore
│ ├── Trending Posts (instance-level, curated by admins)
│ ├── Trending Hashtags
│ ├── Trending News Links
│ └── Suggested Accounts (instance-curated)
├── Search
│ ├── Posts (full-text, if instance enables it)
│ ├── People (@user@instance.social format)
│ ├── Hashtags (#tag)
│ └── Cross-instance search (limited to known posts)
├── Compose Post ("Toot")
│ ├── Text (up to 500 chars default, some instances allow more)
│ ├── Media (images up to 4, video, audio, poll)
│ ├── Content Warning / Subject (CW, collapsible)
│ ├── Visibility
│ │ ├── 🌐 Public (visible everywhere, all timelines)
│ │ ├── 🔓 Unlisted (visible on profile, not in timelines)
│ │ ├── 🔒 Followers-only (only followers see it)
│ │ └── ✉️ Mentioned Only (direct message, only @mentioned users)
│ ├── Language Selector
│ ├── Poll (multiple choice, single choice, duration)
│ ├── Emoji Picker (custom instance emoji + standard)
│ ├── Scheduled Post (Mastodon 4.2+)
│ ├── Alt Text for Images (strongly encouraged by community)
│ └── Thread (reply to your own post to create a thread)
├── Post Detail
│ ├── Post Content (text, media, CW)
│ ├── Author (avatar, display name, @user@instance)
│ ├── Engagement: Replies Count, Boosts Count, Favorites Count
│ ├── Reply Thread (chronological tree, not algorithmic)
│ ├── Actions
│ │ ├── Reply
│ │ ├── Boost (repost to your followers, public posts only)
│ │ ├── Favorite (★, like)
│ │ ├── Bookmark (private save)
│ │ ├── Share (copy link, embed)
│ │ └── More (⋯): Mute Conversation, Block, Report, Filter, Pin, Delete, Edit
│ ├── Boosted By (list of who boosted)
│ └── Favorited By (list of who favorited)
├── Profile
│ ├── Header Image, Avatar
│ ├── Display Name, @user@instance
│ ├── Bio (rich text, links, custom fields for verification)
│ ├── Metadata Fields (up to 4: website, pronouns, etc., with link verification ✅)
│ ├── Stats: Posts, Following, Followers
│ ├── Follow / Unfollow / Request Follow (if locked account)
│ ├── Tabs: Posts, Posts & Replies, Media, About
│ ├── Pinned Posts (up to 5)
│ ├── Featured Hashtags (shown on profile)
│ └── Moved Account Notice (if migrated to new instance)
├── Notifications
│ ├── All
│ ├── Mentions
│ ├── Favorites
│ ├── Boosts
│ ├── Follows
│ ├── Follow Requests (if account is locked)
│ ├── Polls (your polls ended, polls you voted in ended)
│ ├── Updates (posts from accounts you've enabled notifications for)
│ └── Admin (reports, new sign-ups — for instance admins)
├── Direct Messages
│ ├── Conversations (mentioned-only posts grouped by participants)
│ ├── NOT end-to-end encrypted (visible to instance admins)
│ └── Conversation Thread
├── Bookmarks
│ ├── Private Saved Posts (only visible to you)
│ └── Chronological
├── Favorites
│ ├── Posts You've Favorited
│ └── Chronological
├── Lists
│ ├── User-Created Lists (custom timelines)
│ ├── Add/Remove Accounts to List
│ ├── List Timeline (posts from list members only)
│ └── List Settings (show replies: all/followed/none)
├── Filters
│ ├── Content Filters (keyword/phrase-based)
│ │ ├── Filter Contexts (home, notifications, public, threads, profiles)
│ │ ├── Action: Hide or Warn (show with CW-style toggle)
│ │ ├── Whole Word Match
│ │ └── Expiration (temporary or permanent)
│ └── Manage Filters
├── Hashtag Pages
│ ├── #tag Timeline (all posts with hashtag your instance knows about)
│ ├── Follow Hashtag (posts appear in home timeline)
│ └── Featured Hashtags (show on your profile)
├── Preferences / Settings
│ ├── Appearance
│ │ ├── Interface Language
│ │ ├── Theme (dark, light, high contrast)
│ │ ├── Layout: Single-column (default) / Advanced (multi-column TweetDeck-style)
│ │ ├── Animations (play/pause)
│ │ └── Sensitive Media (always show / always hide)
│ ├── Notifications
│ │ ├── Per-type toggles (mentions, favorites, boosts, follows, polls)
│ │ ├── Email Notifications
│ │ └── Push Notifications
│ ├── Profile
│ │ ├── Display Name, Bio, Avatar, Header
│ │ ├── Profile Metadata Fields (4 custom key-value)
│ │ ├── Bot Account Toggle
│ │ ├── Lock Account (require follow approval)
│ │ ├── Discoverable (opt-in to search / suggestions)
│ │ └── Featured Hashtags
│ ├── Posting Defaults
│ │ ├── Default Visibility (public/unlisted/followers-only)
│ │ ├── Default Language
│ │ ├── Sensitive Media Default
│ │ └── Default Content Type (plain text / Markdown — instance-dependent)
│ ├── Filters (manage keyword filters)
│ ├── Follows and Followers
│ │ ├── Follow Requests (pending)
│ │ ├── Follows / Followers Lists
│ │ └── Relationships (mutual, blocking, muting)
│ ├── Import / Export
│ │ ├── Export: Following list, Blocked list, Muted list, Bookmarks, Lists (CSV)
│ │ ├── Import: Following, Blocks, Mutes (CSV — for migration)
│ │ └── Request Archive (full data export)
│ ├── Account Migration
│ │ ├── Move to Different Instance
│ │ ├── Redirect Profile (old → new)
│ │ └── Followers Auto-migrate
│ ├── Security
│ │ ├── Two-Factor Authentication (TOTP)
│ │ ├── Authorized Applications (OAuth apps)
│ │ └── Active Sessions
│ └── Delete Account
├── Administration (Instance Admins)
│ ├── Dashboard (sign-ups, active users, instance stats)
│ ├── Moderation
│ │ ├── Reports (from local and remote users)
│ │ ├── Accounts (warn, freeze, suspend)
│ │ ├── Audit Log
│ │ └── Pending Accounts (if approval-required instance)
│ ├── Federation
│ │ ├── Known Instances (peers)
│ │ ├── Domain Blocks (block, silence, or reject entire instances)
│ │ ├── Domain Allows (allowlist mode)
│ │ └── Relay Management
│ ├── Server Settings
│ │ ├── Instance Name, Description, Rules
│ │ ├── Registration Mode (open/approval/closed)
│ │ ├── Content Policies
│ │ ├── Custom Emoji (upload for instance)
│ │ └── Announcements (instance-wide banners)
│ ├── Email Configuration
│ ├── Roles & Permissions (custom roles)
│ ├── Trends (approve/reject trending content)
│ └── Invites (generate invite links)
└── Third-Party Clients
├── Mastodon is API-first: many alternative clients exist
├── iOS: Ivory, Ice Cubes, Mona, Toot!
├── Android: Tusky, Megalodon, Fedilab
├── Desktop: Whalebird, Hyper, Sengi
└── Multi-column: Pinafore (web), Elk (web)
Navigation Model
Layer
Pattern
Behavior
Single-Column (Default)
Desktop: centered column with top tabs. Mobile: bottom tab bar
🌐 Public: Visible in all timelines (home, local, federated, profile)
🔓 Unlisted: Visible on profile and to followers, but NOT in public timelines
🔒 Followers-only: Only followers can see (not boostable)
✉️ Direct / Mentioned-only: Only mentioned users can see (not truly private — instance admins can read)
ActivityPub Federation
Status → serialized as ActivityPub Activity → sent to followers' instances → rendered on remote timelines
Follow → Follow request sent to target instance → accepted/rejected → federated timeline populates
Account Migration → Redirect + follower migration via ActivityPub Move activity
User Flows
Read Home Timeline
Open App → Home Timeline → Scroll (chronological) → Favorite → Boost → Reply → Continue
Discover via Local Timeline
Local Tab → See Instance Community Posts → Find Interesting Account → View Profile → Follow
Post with Content Warning
Compose → Write Text → Toggle CW → Write Warning Label (e.g., "Politics", "Spoiler") → Attach Media + Alt Text → Set Visibility → Post
Follow Across Instances
Find @user@other-instance.social → Copy Full Handle → Search in Your Instance → Follow → Appears in Home Timeline
Migrate Instance
New Instance → Create Account → Old Instance: Settings → Account → Move → Enter New Account → Followers Auto-migrate → Old Profile Shows Redirect
Follow a Hashtag
Search → #topic → Hashtag Page → [Follow] → Posts with #topic Appear in Home Timeline
Report Content
Post → More (⋯) → Report → Select Category → Optional: Forward to Remote Instance → Submit → Instance Moderator Reviews
Each instance is independently operated:
- Instance admin sets rules, registration policy, domain blocks
- Moderation is local (your instance admin handles your reports)
- Domain blocks: instance-level silencing or suspending entire remote instances
- Users can migrate between instances (take followers, not posts)
- No central authority — decentralized governance
Privacy Philosophy
Chronological timelines only (no engagement-maximizing algorithm)
No ads, no tracking, no data selling
Per-post visibility controls
Content warnings as a cultural norm
Full data export and account migration
Instance admins have access to local data (choose your instance wisely)
Direct messages are NOT end-to-end encrypted (visible to instance admins)