Mastodon
  • What is Mastodon?
  • Using Mastodon
    • Signing up for an account
    • Setting up your profile
    • Posting to your profile
    • Using the network features
    • Quoting other posts
    • Dealing with unwanted content
    • Promoting yourself and others
    • Set your preferences
    • More settings
    • Using Mastodon externally
    • Moving or leaving accounts
    • Official iOS and Android apps
    • Running your own server
  • Running Mastodon
    • Preparing your machine
    • Installing from source
    • Configuring your environment
    • Configuring full-text search
    • Installing optional features
      • Object storage
      • Onion services
      • Captcha
      • Single Sign On
    • Setting up your new instance
    • Using the admin CLI
    • Upgrading to a new release
    • Backing up your server
    • Migrating to a new machine
    • Scaling up your server
    • Moderation actions
    • Troubleshooting errors
      • Database index corruption
    • Webhooks
    • Roles
  • Developing Mastodon apps
    • Getting started with the API
    • Playing with public data
    • Obtaining client app access
    • Logging in with an account
    • Libraries and implementations
    • Implementing quote posts
    • Implementing Collections
  • Contributing to Mastodon
    • Technical overview
    • Setting up a dev environment
    • Code structure
    • Routes
    • Security issues and responsible disclosure
    • Frontend guide
      • Components
      • State management
      • CSS and styling
      • Creating themes
      • Design tokens reference
  • Spec compliance
    • ActivityPub
    • WebFinger
    • Security
    • Microformats
    • OAuth
    • Bearcaps
  • REST API
    • Datetime formats
    • Guidelines and best practices
    • OAuth Tokens
    • OAuth Scopes
    • Rate limits
  • API Methods
    • accounts
      • blocks
      • bookmarks
      • domain_blocks
      • endorsements
      • favourites
      • featured_tags
      • filters
      • follow_requests
      • followed_tags
      • mutes
      • preferences
      • reports
      • suggestions
      • tags
    • admin
      • accounts
      • canonical_email_blocks
      • dimensions
      • domain_allows
      • domain_blocks
      • email_domain_blocks
      • ip_blocks
      • measures
      • reports
      • retention
      • trends
    • Annual reports
    • apps
      • emails
      • oauth
    • async_refreshes
    • collections
    • grouped notifications
    • health
    • instance
      • announcements
      • custom_emojis
      • directory
      • trends
    • notifications
      • push
    • oembed
    • profile
    • proofs
    • search
    • statuses
      • media
      • polls
      • scheduled_statuses
    • timelines
      • conversations
      • lists
      • markers
      • streaming
  • API Entities
    • Account
    • AccountWarning
    • Admin::Account
    • Admin::CanonicalEmailBlock
    • Admin::Cohort
    • Admin::Dimension
    • Admin::DomainAllow
    • Admin::DomainBlock
    • Admin::EmailDomainBlock
    • Admin::Ip
    • Admin::IpBlock
    • Admin::Measure
    • Admin::Report
    • Announcement
    • AnnualReport
    • Appeal
    • Application
    • AsyncRefresh
    • Collection
    • CollectionItem
    • CollectionWithAccounts
    • Context
    • Conversation
    • CustomEmoji
    • DomainBlock
    • Error
    • ExtendedDescription
    • FamiliarFollowers
    • FeatureApproval
    • FeaturedTag
    • Filter
    • FilterKeyword
    • FilterResult
    • FilterStatus
    • IdentityProof
    • Instance
    • List
    • Marker
    • MediaAttachment
    • Notification
    • NotificationFallback
    • NotificationPolicy
    • NotificationRequest
    • Poll
    • Preferences
    • PreviewCard
    • PreviewCardAuthor
    • PrivacyPolicy
    • Profile
    • Quote
    • QuoteApproval
    • Reaction
    • Relationship
    • RelationshipSeveranceEvent
    • Report
    • Role
    • Rule
    • ScheduledStatus
    • Search
    • ShallowQuote
    • ShallowTag
    • Status
    • StatusEdit
    • StatusSource
    • Suggestion
    • Tag
    • TermsOfService
    • Token
    • Translation
    • V1::Filter
    • V1::Instance
    • V1::NotificationPolicy
    • WebPushSubscription

