Open two Discord servers side by side. One has a #rules channel that's a wall of unbroken text in default font, every other word bolded, with three 🔥 emoji at the end of each line. The other has a clean header, a short intro blockquote, numbered rules with consistent spacing, and a footer showing when the rules were last updated — in your local timezone.
Same information. Wildly different perception of the community behind it.
Formatting is the cheapest upgrade you can make to a Discord server. It costs nothing, takes an afternoon, and changes how every new member judges your community in the first ten seconds. This guide walks through everything Discord lets you do with text, embeds, and timestamps — and the small habits that separate a server that looks thrown together from one that looks run by adults.
The markdown basics (with examples that actually render)
Discord uses a subset of Markdown. Here's the full toolkit:
Bold — wrap text in double asterisks: **like this** → like this
Italic — single asterisks or underscores: *like this* → like this
Underline — double underscores: __like this__ → like this
Strikethrough — double tildes: ~~like this~~ → like this
||Spoilers|| — double pipes: ||like this|| → hidden until clicked
Inline code — single backticks: ` like this `
Code blocks — triple backticks, optionally with a language:
const greeting = "hello";
Headers — Discord supports three levels:
# Big header
## Medium header
### Small header
Blockquotes — > for a single line, >>> for everything that follows:
This is a single-line quote.
Lists — - or * for bullets, 1. for numbered:
- First item
- Second item
- Nested item
1. Step one
2. Step two
Masked links (only in embeds and some bot messages): [Phantom](https://phantombot.gg).
Combining formatting
You can stack these. ***bold italic***, __**bold underlined**__, ~~__struck underlined__~~. Useful, but the rule is: combine for one or two moments per message, not for every sentence. Emphasis only works when most of the text isn't emphasized.
The most underused feature in Discord: dynamic timestamps
If you take one thing from this post, take this. Discord has built-in timestamp formatting that renders in every user's local timezone, automatically. Most servers never use it.
The syntax is <t:UNIX_TIMESTAMP:FORMAT>. You get a Unix timestamp from any online converter (or Date.now() / 1000 if you're a developer). The format flag controls how it displays:
<t:1735689600:t>→ short time (4:00 PM)<t:1735689600:T>→ long time (4:00:00 PM)<t:1735689600:d>→ short date (12/31/2024)<t:1735689600:D>→ long date (December 31, 2024)<t:1735689600:f>→ short date/time (December 31, 2024 4:00 PM)<t:1735689600:F>→ long date/time (Tuesday, December 31, 2024 4:00 PM)<t:1735689600:R>→ relative (in 2 hours / 3 days ago)
The relative format (:R) is magic for events. Instead of writing "Stream starts Friday 8pm EST (1am UTC, 10am JST, etc.)" you write one timestamp and every member sees "starts in 3 hours" in their language and timezone.
Before: "Patch notes drop Friday at 8 PM EST!" After: "Patch notes drop <t:1735689600:F> — <t:1735689600:R>"
Use this in event announcements, giveaway end times, maintenance windows, and rule update footers. Phantom's giveaway and event embeds use dynamic timestamps automatically, but you can drop them into any regular message you type.
Embeds: why they look better
An embed is the colored, structured card you've seen bots and webhooks post — a title, description, fields, thumbnail, footer, sometimes an image. Embeds aren't just prettier; they're scannable in a way plain text isn't. The colored left border gives the eye a visual anchor, fields let you split information into two columns, and the footer gives you a perfect place for timestamps and source attribution.
For anything you want members to actually read — announcements, rules, server info, role menus, event details — embeds beat plain text every time.
A basic embed structure has:
- Author (small line at top with optional icon)
- Title (the bold heading, optionally a link)
- Description (the body — supports markdown)
- Fields (key/value pairs, optionally inline for columns)
- Thumbnail (small image, top right)
- Image (large image at the bottom)
- Footer (small text + optional icon at the very bottom)
- Color (the left border accent)
- Timestamp (auto-converts to local time, shown next to footer)
You can post embeds three ways: through a bot like Phantom, through a Discord webhook (use any embed-builder website), or through Discord's own auto-embed when you paste a link. For permanent channel content — rules, info, FAQ — webhooks are great because the embed sits there forever without needing a bot online.
Phantom's own command responses use embeds by design. When you run /pmod warn or /giveaway start, you don't get a wall of text — you get a structured card with the action, the target, the moderator, and a relative timestamp. That consistency matters: a server where every bot reply looks coherent feels professionally run, even if half the work is being done by automation.
Designing a good announcement post
Let's look at a real before/after. Same announcement, two versions.
Before:
@everyone hey guys big news we're doing a community game night this friday at 8pm est!!! 🔥🔥🔥 it's gonna be among us and gartic phone come thru!!! react with 🎮 if ur coming ❤️❤️
After (as an embed description):
## 🎮 Community Game Night
> Among Us + Gartic Phone. Casual, chaotic, all skill levels welcome.
**When** — <t:1735689600:F> (<t:1735689600:R>)
**Where** — <#voice-channel-id>
**RSVP** — react with 🎮 below
-# Hosted by the events team. Bring snacks.
The second version takes ten seconds longer to write and gets read by ten times as many people. A few principles in play:
- One idea per line. Whitespace is free.
- Labels first, values second.
**When** — ...is faster to scan than a sentence. - Emoji as markers, not decoration. One 🎮 to anchor the topic. Not five.
- Dynamic timestamps so nobody needs to do timezone math.
- Subtle footer using
-#(Discord's small-text syntax) for low-priority info.
If you're posting via a bot or webhook, wrap that into a real embed with a colored accent and a thumbnail. The structure is the same; the embed just gives it a frame.
Channel topics, descriptions, and the forum tag layer
Don't ignore channel topics. They're the first thing a new member sees when they click a channel. A topic like "general" is wasted real estate. A topic like "💬 General chat — no NSFW, no self-promo. Off-topic? → #off-topic" tells them the room's purpose, the rule that matters, and where to go instead.
Forum channels let you set tags with emoji. Use them. A 🐛 bug tag and a 💡 idea tag turn a forum into something members can filter at a glance. Same logic applies to category names — ── 📢 ANNOUNCEMENTS ── reads better than announcements and groups visually in the sidebar.
Unicode and special characters — tastefully
Unicode characters can level up your formatting if you don't overdo it.
- Box-drawing characters (
─ ━ ═) for category dividers:── 🛡 MODERATION ── - Bullet variants (
• ◦ ▸ ▪) for visual variety in lists - Arrows (
→ ⇒ ↳) for "go here next" instructions - Mathematical bold/italic Unicode for channel names when you want them to stand out in the sidebar
The trap: fancy-text Unicode in channel names breaks search and screen readers. Use it sparingly, mostly in category names where nobody types-to-jump. And never put Unicode in role names that members will @mention.
Common formatting mistakes
Walls of text. A 400-word rules post with no headers, no lists, no spacing. Even if every word matters, nobody reads it. Break it into sections. Use a header per topic.
Bold overuse. When everything is bold, nothing is. Reserve bold for the one word in a sentence that matters most.
CAPS LOCK announcements. Caps don't add urgency; they add resistance. Members tune out servers that yell. A single italicized "please read" lands harder than "PLEASE READ EVERYONE!!!"
Emoji spam. Three 🔥 at the end of every line ages badly. One well-placed emoji acting as a visual anchor (🎮 next to a gaming event, 🛠 next to maintenance notes) does the job.
Inconsistent voice. Half your announcements are casual, half are formal, half use embeds, half are plain text. Pick a style and hold it. Style guides aren't just for newspapers.
No timestamps, or hardcoded ones. "Friday 8pm" — whose Friday? Whose 8pm? Use <t:...:F>.
Building a visual identity
A server's visual identity is the sum of small repeating choices:
- A consistent embed color for staff posts. Pick one accent color and stick to it. Phantom's custom branding lets you set your server's color across bot responses, which means your moderation logs, ticket panels, and welcome messages all share the same accent as your announcements.
- A consistent header pattern. Maybe every announcement starts with
## emoji Titleand ends with a-# small footer credit. - A consistent divider between category groups in the sidebar.
- A consistent tone. Friendly, formal, dry — doesn't matter which, as long as it's the same in #rules and #announcements and your bot's welcome message.
This is why pairing good formatting with a well-configured bot matters. If your announcements look polished but your bot replies with raw text like "User banned." — the seam shows. Phantom's responses are embed-based by default, with your accent color, your timestamps, and your server's branding. The handcrafted parts of your server and the automated parts end up looking like they came from the same designer.
A quick checklist for any post
Before you hit send on an announcement, run through this:
- Is there a clear header so people know what this is at a glance?
- Is the most important info in the first two lines?
- Are there timestamps instead of timezone strings?
- Are bold and emoji used sparingly enough that they still mean something?
- Is there whitespace between sections?
- Does it match the style of your last five announcements?
If all six are yes, you've already made a better post than 90% of Discord servers out there.
Wrapping up
Formatting isn't decoration. It's how you signal to members that the people running this server care about their experience. A clean #rules embed, a properly-timestamped event post, a channel topic that actually helps — these are the details that turn a Discord server from a chatroom into a community people are proud to be part of.
Pick one channel this week. Rewrite its pinned post using everything above. Then do another next week. Your future members will assume the server has always looked this good — and that's exactly the impression you want.