Mastodon Post Template
Platform Specifications
- Character Limit: 500 characters default (instance-dependent, some allow 1000-5000)
- Media Support: Up to 4 images, 1 video, 1 audio file
- Link Handling: Links displayed in full, but don’t count toward character limit
- Thread Support: Unlimited posts per thread
- Protocol: ActivityPub (federated, decentralized social network)
- Instance-Specific: Features vary by server (emoji reactions, quote posts, etc.)
Platform Philosophy
Mastodon is part of the Fediverse:
- Federation: Independent servers that talk to each other
- No Algorithms: Chronological feeds, no manipulation
- User Control: Pick your server, your rules, your community
- Privacy-First: Posts can be public, unlisted, followers-only, or direct
- Community Moderation: Each instance has its own rules and moderators
- No Ads: Non-commercial, donor-supported
Content Guidelines
Voice & Tone
- Considerate: Content warnings (CW) are cultural norms, not censorship
- Community-Minded: Engage locally (your instance) and federally (broader fediverse)
- Authentic: No corporate speak or engagement optimization
- Thoughtful: Favor substance over hot takes
- Respectful: Strong norms around consent, accessibility, and inclusivity
Best Practices
- Content Warnings: Use CWs liberally for anything potentially upsetting
- Alt Text: Required for accessibility (images without alt text are hidden for some)
- Hashtags: Primary discovery mechanism (no algorithm to surface content)
- Visibility Levels: Choose appropriate privacy for each post
- Local vs Federated: Engage with your instance community
- Link Previews: Don’t count toward character limit (unlike Twitter)
- Image Captions: Mastodon culture strongly values image descriptions
Post Visibility Levels
Mastodon offers granular privacy controls:
Public
- Appears in public timelines
- Visible to everyone, including non-followers
- Searchable via hashtags
- Use for: Announcements, public discussions, widely shareable content
Unlisted
- Visible to everyone who visits your profile
- Does NOT appear in public timelines
- Searchable via hashtags
- Use for: Conversations, replies, less promotional content
Followers-Only
- Only your followers can see it
- Not searchable
- Use for: Personal updates, community-specific discussions
Direct
- Only @mentioned people can see it
- Functions like a DM
- Use for: Private conversations
Content Warning (CW) Guidelines
CWs are a core Mastodon norm, not censorship:
When to Use CWs
- Politics: Political content (even mild)
- Current Events: News, disasters, crises
- Mental Health: Depression, anxiety, self-harm
- Violence: Even discussions of violence
- Food: Some users filter food talk (eating disorders)
- Eye Contact: Photos with direct eye contact
- Caps Lock: ALL CAPS text (accessibility)
- Long Posts: Threads or lengthy text (courtesy)
- Spoilers: Media spoilers of any age
- NSFW: Sexual content, nudity, profanity
CW Best Practices
- Descriptive: “politics, US election” not just “politics”
- Specific: “food, meat” not just “food”
- Multiple Topics: “politics, mental health” if both apply
- Expand Choice: Let readers decide what they want to see
Example CWs
CW: tech industry layoffs, job search
CW: python, code example
CW: long post, software architecture
CW: eye contact in photo
CW: spider (with photo)
CW: uspol, climate policy
Post Structure
Standard Post
[if applicable]
Thread Post (Opener)
[if applicable]
🧵 Thread ( posts)
Thread Post (Body)
/
Announcement
[if applicable]
Details:
•
•
•
# #
Question Post
[if applicable]
Boosts appreciated for reach!
#
Character Optimization
With 500 characters (and links not counting), you have more room than Twitter:
Content Strategies
- Use Full Sentences: No need for Twitter-style abbreviation
- Explain Context: You have space to set up your point
- Link Freely: Links don’t eat character count
- Thread When Deep: Use threads for long-form, but single posts work for more
- Line Breaks: Use white space for readability
What NOT to Optimize For
- ❌ Engagement metrics (no algorithm rewards this)
- ❌ Viral reach (federation is slower, more organic)
- ❌ Follower count (quality community > quantity)
- ✅ Thoughtful content your instance community values
- ✅ Discoverability via hashtags
- ✅ Respectful CW usage
Hashtag Strategy
Hashtags are THE discovery mechanism on Mastodon:
Best Practices
- CamelCase: #TypeScript not #typescript (screen reader accessibility)
- Specific Tags: #DevOps #Python #CloudNative
- Instance Tags: Some instances have local tags (#MastoArt, #FediBlock)
- Follow Tags: Users follow hashtags to curate their feeds
- Search Only: Only hashtags are searchable (full-text search disabled on most instances)
Recommended Tags by Topic
- Software Engineering: #Python #TypeScript #Rust #GoLang #DevOps
- Cloud/Infra: #CloudNative #Kubernetes #Docker #Terraform #AWS
- Data/AI: #DataScience #MachineLearning #AI #OpenData
- Open Source: #OpenSource #FOSS #FreeSoftware #IndieWeb
- Career: #TechJobs #RemoteWork #DevCommunity
- Learning: #TIL (Today I Learned), #100DaysOfCode
How Many Hashtags?
- No Penalty: Unlike Twitter, hashtags don’t hurt engagement
- Recommendations: 3-5 relevant tags per post
- Searchability: More specific tags > generic tags
Alt Text Guidelines
Mastodon has THE strongest alt text culture:
Writing Effective Alt Text
- Describe the Image: What does it show?
- Provide Context: Why is it relevant to your post?
- Read It Aloud: If it sounds natural, it’s good
- Length: Mastodon allows 1,500 chars for alt text
- Transcribe Text: If image contains text, include it in alt text
Examples
Alt: Terminal screenshot showing 'git push --force' command with
warning message: "You're about to overwrite main branch. Proceed? (y/n)"
Alt: Graph showing Python package download trends 2020-2024.
FastAPI shows exponential growth, surpassing Flask in 2023.
Alt: Photo of a golden retriever sitting at a desk with a laptop,
wearing glasses. Text overlay: "I have no idea what I'm doing."
Auto-Generated Alt Text
- Some instances offer OCR-based alt text generation
- ALWAYS review and edit AI-generated alt text
- Add context that AI can’t infer
Metadata Frontmatter
---
platform: mastodon
instance: mastodon.social # or your specific instance
scheduled_time: 2025-01-15T14:00:00Z
source_content: /content/blog/my-post.md
visibility: public # public, unlisted, followers, direct
sensitive: false # mark media as sensitive
content_warning: "python, code example" # or null if none
media:
- path: /assets/images/mastodon-image.png
alt_text: "Diagram showing microservices architecture"
description: "Architecture diagram with 5 services communicating via message queue"
hashtags:
- Python
- DevOps
- CloudNative
- OpenSource
language: en
reply_to: null # or post URL if threading
boost_from_account: yourbot@botsin.space # if cross-posting
---
Federation Considerations
Understanding Federation
- Local Timeline: Posts from your instance only
- Federated Timeline: Posts from instances your instance knows about
- Home Timeline: People you follow (regardless of instance)
Cross-Instance Etiquette
- Instance Rules: Respect rules of instances you interact with
- Content Warnings: Some instances have stricter CW norms
- Language: Tag posts with language (helps with filtering)
- Server Culture: Tech instances differ from art/activism instances
Boosting (Retooting)
- Boosting shares to your followers
- No quote posts (by design, prevents dunking culture)
- Check CWs before boosting (respect original poster’s intent)
- Add your own CW if boosting to a different audience
Community Norms
What Mastodon Users Value
- Thoughtfulness: Quality > quantity
- Accessibility: Alt text, CWs, readable formatting
- Consent: Don’t screenshot/share across platforms without asking
- No Metrics: Don’t post about follower counts or engagement
- No SEO: Don’t optimize for reach (there’s no algorithm)
- Community: Engage locally before broadcasting widely
Etiquette
- Introduce Yourself: #Introduction post when joining
- Bio: Fill out your bio (helps others decide to follow)
- Pinned Post: Pin an intro or important post to your profile
- Reply Permissions: Some users set “followers only” replies (respect this)
- Blocking: Liberal blocking is normalized and encouraged
- Reporting: Report to moderators if needed (each instance handles moderation)
Instance Selection
Choosing an instance matters:
Factors to Consider
- Rules: Moderation policies (strict vs. lenient)
- Theme: General vs. specific interest (tech, art, academia)
- Size: Large instances (more federated content) vs. small (tight community)
- Location: Data residency, local laws
- Uptime: Reliable admins, server stability
- Funding: Donation-based, sustainable?
Popular Tech-Focused Instances
- fosstodon.org: FOSS and tech community
- hachyderm.io: Tech professionals, well-moderated
- mastodon.social: General, large, well-known
- infosec.exchange: InfoSec community
- tech.lgbt: LGBTQ+ tech community
Common Mistakes to Avoid
- ❌ Not using content warnings (CW culture is strong)
- ❌ Posting images without alt text (accessibility norm)
- ❌ Using hashtags without CamelCase (#python vs #Python)
- ❌ Expecting viral reach (federation is slow, organic)
- ❌ Posting identical content from Twitter (different culture)
- ❌ Ignoring instance rules (each server has its own norms)
- ✅ Over-CW when in doubt (can always boost without CW)
- ✅ Engage with local timeline (build instance community)
- ✅ Use hashtags for discoverability (no algorithm to help)
- ✅ Respect different instance cultures (federation = diversity)
Cross-Posting from Other Platforms
If Cross-Posting from Twitter/Bluesky
- Edit for Culture: Don’t auto-post; adapt to Mastodon norms
- Add CWs: Twitter posts often need CWs on Mastodon
- Alt Text: Add it if missing
- Hashtags: Adjust for CamelCase
- Tone: Soften hot takes, add context
Bots and Automation
- Bot Accounts: Tag account as a bot in settings
- Instance Rules: Some instances ban bots or require approval
- Post Frequency: Don’t spam (no algorithm to hide you)
- Attribution: Clearly mark automated vs. manual posts
AI Prompt for Mastodon Post Generation
When using this template with AI:
Generate a Mastodon post about that:
- Stays under 500 characters (or if different)
- Includes a content warning if covering:
- Uses CamelCase hashtags:
- Assumes a privacy-conscious, accessibility-focused audience
- Sets visibility to:
- Includes alt text description for image:
- Avoids engagement optimization language
- Uses thoughtful, respectful tone
- References source content:
Key message:
Target instance:
CW tags:
Hashtags:
Useful Instance Features
Custom Emojis
- Each instance has custom emoji sets
- Use
:emoji_name:to insert - Custom reactions (if instance supports it)
Filters
- Keyword filters (hide posts matching terms)
- Duration: forever, 1 day, 1 week, etc.
- Apply to: home, public, notifications
Lists
- Curate feeds by topic or group
- Private (only you see them)
- Can include users you don’t follow
Bookmarks
- Save posts for later (private)
- No notification to original poster
- Searchable