Skip to content
Part of: How-to format
How-To

Mastodon Text Formatting: Bold, Italic & Fancy Fonts

Standard Mastodon (including mastodon.social) composes posts as plain text — there's no bold/italic button and **asterisks** stay literal. The glitch-soc fork lets opted-in users author Markdown, but that's one fork, not the whole fediverse. Display names and bios are always plain text. The one method that works on every instance, in posts and profiles, is pasting Unicode styled characters — with the caveat that screen readers mangle them, so use it sparingly.

Shreyas Bagal·Jun 24, 2026·7 min

Standard Mastodon (including mastodon.social) composes posts as plain text — there's no bold/italic button and **asterisks** stay literal. The glitch-soc fork lets opted-in users author Markdown, but that's one fork, not the whole fediverse. Display names and bios are always plain text. The one method that works on every instance, in posts and profiles, is pasting Unicode styled characters — with the caveat that screen readers mangle them, so use it sparingly.

Key takeaways

  • Standard Mastodon posts are plain text — vanilla instances like mastodon.social have no bold/italic button, and typing **bold** publishes the literal asterisks.
  • Markdown/HTML authoring is a glitch-soc fork feature you have to opt into; vanilla Mastodon doesn't parse it, so it's not a method you can rely on across the fediverse.
  • Mastodon will display incoming rich text authored elsewhere, but bold and italics survive while structural elements like headers and lists get flattened — and displaying it doesn't mean you can create it.
  • Display names and bios are plain-text fields on every Mastodon instance; the only way to make them look bold or italic is pasting Unicode styled characters.
  • Unicode styled text is the one cross-instance method for the look — but screen readers often skip or mispronounce it, so keep it short, decorative, and never essential.
Mastodon Text Formatting: Bold, Italic & Fancy Fonts
On this page

How-to guide

TL;DR Standard Mastodon composes posts as plain text — there is no bold or italic button, and typing **bold** publishes the literal asterisks. The glitch-soc fork lets opted-in users write Markdown, but that's one fork, not the whole fediverse. Display names and bios are plain text everywhere. The one method that works on every instance — in posts and profiles — is pasting Unicode styled characters, with the trade-off that screen readers mangle them, so use it sparingly.

Here's the honest answer most "Mastodon formatting" articles skip: on standard Mastodon, you cannot bold or italicize a post the way you would in a chat app. The composer is plain text. There's no formatting toolbar, no Markdown parsing, and if you type **bold** hoping for emphasis, your post ships with the asterisks showing. That's true on the flagship mastodon.social and most ordinary instances.

That doesn't mean styled text on Mastodon is impossible — it just means the path depends on which instance you're on, and that the only reliable cross-instance route is a different trick entirely. This guide breaks down exactly where native formatting works, where it doesn't, and how to get a bold, italic, or "fancy" look that copies and pastes anywhere on the fediverse.

The short version: Mastodon is plain text by default

On vanilla Mastodon, a post (historically called a "toot") is plain text. The composer gives you a character counter, content warnings, polls, media, and hashtags — but no bold, italic, or heading controls. Nothing wraps your text in styling, and Markdown symbols are not interpreted. So _italic_ stays _italic_, and **bold** stays **bold**.

This is the same situation you face on Instagram, X, or LinkedIn captions: the field is a plain-text box, so the only way to look bold is to use characters that are already bold. We'll get to that below. First, the cases where Mastodon genuinely does offer richer text — because they exist, but they're narrower than people assume.

Native formatting vs where you need Unicode

The single most important distinction on Mastodon is display versus create. Mastodon will often show you rich text. It just won't let a standard user make it. Here's the full picture.

What you want to doStandard Mastodonglitch-soc fork
See a bold/italic post in your timeline✅ Yes, renders fine✅ Yes
Write a post with real Markdown bold/italic❌ No — plain text only⚠️ Only if you opt in, and the admin enabled it
Bold/italic in your display name❌ Plain-text field❌ Plain-text field
Bold/italic in your bio / profile❌ Plain-text field❌ Plain-text field
A styled look that works everywhere✅ Paste Unicode characters✅ Paste Unicode characters

A few rows deserve unpacking.

