This guide documents the site'sblock trigger system. Wrap Markdown between:::trigger:::tags to render a component without writing HTML.

What this covers:

  • How to use all 11 available components
  • When to use each component
  • Complete examples
  • Ways to combine components

Why block syntax

Previously, our system used single-line /trigger/ commands. While simple, they were limited to the "next" node.

Block triggers (:::component:::) fix that limitation. The opening and closing markers support multi-paragraph callouts and nested content.

Design rules

Block-based triggers follow three core principles:

  1. Explicit Boundaries: Clear start and end markers
  2. Semantic Meaning: Component names reflect their purpose
  3. Composition: Components can contain other Markdown elements

Component Reference

1. Metadata Component

Purpose: Define page frontmatter (title, date, category, image)

The metadata component is the foundation of every blog post. It defines essential information that powers your site's SEO, social media previews, and navigation. Think of it as your post's identity card.

Why It Matters:

  • SEO Optimization: Search engines use metadata to understand and rank your content
  • Social Sharing: Creates beautiful preview cards on Twitter, LinkedIn, Facebook
  • Site Navigation: Powers category filters, date sorting, and related posts
  • Reader Context: Shows readers what to expect before they start reading

Syntax:

Place this at the very beginning of your markdown file:

\:::\metadata\:::
title: "Your Post Title"
date: "2025-03-01"
description: "A brief description"
category: "Category Name"
image: "/brand/light-favicon.png"
\:::\metadata\:::

Field Breakdown:

Field Required Purpose Example
title Page title, H1, SEO "Building Scalable APIs"
date Publication date (YYYY-MM-DD) "2025-03-01"
description Meta description, social preview "Learn to build APIs at scale"
category Content categorization "Backend Engineering"
image Social card image, hero image "/brand/light-favicon.png"

Real-World Example:

\:::\metadata\:::
title: "React 19: What's New and Why It Matters"
date: "2025-03-15"
description: "A guide to React 19 features including the Compiler, Server Actions, and Suspense patterns."
category: "Frontend Development"
image: "/brand/light-favicon.png"
\:::\metadata\:::

Best Practices:

Do:

  • Write compelling titles (50-60 characters)
  • Keep descriptions concise but informative (120-160 characters)
  • Use descriptive categories (2-4 words)
  • Choose high-resolution images (min 1200x630px)
  • Use consistent date formatting (YYYY-MM-DD)
  • Test social previews with tools like OpenGraph.xyz

Don't:

  • Use clickbait titles
  • Write vague descriptions
  • Skip required fields
  • Use low-quality images
  • Change category naming conventions mid-project

2. Page Icon

Purpose: Display an emoji icon at the top of the post

The page icon is one emoji shown at the top of the post. Choose one that helps readers recognize the subject at a glance.

Why Use Icons?

  • Visual Identity: Instantly recognizable in blog feeds
  • Emotional Tone: Conveys mood before reading
  • Brand Consistency: Creates a cohesive visual system
  • Mobile-Friendly: Looks great on all screen sizes

Syntax:

Place immediately after metadata:

\:::\icon\:::
✍️
\:::\icon\:::

Icon Categories & Recommendations:

  • Writing & Content✍️ 📝 📄 📰 ✒️
  • Technology & Code💻 ⚙️ 🔧 🖥️ ⌨️
  • Design & Creative🎨 🖌️ 🎭 🖼️
  • Business & Finance💼 📊 💰 📈 🏢
  • Learning & Education📚 🧠 🎓 📖 🔬
  • Science & Research🔬 🧪 🔭 ⚗️ 🧬
  • Performance & Speed 🚀 ⏱️ 💨 🏎️
  • Security & Privacy🔒 🛡️ 🔐 🕵️ 🚨
  • Mobile & Apps📱 📲 💾 🔌 📡
  • Data & Analytics📊 📈 📉 🗃️ 💾
  • AI & Machine Learning🤖 🧠 🎯 🔮 ⚙️
  • Communication💬 📢 📣 🗣️ ✉️

Semantic Pairing Guide:

Match your icon to your post's primary focus:

Post Topic Recommended Icon Why
API Development 🔌 Represents connectivity
Performance Optimization Suggests speed
Security Practices 🔒 Conveys protection
Tutorial/How-To 📚 Educational context
Product Launch 🚀 Excitement and launch
Personal Reflection 💭 Thoughtful and introspective
Year in Review 📅 Time-based retrospective
System Design 🏗️ Building/architecture
Testing & QA 🧪 Experimental and methodical
Open Source 🌐 Community and accessibility

Advanced Examples:

\:::\icon\:::
🚀
\:::\icon\:::