Posting to your profile

Sharing your thoughts has never been more convenient.

    • Text
      • Links
      • Mentions
      • Hashtags
      • Custom emoji
    • Attachments
      • Files
      • Polls
    • Post visibility & privacy
      • Public
      • Quiet public
      • Followers
      • Private mention
    • Visibility of Replies
    • Content Warnings
Compose form with optional Content Warning enabled

Compose form with optional Content Warning enabled

Text

The main body of each status update can be composed using the text field. The default character limit is 500 characters.

Links

Links must start with http(s):// and are counted as 23 characters regardless of length

Links must start with http(s):// and are counted as 23 characters regardless of length

If you include links in your post, they must begin with http:// or https://. All links are counted as 23 characters, no matter how long they actually are, so there is no need to use a link shortener to save characters. In fact, using a link shortener is actively discouraged.

Mentions

Suggested mentions for both local and remote users

Suggested mentions for both local and remote users

You can mention users by typing out their full address, e.g. @alice@example.com. Note that any usage of@word will be interpreted as mentioning the local user with the username word, if that user exists. Only the username part will count against your character limit – the domain is not counted.

Hashtags

Hashtags are autosuggested with usage frequency

Hashtags are autosuggested with usage frequency

You can use a #hashtag to make your post discoverable to anyone searching for that hashtag. Hashtags can contain alphanumeric characters and underscores, but cannot contain numbers only.

Custom emoji

An array of custom emoji are available in the selector

An array of custom emoji are available in the selector

Each server offers a set of custom emoji you can use, similar to Slack or Discord. You can use an emoji using its shortcode like :thounking: or by clicking the emoji face in the compose box and browsing through the “Custom” category. You can also browse through and search for standard Unicode emoji.

To choose a different emoji skin tone, use the selector next to the emoji search box.

Attachments

You can attach either files or a poll to your status.

Files

New post with a thumbnail for attached media, with an Edit button for additional options

New post with a thumbnail for attached media, with an Edit button for additional options

Click the photo stack to attach a file to your post. You can attach the following:

  • Images (PNG, JPG, HEIF, WEBP, AVIF) up to 16MB. Images will be downscaled to 8.3 megapixels (enough for a 3840x2160 image). Up to 4 images can be attached, per post.
  • Animated GIFs (GIFV) up to 16MB are converted to soundless MP4s. GIF dimensions must be less than 1MP (1280x720). You can also upload soundless MP4 and WebM files, which will be looped in clients the same way as an animated GIF. Only one animated GIF can be attached, per post.
    • Static GIF files have the same limits applied to them as animated GIF files. If you are having issues uploading these images, you will need to convert it to another supported image format.
  • Videos (MP4, M4V, MOV, WebM) up to 99MB. Video will be transcoded to H.264 MP4 with a maximum bitrate of 1300kbps and framerate of 120fps. Only one video can be attached, per post.
  • Audio (MP3, OGG, WAV, FLAC, OPUS, AAC, M4A, 3GP) up to 99MB. Audio will be transcoded to MP3 using V2 VBR (roughly 192kbps). Only one audio file can be attached, per post.

Editing media

Edit media to add a media description (ALT text) or choose a focal point for the preview thumbnail

Edit media to add a media description (ALT text) or choose a focal point for the preview thumbnail

By clicking the “Edit” link on the attachment thumbnail, you can load a modal which will allow adding a media description or changing the focal point. Although optional, it is a good idea to add media descriptions that briefly describe what is in contained in the media. These descriptions will be shown when the media fails to load for any reason, or when accessed by screen readers and other assistive technology. Setting the focal point is also optional, but can make preview thumbnails looks better when they are not shown in a 16:9 aspect ratio.

Polls

New post with a poll in a ‘pick one’ style, that expires after one day

New post with a poll in a ‘pick one’ style, that expires after one day

Click the bar graph icon to attach a poll to your post.

  • You can add up to 4 choices. Each choice can be up to 25 characters.
  • Polls default to pick-one/single-choice. Click on the radio button to switch your poll to any-of/multiple-choice checkboxes.
  • Polls can be set to expire in 5 minutes, 30 minutes, 1 hour, 6 hours, 1 day, 3 days, or 7 days.