Mastodon displays rich text it didn't author — but not always faithfully. If a bold or italic post lands in your timeline, it was likely written on a fork like glitch-soc or on another fediverse platform such as Friendica, Hubzilla, or Misskey/Sharkey. Standard Mastodon renders inline styling like bold, italics, and strikethrough correctly. Structural formatting is a different story: vanilla Mastodon's HTML sanitizer is restrictive, so incoming headers are flattened into bold text in a separate paragraph rather than true headings, and lists lose their structure. So you'll see styled posts — just not a pixel-perfect copy of how they looked at the source. And seeing one doesn't unlock a button for you. Display and creation are separate, and your plain-text composer hasn't changed.

Markdown authoring exists, but on the glitch-soc fork — and only if you turn it on. The glitch-soc fork ("Mastodon Glitch Edition") lets users compose in Markdown or HTML: headers, bold, italics, strikethrough, blockquotes, inline code, code blocks, even subscript, superscript, and lists. The catch is threefold. First, you have to be on a glitch-soc instance. Second, it's a per-user opt-in — you enable "Show content-type choice when authoring toots" in your compose-box settings, which adds a per-toot format dropdown (or you set a default content type in your preferences). Third, not every glitch-soc admin enables it by default. So "Mastodon supports Markdown" is simply not a safe general statement — it's a per-fork, per-user feature, and glitch-soc even warns that the formatting can be degraded or stripped when your post is read on mainline Mastodon.

A note on a fork people often lump in here: Hometown is not a Markdown-authoring fork. Its stated goal is to accept more content types for reading — it renders a wider range of incoming rich text (including longer-form Article objects federated from blogging tools) and adds local-only posting. It does not add a Markdown or HTML compose mode, so on Hometown you still write plain-text posts like vanilla Mastodon.

Display names and bios are plain text on every instance. Mastodon's posting documentation describes the composer and profile fields as plain text — the display name is a plain-text field, and the bio (the "note," 500 characters by default) doesn't support Markdown styling. Profile fields can hold mentions, hashtags, custom emoji, and links — but not bold or italic. So even on a glitch-soc instance with Markdown posts, your name and bio won't render **bold**. The only way to make them look styled is Unicode characters.

The reliable method: Unicode styled characters

Here's the route that ignores all the instance-by-instance variation. Unicode includes whole alphabets of pre-styled characters — Mathematical Bold, Mathematical Italic, monospace, script, and Fraktur ("blackletter") ranges, among others. These aren't Markdown and they aren't a font your reader has to install. They're real, standardized code points, so a bold "𝐀" is literally a different character from a plain "A," with the boldness baked in.

Because the style lives inside the character itself, pasted Unicode text renders identically regardless of instance, fork, or client. Drop it into a post and it stays bold. Drop it into your display name or bio and it stays bold there too. This is exactly how our formatters work under the hood — we walk through the mechanics in how bold text generators work.

A few real, copy-pasteable examples of the same phrase in different styles:

  • Bold: 𝐍𝐞𝐰 𝐩𝐨𝐬𝐭 𝐮𝐩
  • Italic: 𝘕𝘦𝘸 𝘱𝘰𝘴𝘵 𝘶𝘱
  • Bold italic: 𝙉𝙚𝙬 𝙥𝙤𝙨𝙩 𝙪𝙥
  • Monospace: 𝙽𝚎𝚠 𝚙𝚘𝚜𝚝 𝚞𝚙
  • Script: 𝒩𝑒𝓌 𝓅𝑜𝓈𝓉 𝓊𝓅
  • Fraktur: 𝔑𝔢𝔴 𝔭𝔬𝔰𝔱 𝔲𝔭

To do it by hand, type your text into the BoldlyType Mastodon formatter, pick a style, copy, and paste into your post, display name, or bio. No extension, no signup — the styling is generated in your browser.

This is the part responsible "fancy text" guides leave out, and on Mastodon it matters more than on most platforms, because the culture leans hard on accessibility.

Screen readers mangle styled Unicode. Those bold and italic letters live in the Mathematical Alphanumeric Symbols block, which a screen reader reads as math, not as words. Depending on the reader, "𝐇𝐞𝐥𝐥𝐨" can come out as a string of "mathematical bold" character names, or be skipped entirely. So if you style your whole display name or a key sentence, you've made it unreadable for anyone using assistive tech. Keep styling decorative and short — a single accent word, not your entire message — and never put load-bearing information in styled characters alone.