Perfect for: Product launches, new features, deployment guides

\:::\icon\:::
🔬
\:::\icon\:::

Perfect for: Research posts, experiments, data analysis

\:::\icon\:::
🎯
\:::\icon\:::

Perfect for: Goal-setting, strategy, focused tutorials

Best Practices:

Do:

  • Choose a single emoji that captures your post's essence
  • Match icon to content theme (don't use 🎨 for a backend post)
  • Use standard emoji (avoid platform-specific ones)
  • Test icon rendering across devices
  • Create consistency across similar post types

Don't:

  • Use multiple emoji (looks cluttered)
  • Choose random emoji without meaning
  • Use complex emoji combinations (👨‍💻)
  • Overuse trendy emoji inappropriately
  • Change icons frequently for the same content type

3. Stat Blocks

Purpose: Display key metrics, statistics, or data points in a grid layout

  • Uptime - 99.9%
  • Users - 50k+
  • Revenue - $1.2M
  • Response Time - 45ms avg
  • Error Rate - 0.01%
  • Daily Active Users - 125K
  • API Calls/day - 2.3M
  • Product dashboards
  • Performance benchmarks
  • Business metrics
  • Technical specifications
  • Feature comparisons

⚠️Breaking Change: Version 3.0 removes deprecated APIs.


Pattern 3: Resource Hub

Combine bookmarks with explanatory text:

Learning Path: Master React

💡Suggested Order: Start with official docs, then watch the video course, practice in the playground, and finally read the best practices guide.


Pattern 4: Comparison Table

Use stats for side-by-side comparisons:

Framework Comparison:

Feature Next.js Remix
Routing File-based File-based
Data Fetching Server/Client Server-first
Deployment Vercel/Any Any
Learning Moderate Steep
  • Next.jsBest for Vercel hosting
  • RemixBest for full-stack control

💡 Both are excellent choices. Choose based on your deployment target and team expertise.


Best Practices Summary

Do's ✅

  • Start with metadata on every post
  • Use icons to set the tone visually
  • Choose callouts based on semantic meaning
  • Include context with quotes and bookmarks
  • Compose components for rich layouts
  • Test rendering before publishing

Don'ts ❌

  • Don't overuse callouts (1-3 per post max)
  • Don't nest components (not supported)
  • Don't forget closing tags (:::component:::)
  • Don't use incorrect component names
  • Don't skip metadata (breaks SEO)

Component Quick Reference

Component Trigger Target Best For
Metadata :::metadata::: Key-Value pairs SEO, page info
Page Icon :::icon::: Single Emoji Visual identity
Stat Grid :::stat::: Unordered List Metrics, data
Math Steps :::math::: Unordered List Calculations
Bookmarks :::bookmarks::: Unordered List External links
Info :::info::: Any content Tips, explanations
Success :::success::: Any content Achievements, wins
Warning :::warning::: Any content Cautions, limitations
Error :::error::: Any content Critical issues
Quote :::quote::: Any content Citations, inspiration
Season :::season::: Title Task List Roadmaps, timelines

Troubleshooting Common Issues

Issue 1: Component Not Rendering

Problem: Text appears as-is without styling.

Solution: Check for:

  • Correct component name (case-sensitive)

  • Both opening and closing tags

  • No extra spaces in tags

    ❌ Wrong: ::info::: ✅ Right:

    ❌ Wrong: ✅ Right:


Issue 2: Broken Layout

Problem: Components overlap or look misaligned.

Solution:

  • Ensure blank lines between components
  • Don't nest components inside each other
  • Use proper list syntax for stat/math/bookmarks

Issue 3: Missing Content

Problem: Content inside component doesn't display.

Solution:

  • Check that content is between opening and closing tags

  • Verify markdown syntax inside component

  • Ensure list items use proper markdown❌ Wrong: Item 1Value Right:Item 1- Value

Real-World Examples

Example 1: Product Launch Post

\:::\metadata\:::
title: "Launching Our New API"
date: "2025-03-01"
category: "Product"
\:::\metadata\:::

\:::\icon\:::
🚀
\:::\icon\:::

\:::\info\:::
💡 We're excited to announce the release of our v2 API with 10x better performance!
\:::\info\:::

\:::\stat\:::

- **Endpoints** - 50+
- **Uptime SLA** - 99.99%
- **Rate Limit** - 10K req/min
- **Response Time** - <50ms

\:::\stat\:::

\:::\bookmarks\:::

- [API Documentation](https://docs.example.com)
- [Migration Guide](https://example.com/migrate)
- [Changelog](https://example.com/changelog)

\:::\bookmarks\:::

Example 2: Tutorial Post

\:::\metadata\:::
title: "Building a REST API with Node.js"
date: "2025-03-01"
category: "Tutorial"
\:::\metadata\:::

\:::\icon\:::
💻
\:::\icon\:::

\:::\info\:::
💡 This tutorial assumes basic JavaScript knowledge.
\:::\info\:::

[... tutorial content ...]

\:::\warning\:::
⚠️ Don't forget to add `.env` to your `.gitignore` file!
\:::\warning\:::

\:::\success\:::
✅ Congratulations! You've built your first API.
\:::\success\:::

Example 3: Year in Review

\:::\season\::: Q1: Foundations

- [x] Launched v1.0
- [x] Hit 1K users
- [x] Raised seed round

\:::\season\:::

\:::\season\::: Q2: Growth

- [x] 10K users milestone
- [x] Team grew to 12
- [x] First enterprise client

\:::\season\:::

\:::\season\::: Q3: Expansion

- [x] International launch
- [x] Mobile app release
- [x] 50K users

\:::\season\:::

\:::\season\::: Q4: Looking Ahead

- [ ] Series A fundraising
- [ ] 100K users target
- [ ] Platform ecosystem

\:::\season\:::

Component examples

Here is a complete reference of all available components, their syntax, and live previews.

1. Page Icon

Explanation: The page icon sets the visual tone of the post. It appears at the very top of the article.

Code:

\:::\icon\:::
🎨
\:::\icon\:::

Rendered:


2. Stat Grid

Explanation: Display key metrics or data points in a responsive grid layout.

Code:

\:::\stat\:::

- **Users** - 10k+
- **Uptime** - 99.9%
- **Revenue** - $50k
  \:::\stat\:::

Rendered:

  • Users10k+
  • Uptime99.9%
  • Revenue$50k

3. Math Steps

Explanation: Show a sequence of calculation steps with the final result automatically highlighted.

Code:

\:::\math\:::

- Revenue = $10,000
- Costs = -$4,000
- **Profit = $6,000**
  \:::\math\:::

Rendered:

  • Revenue$10,000
  • Costs-$4,000
  • Profit$6,000

4. Bookmarks

Explanation: Create rich, Notion-style link cards for external resources.

Code:

\:::\bookmarks\:::

- [Documentation](https://docs.example.com)
- [Video Tutorial](https://youtube.com)
- [Source Code](https://github.com)
  \:::\bookmarks\:::

Rendered:


5. Info Callout

Explanation: Use for neutral information, tips, or additional context.

Code:

\:::\info\:::
This is an info callout. Use it for helpful tips or additional context.
\:::\info\:::

Rendered:

This is an info callout. Use it for helpful tips or additional context.


6. Success Callout

Explanation: Use for positive outcomes, achievements, or confirmations.

Code:

\:::\success\:::
Great job! You've successfully completed the tutorial.
\:::\success\:::

Rendered:

Great job! You've successfully completed the tutorial.


7. Warning Callout

Explanation: Use for cautions, important notes, or potential issues.

Code:

\:::\warning\:::
Proceed with caution. This action cannot be undone.
\:::\warning\:::

Rendered:

Proceed with caution. This action cannot be undone.


8. Error Callout

Explanation: Use for critical errors, blockers, or security issues.

Code:

\:::\error\:::
Critical error: Database connection failed. Please check your credentials.
\:::\error\:::

Rendered:

Critical error: Database connection failed. Please check your credentials.


9. Quote Block

Explanation: Highlight memorable quotes or citations with a distinct style.

Code:

\:::\quote\:::
"Simplicity is the ultimate sophistication."

Leonardo da Vinci
\:::\quote\:::

Rendered:

"Simplicity is the ultimate sophistication."

Leonardo da Vinci


10. Season Board

Explanation: Plan projects with quarterly or phased timelines.

Code:

\:::\season\::: Q1: Planning

- [x] Research
- [ ] Design
      \:::\season\:::

Rendered:

Q1: Planning
  • Research
  • Design

Quick reference before publishing

"The secret of change is to focus all of your energy, not on fighting the old, but on building the new."

Socrates

The system includes 11 components:

Metadata for SEO and structure
Icons for visual identity
Stats for data presentation
Math for calculations
Callouts for emphasis (info, success, warning, error)
Bookmarks for resources
Quotes for inspiration
Seasons for planning

Next steps:

  1. Try each component in a draft
  2. Combine only the components the post needs
  3. Preview the result before publishing

If something breaks:

  • Check the troubleshooting section above
  • Review real-world examples
  • Consult the quick reference table