Post visibility & privacy

Posts can be published with one of four different post visibility levels. You can set a default posting visibility, and you can change the visibility for a draft post by opening the “Visibility and interactions” dialog from the button above the text of the post.

The ‘visibility and interactions’ dialog, showing the available options for post visibility

The ‘visibility and interactions’ dialog, showing the available options for post visibility

The following table shows where posts made with a certain privacy setting will be visible. “Public feeds” includes search results, trending, and live feeds.

SettingPublic feedsProfile viewHome feeds
PublicVisibleVisibleVisible
Quiet publicHiddenVisibleVisible
FollowersHiddenVisible for followers and mentioned accountsVisible for followers and mentioned accounts
Private mentionHiddenVisible for mentioned accountsVisible for mentioned accounts
Direct links (permalinks) to posts with “Followers” or “Private mention” visibility can only be accessed by logged-in users eligible to see the post. Note that opening permalinks in a browser will redirect to the origin server of the post (where you might not have an account).
If you want to open a post on the server that your account is on, log into your server, paste the link into the search field and select “Open URL on Mastodon”.

Below you’ll find a detailed description of each post visibility setting.

Public

The default option.

  • Anyone can see your post at the permalink without logging in.
  • Your post will appear in-app in the public timelines and on your profile.
  • Your followers will receive the post in their home feeds, and anyone mentioned will receive the post in notifications.
  • Your post can be boosted into other home feeds.

Quiet public

The same as public, but with the following differences:

  • Your post will not appear in Mastodon’s live feeds or explore features.
  • Your post will not appear in search results, even if your account has opted-in to full text search.

This option was previously known as “Unlisted”.

Followers

A more limited delivery option.

  • Only accounts following you and those that were mentioned in the post can see your post.
  • Your post will not appear in-app except to your followers and anyone mentioned.
  • Your followers will receive the post in their home feeds, and anyone mentioned will receive the post in notifications.
  • Your post cannot be boosted, except by yourself.
To effectively publish followers-only posts, you must disable the “Automatically accept new followers” option – otherwise anyone could follow you to view older posts.
Please mind that post privacy on Mastodon is per-post, rather than account-wide. There is no way to make past public posts private.

Private mention

Send your post only to mentioned users.

  • Only accounts that were mentioned in your post can see it.
  • Your post will not appear in-app except to anyone mentioned.
  • Anyone mentioned will receive the post in notifications. It will not appear in the home timeline.
  • Your post cannot be boosted.

This option was previously known as “Specific people”.

Do not share dangerous and sensitive information over private mentions. Mastodon is not an encrypted messaging app like Signal or Matrix, and the database administrators of the sender’s and recipient’s servers may obtain access to the text.

Visibility of Replies

Your replies will only appear on your followers’ Home feeds if they follow both you and the person you are replying to.

Some notes about this:

  • A new post you make which starts with an @mention is not considered a reply, so it will show up on the Home feed of all your followers.
  • The reply’s visibility (Public vs Unlisted vs Followers-only) does not affect whether it shows up on the Home feed.
  • If your post is public and contains a followed hashtag, it will be shown on the Home feed regardless of whether it is a reply.
  • Other Fediverse software may show all of your replies on the Home feed, no matter who the posts are replies to.

Content Warnings

Expanded post with a content warning that also has attached images obscured

Expanded post with a content warning that also has attached images obscured

One feature that Mastodon provides that you may not have seen on other social networks is the option to attach a content warning to your posts. When a content warning is included, the status content will be collapsed by default, and only the Content Warning will be shown, similarly to an email subject line or a “read more” break. This can be used to add a summary or subject for your post, to collapse long posts, or to otherwise provide context or setup for the body of the post.

When media is attached, a checkbox appears to allow you to “mark media as sensitive”. This hides the full media behind a blurred thumbnail by default. Adding a CW to a post automatically marks the media as sensitive as well.

Last updated July 8, 2026 · Improve this page
Also available in: 简体中文 日本語 Polski

Sponsored by

Dotcom-Monitor LoadView Stephen Tures Swayable SponsorMotion

Join Mastodon · Blog ·

View source · CC BY-SA 4.0 · Imprint