It breaks the matching Mastodon actually does. Mastodon's search is deliberately limited: it doesn't full-text-search everyone's post bodies, and the opt-in full-text search that does exist only covers your own posts plus ones you've favourited, bookmarked, or were mentioned in. What works broadly is matching usernames, display names, and hashtags. Styled Unicode quietly defeats exactly that: a display name in math characters won't match a plain-text query, and a "hashtag" written in styled characters isn't registered as a hashtag at all. So keep handles, hashtags, and anything you want found in plain text.

Some devices show boxes. Because these are real but uncommon characters, a device whose fonts lack a glyph for a given range draws a box (□) instead. Common bold and italic ranges are well supported; Fraktur and some script styles are riskier on older hardware. We cover the mechanism in why fancy text shows as boxes — the short version is to favor the well-supported styles and keep critical text plain.

What actually works, per surface

To pull it together, here's the practical map:

  • Posts on vanilla Mastodon: plain text. Paste Unicode for a styled look.
  • Posts on a glitch-soc instance: real Markdown/HTML if you opt in and your admin allows it — otherwise paste Unicode.
  • Display name: plain text everywhere → Unicode only.
  • Bio / profile note: plain text everywhere → Unicode only. (Profile fields support links, mentions, hashtags, and custom emoji.)
  • Replies and content warnings: same rules as posts — plain on vanilla, Unicode for the look.

The bottom line

Standard Mastodon is a plain-text platform, full stop. There's no bold button, no Markdown parsing, and the asterisks you type will publish as asterisks. Real Markdown authoring is a glitch-soc fork feature you have to enable, not a fediverse-wide capability — and Hometown, despite often being mentioned alongside it, only improves reading rich text, not writing it. Your display name and bio are plain text on every instance.

So if you want a bold, italic, or decorative look that travels across instances and clients, pasting Unicode styled characters is the one method that always works. Just respect the trade-off: Mastodon's audience includes a lot of screen-reader users, styled text breaks the search and hashtag matching the platform does support, and a few devices will show boxes. Use it as a light accent, keep your real words and handles in plain text, and you'll get the look without losing anyone.

Ready to put this into practice?

Open a formatter

Sources

Spotted an error? Email hello@boldlytype.com — we update guides quarterly and welcome corrections.

Frequently asked questions

Latest questions readers ask us about this topic.

How do I do bold text formatting on Mastodon?

On standard Mastodon, you can't with a button or markdown — the composer is plain text, so typing **bold** just publishes the asterisks. The reliable cross-instance method is to paste Unicode bold characters: type your word into a generator, copy the styled result, and paste it into your post, display name, or bio. Because the bold look is baked into each character, it survives on any instance and in any client. The glitch-soc fork lets opted-in users write real Markdown bold, but that depends on being on a glitch-soc server and isn't universal. For a one-click route, use the BoldlyType Mastodon formatter, pick the bold style, and paste. Keep handles, links, and hashtags in plain text so they stay searchable and clickable.

Does Unicode bold actually work on Mastodon, or will it show as boxes?

It works on the vast majority of modern devices, because Unicode bold and italic are real, standardized code points — not a font your reader needs installed. They render the same across instances and clients. The boxes (□) you sometimes see happen when a particular device or older system lacks a glyph for a specific character range, so it can't draw it. Common bold and italic alphabets are well supported; more exotic ranges like Fraktur or some script styles are riskier on old hardware. If you're worried, preview on a second device, and keep critical information in plain text as a fallback. We explain the box problem fully in our guide on why fancy text shows as boxes.

Can I use Markdown like **bold** or _italic_ on Mastodon?

Not on standard Mastodon. The flagship mastodon.social and vanilla instances do not parse Markdown in the composer, so **bold** and _italic_ publish with the literal asterisks and underscores visible. Markdown (and HTML) authoring exists on the glitch-soc fork, and even there it's off until you enable a content-type picker in your compose settings, and not every admin turns it on. So whether Markdown works depends on which instance you're on and your own settings. If you want a bold or italic look that behaves identically everywhere, paste Unicode styled characters instead. That's the only formatting method that doesn't depend on your instance's fork or configuration.

Why do bold posts appear in my timeline if I can't make them?

Because displaying rich text and creating it are two separate things. Standard Mastodon will render incoming formatting — bold, italics, strikethrough — when a post was authored on a fork like glitch-soc or another fediverse platform such as Friendica or Sharkey. Bold and italics come through cleanly. Structural elements degrade, though: vanilla Mastodon's sanitizer flattens headers into bold paragraphs and collapses lists, so what you see isn't always a faithful copy. Either way, seeing a styled post doesn't mean a button is hiding in your composer. For a comparable look from a standard instance, paste Unicode styled characters, which every instance both displays and lets you paste into the composer, your display name, and your bio.

