Markdown Formatting¶
Messages in Notifer support Markdown for rich text formatting.
What is Markdown?¶
Markdown is a lightweight markup language that lets you format text using simple syntax. It's used widely in GitHub, Discord, Slack, and many other platforms.
Example:
Renders as: Bold text, italic text, and code
Enabling Markdown¶
Via HTTP Header¶
Add the X-Markdown header:
curl -d "**Server is down!** Check `prod-web-01`" \
-H "X-Markdown: true" \
https://app.notifer.io/alerts
Via Web App¶
Markdown is automatically enabled when publishing from the dashboard.
Default Behavior¶
If you don't specify X-Markdown, the message is treated as plain text (no formatting).
Supported Syntax¶
Text Formatting¶
| Syntax | Result |
|---|---|
**bold** |
bold |
*italic* |
italic |
***bold italic*** |
bold italic |
~~strikethrough~~ |
|
`code` |
code |
Example:
curl -d "**CRITICAL:** Database connection failed on \`prod-db-01\`" \
-H "X-Markdown: true" \
https://app.notifer.io/alerts
Headers¶
Example:
curl -d "## Deploy Summary
- **Version**: v2.1.0
- **Status**: Success ✅
- **Duration**: 3m 45s" \
-H "X-Markdown: true" \
https://app.notifer.io/deployments
Lists¶
Unordered lists:
Ordered lists:
Example:
curl -d "Deployment checklist:
1. Run tests ✅
2. Build application ✅
3. Deploy to production ✅
4. Verify health checks ✅" \
-H "X-Markdown: true" \
https://app.notifer.io/deployments
Links¶
Example:
curl -d "Deploy succeeded! View logs: [Jenkins Build #456](https://jenkins.example.com/build/456)" \
-H "X-Markdown: true" \
https://app.notifer.io/deployments
Code Blocks¶
Inline code:
Code blocks:
Code blocks with syntax highlighting:
Example:
curl -d 'Error in API handler:
```python
def process_order(order_id):
# This line is failing
order = Order.objects.get(id=order_id)
```' \
-H "X-Markdown: true" \
https://app.notifer.io/errors
Blockquotes¶
Example:
curl -d "> **Warning:** Disk usage at 95%
>
> Cleanup required immediately" \
-H "X-Markdown: true" \
https://app.notifer.io/monitoring
Horizontal Rules¶
Example:
curl -d "## Deploy Summary
**Status**: Success ✅
---
**Details:**
- Version: v2.1.0
- Duration: 3m 45s" \
-H "X-Markdown: true" \
https://app.notifer.io/deployments
Tables¶
Example:
curl -d "## Server Status
| Server | CPU | Memory | Status |
|--------|-----|--------|--------|
| web-01 | 45% | 67% | ✅ OK |
| web-02 | 89% | 92% | ⚠️ High |
| api-01 | 23% | 45% | ✅ OK |" \
-H "X-Markdown: true" \
https://app.notifer.io/monitoring
Emojis¶
Use Unicode emojis directly:
Example:
curl -d "Deploy Status:
✅ Tests passed
✅ Build succeeded
✅ Deploy completed
🚀 Application live!" \
-H "X-Markdown: true" \
https://app.notifer.io/deployments
Real-World Examples¶
Server Monitoring Alert¶
curl -d "## ⚠️ High CPU Usage
**Server:** \`prod-web-01\`
**CPU:** 95%
**Memory:** 78%
**Actions:**
1. Check running processes
2. Review recent deployments
3. Scale if needed
[View Metrics Dashboard](https://grafana.example.com/server/prod-web-01)" \
-H "X-Markdown: true" \
-H "X-Priority: 4" \
-H "X-Tags: monitoring,cpu,prod-web-01" \
https://app.notifer.io/alerts
Deployment Summary¶
curl -d "## 🚀 Deploy v2.1.0
**Status:** ✅ Success
**Environment:** Production
**Duration:** 3m 45s
---
**Changes:**
- Added user authentication
- Fixed payment gateway bug
- Updated dependencies
**Links:**
- [Release Notes](https://github.com/example/repo/releases/v2.1.0)
- [CI Build](https://ci.example.com/build/456)" \
-H "X-Markdown: true" \
-H "X-Priority: 3" \
https://app.notifer.io/deployments
Error Report¶
curl -d "## ❌ Payment Processing Error
**Error:** Database connection timeout
**Endpoint:** \`POST /api/payments\`
**Count:** 15 failures in last 5 minutes
**Stack Trace:**
\`\`\`python
File \"/app/payments.py\", line 45, in process_payment
conn = db.connect(timeout=5)
TimeoutError: Connection timeout after 5s
\`\`\`
**Next Steps:**
1. Check database status
2. Review connection pool
3. Investigate network issues" \
-H "X-Markdown: true" \
-H "X-Priority: 5" \
-H "X-Tags: error,payment,database" \
https://app.notifer.io/errors
Daily Summary Report¶
curl -d "## 📊 Daily Report - $(date +%Y-%m-%d)
### Application Stats
| Metric | Value | Change |
|--------|-------|--------|
| Users | 1,234 | +5.2% ↗️ |
| Orders | 456 | +12.1% ↗️ |
| Revenue | \$12,345 | +8.7% ↗️ |
| Errors | 23 | -15.3% ↘️ |
---
### Top Performing Pages
1. Homepage - 5,432 views
2. Products - 3,210 views
3. Checkout - 1,890 views
### Issues
- ⚠️ Slow API response on checkout (avg 2.1s)
- ✅ Database backup completed
- ✅ SSL certificate renewed" \
-H "X-Markdown: true" \
-H "X-Priority: 2" \
https://app.notifer.io/reports
Backup Status¶
curl -d "## ✅ Backup Completed
**Type:** Full database backup
**Size:** 2.3 GB
**Duration:** 12m 34s
**Location:** \`s3://backups/db-2025-11-22.sql.gz\`
**Details:**
- Tables backed up: 42
- Compression ratio: 6.2:1
- Verification: ✅ Passed
[View Backup Logs](https://console.aws.amazon.com/s3/backups/)" \
-H "X-Markdown: true" \
-H "X-Priority: 2" \
https://app.notifer.io/backups
Best Practices¶
1. Keep It Simple¶
❌ Over-formatted:
✅ Clear and readable:
2. Use Structure for Long Messages¶
Break up long messages with headers and lists:
3. Combine with Priority and Tags¶
curl -d "## 🚨 CRITICAL: Database Down
**Status:** All write operations failing
**Impact:** High - affecting all users
**Action Required:**
1. Restart primary database
2. Failover to replica if needed" \
-H "X-Markdown: true" \
-H "X-Priority: 5" \
-H "X-Tags: critical,database,production" \
https://app.notifer.io/alerts
4. Test Formatting¶
Send test messages to verify formatting:
curl -d "**Test** *message* with \`code\` and [link](https://example.com)" \
-H "X-Markdown: true" \
https://app.notifer.io/test
Markdown in Different Clients¶
Web Dashboard¶
Full Markdown rendering with: - All text formatting - Links (clickable) - Code blocks with syntax highlighting - Tables - Lists - Blockquotes
Mobile Apps (iOS/Android)¶
Full Markdown rendering in message detail view: - Text formatting (bold, italic, code) - Links (tappable) - Code blocks - Lists - Tables (scrollable)
Push notification preview: Limited to plain text (no formatting).
Email Notifications¶
Markdown is converted to HTML for email: - Text formatting preserved - Links clickable - Code blocks styled - Lists and tables formatted
Escaping Special Characters¶
If you need to show literal Markdown characters:
Use \* for asterisks instead of *italic*
Use \` for backticks instead of `code`
Use \# for hash instead of headers
Example:
curl -d "Run \`npm install\` to install packages" \
-H "X-Markdown: true" \
https://app.notifer.io/docs
Renders as: Run npm install to install packages
Limitations¶
- Max message length: 4,000 characters (including Markdown syntax)
- Nested formatting: Limited depth (e.g., bold inside italic inside code may not work)
- Custom HTML: Not supported for security reasons
- Images: Not supported in message body (use links instead)
API Response¶
Markdown messages are stored with the original Markdown syntax:
{
"id": "uuid",
"topic": "alerts",
"message": "**CRITICAL:** Server down on `prod-web-01`",
"title": "Alert",
"priority": 5,
"timestamp": "2025-11-22T10:30:00Z"
}
The rendering happens client-side (web/mobile apps).
Next Steps¶
- Priority - Message priority levels
- Tags - Organize messages with tags
- Publishing Guide - Send formatted messages
Pro Tip: Use Markdown for important alerts and summaries, but keep quick notifications as plain text for faster scanning! 📝