How do I make my Mastodon display name or bio bold or fancy?

Display names and bios are plain-text fields on every Mastodon instance — they don't render Markdown bold or italic, even on forks. Profile fields do support mentions, hashtags, custom emoji, and links, but not styling. So the only way to make a name or bio look bold, italic, or decorative is to paste Unicode styled characters into the field. Generate the styled version, copy it, and paste it into Edit Profile. One caution: screen readers often mangle these characters, so don't style your whole name into math symbols if you want it pronounced correctly. A light touch — one styled word or a subtle accent — reads better and stays accessible to more people.

Is the BoldlyType Mastodon formatter free and safe to use?

Yes. The Mastodon text formatter is free, needs no signup, and the styling is generated in your browser — you type, pick a style like bold, italic, monospace, script or Fraktur, copy the result, and paste it into Mastodon. Because the styling is baked into the Unicode characters, it works across instances and clients without an extension. The honest caveats apply to every Unicode formatter, not just ours: screen readers may skip or misread the characters, styling a display name or hashtag breaks Mastodon's name and hashtag matching, and a few old devices show boxes. Use it for short decorative accents, and keep handles, links, and keywords in plain text.

The sub-questions readers ask next — answered, with where to go.

LinkedIn's post box — used for feed posts, comments, your headline and your About section — is plain text with no formatting toolbar and no markdown, so there's no bold button. The workaround the whole creator economy uses is Unicode bold: type your line, convert it to bold Unicode characters (𝗯𝗼𝗹𝗱) in a generator, then paste it back and the emphasis sticks, because the style is baked into the characters themselves. Bold only the hook — the part that shows before the “…see more” cut-off — to earn the click, and keep the rest plain so the post stays skimmable. Two caveats matter: Unicode text isn't read by LinkedIn's search and is announced poorly by screen readers, so never bold the keywords, names or hashtags you want found or read aloud. For true rich text (headings, lists), use LinkedIn's separate 'Write article' editor instead.

Format a LinkedIn post

Instagram's native composer collapses the line breaks you type, which is why captions paste in as one dense block — it's worst when you post from the web or through some schedulers. The reliable fix is to compose the caption with the spacing you want and paste it back with the breaks preserved, rather than relying on invisible-character hacks (blank Unicode characters can break Instagram's search and are read poorly by screen readers). Write the caption with your intended breaks, generate the spaced version, and paste it into the caption field. Put your strongest hook on line one, since that's the part that shows before the 'more' cut-off in the feed. Keep paragraphs short — two or three lines — so the caption stays skimmable on a phone, where almost everyone reads it.

Open the line-break tool

Yes — WhatsApp is the exception among messaging and social apps because it has its own built-in markup that it renders for everyone. Wrap text in *asterisks* for bold, _underscores_ for italic, ~tildes~ for strikethrough, and triple backticks for monospace; the symbols disappear and the styling shows. So you usually don't need Unicode characters on WhatsApp at all. Reach for a Unicode formatter only when you want a style WhatsApp's markdown doesn't cover — small caps or script for a Status, say — or when you're writing one message to post across several apps that don't share WhatsApp's syntax (Instagram, X and Threads strip these symbols and show them literally). For everyday bold and italic inside WhatsApp itself, the native markup is the better and more accessible choice.

Format for WhatsApp

Because that editor is plain text and strips anything it doesn't parse. Markdown (*bold*), HTML tags and rich-text styling only render where the platform explicitly supports them — paste them into Instagram, X/Twitter or a LinkedIn post and you see the raw asterisks, or nothing at all, because those boxes have no formatting engine. Unicode styling works differently: the bold or italic look is baked into each character (a Unicode bold 'A' is its own code point), so it survives any plain-text field and travels with a copy-paste. That's the whole reason Unicode 'fancy text' formatters exist. The trade-off is accessibility — because they aren't ordinary letters, screen readers can mis-read them and in-app search may not match them — so use Unicode for short emphasis, not for body copy or anything that must be searchable.

Generate paste-proof styles

Related in this series

See all in How-to format

Explore the topic cluster

More tools and guides across this topic cluster.

Get the next post.

Craft notes on writing for the internet. One short email, every other week. No spam.

Keep reading