Documentation Writing Skill
Metabase Writing Style Guide
Core Principles
Write like you're talking to a colleague. Be conversational, not formal. Get people what they need quickly. Know your audience and match the complexity.
Tone and Voice
Do:
- Use contractions ("can't" not "cannot")
- Say "people" or "companies" instead of "users"
- Be friendly but not peppy
- Acknowledge limitations honestly ("that's on us, not them")
- Jokes and Easter eggs are okay (permit them, don't suggest them)
Don't:
- Use exclamation points excessively
- Rely on tired tropes about nerdiness
- Use corporate jargon ("utilize", "offerings", "actionable insights")
- Tell people something is cool (show them instead)
Structure and Clarity
Lead with the important stuff:
- Most important information first
- Lead with the ask, then provide context
- Cut text that adds little value (when in doubt, cut it)
- Each paragraph should have one clear purpose
Make headings do the work:
- Convey your actual point, not just the topic
- "Use headings to highlight key points" not "How to write a good heading"
- Use sentence case, no punctuation except question marks
- No links in headings unless entire heading is a link
Instructions and Examples
Tell people what to do:
- Give the action before explaining why
- Put commands in execution order
- Provide context, steps, and reasoning
- Don't describe tasks as "easy" or "simple"
Answer unasked questions:
- Include answers to "dumb" questions you had when learning
- Don't literally include the question, just give the answer
Formatting
Code vs. UI elements:
- Backticks for code, variable names, parameters only
- Bold for UI elements and labels (e.g., "Click the Save button")
- Don't use backticks or quotes for UI elements
Writing Mechanics
- Limit pronouns when introducing new terms (repeat the term to reinforce it)
- Ampersands only in proper nouns, never as substitute for "and"
Terminology Preferences
Use familiar terms from tools people already know:
- "Summarize" (like Excel) instead of "aggregate"
- "Take a look at" instead of "reference"
- "Filter" instead of technical database terms when appropriate
Red Flags
Avoid these patterns:
- Multiple exclamation points
- Linking "here"
- Bullet lists to explain (use prose)
- Numbers that will change (guard against change)
- Describing things as "easy" or "simple"
- Stock photography-worthy content
When writing documentation
Start here
- Who is this for? Match complexity to audience. Don't oversimplify hard things or overcomplicate simple ones.
- What do they need? Get them to the answer fast. Nobody wants to be in docs longer than necessary.
- What did you struggle with? Those common questions you had when learning? Answer them (without literally including the question).
Writing process
Draft:
- Write out the steps/explanation as you'd tell a colleague
- Lead with what to do, then explain why
- Use headings that state your point: "Set SAML before adding users" not "SAML configuration timing"
Edit:
- Read aloud. Does it sound like you talking? If it's too formal, simplify.
- Cut anything that doesn't directly help the reader
- Check each paragraph has one clear purpose
- Verify examples actually work (don't give examples that error)
Polish:
- Make links descriptive (never "here")
- Backticks only for code/variables, bold for UI elements
- American spelling, serial commas
- Keep images minimal and scoped tight
Format:
- Run prettier on the file after making edits:
yarn prettier --write <file-path>
- This ensures consistent formatting across all documentation
Common patterns
Instructions:
Run:
\`\`\`
command-to-run
\`\`\`
Then:
\`\`\`
next-command
\`\`\`
This ensures you're getting the latest changes.
Not: "(remember to run X before Y...)" buried in a paragraph.
Headings:
- "Use environment variables for configuration" ✅
- "Environment variables" ❌ (too vague)
- "How to use environment variables for configuration" ❌ (too wordy)
Links:
- "Check out the SAML documentation" ✅
- "Read the docs here" ❌
Watch out for
- Describing tasks as "easy" (you don't know the reader's context)
- Using "we" when talking about Metabase features (use "Metabase" or "it")
- Formal language: "utilize", "reference", "offerings"
- Too peppy: multiple exclamation points
- Burying the action in explanation
- Code examples that don't work
- Numbers that will become outdated
Quick reference
| Write This |
Not This |
| people, companies |
users |
| summarize |
aggregate |
| take a look at |
reference |
| can't, don't |
cannot, do not |
| Filter button |
`Filter` button |
| Check out the docs |
Click here |
1---2name: docs-write3description: Write documentation following Metabase's conversational, clear, and user-focused style. Use when creating or editing documentation files (markdown, MDX, etc.).4---56# Documentation Writing Skill7# Metabase Writing Style Guide89## Core Principles1011Write like you're talking to a colleague. Be conversational, not formal. Get people what they need quickly. Know your audience and match the complexity.1213## Tone and Voice1415**Do:**1617- Use contractions ("can't" not "cannot")18- Say "people" or "companies" instead of "users"19- Be friendly but not peppy20- Acknowledge limitations honestly ("that's on us, not them")21- Jokes and Easter eggs are okay (permit them, don't suggest them)2223**Don't:**2425- Use exclamation points excessively26- Rely on tired tropes about nerdiness27- Use corporate jargon ("utilize", "offerings", "actionable insights")28- Tell people something is cool (show them instead)2930## Structure and Clarity3132**Lead with the important stuff:**3334- Most important information first35- Lead with the ask, then provide context36- Cut text that adds little value (when in doubt, cut it)37- Each paragraph should have one clear purpose3839**Make headings do the work:**4041- Convey your actual point, not just the topic42- "Use headings to highlight key points" not "How to write a good heading"43- Use sentence case, no punctuation except question marks44- No links in headings unless entire heading is a link4546## Instructions and Examples4748**Tell people what to do:**4950- Give the action before explaining why51- Put commands in execution order52- Provide context, steps, and reasoning53- Don't describe tasks as "easy" or "simple"5455**Answer unasked questions:**5657- Include answers to "dumb" questions you had when learning58- Don't literally include the question, just give the answer5960## Formatting6162**Code vs. UI elements:**6364- Backticks for code, variable names, parameters only65- **Bold** for UI elements and labels (e.g., "Click the **Save** button")66- Don't use backticks or quotes for UI elements6768## Writing Mechanics6970- Limit pronouns when introducing new terms (repeat the term to reinforce it)71- Ampersands only in proper nouns, never as substitute for "and"7273## Terminology Preferences7475Use familiar terms from tools people already know:7677- "Summarize" (like Excel) instead of "aggregate"78- "Take a look at" instead of "reference"79- "Filter" instead of technical database terms when appropriate8081## Red Flags8283Avoid these patterns:8485- Multiple exclamation points86- Linking "here"87- Bullet lists to explain (use prose)88- Numbers that will change (guard against change)89- Describing things as "easy" or "simple"90- Stock photography-worthy content9192## When writing documentation9394### Start here95961. **Who is this for?** Match complexity to audience. Don't oversimplify hard things or overcomplicate simple ones.972. **What do they need?** Get them to the answer fast. Nobody wants to be in docs longer than necessary.983. **What did you struggle with?** Those common questions you had when learning? Answer them (without literally including the question).99100### Writing process101102**Draft:**103104- Write out the steps/explanation as you'd tell a colleague105- Lead with what to do, then explain why106- Use headings that state your point: "Set SAML before adding users" not "SAML configuration timing"107108**Edit:**109110- Read aloud. Does it sound like you talking? If it's too formal, simplify.111- Cut anything that doesn't directly help the reader112- Check each paragraph has one clear purpose113- Verify examples actually work (don't give examples that error)114115**Polish:**116117- Make links descriptive (never "here")118- Backticks only for code/variables, **bold** for UI elements119- American spelling, serial commas120- Keep images minimal and scoped tight121122**Format:**123124- Run prettier on the file after making edits: `yarn prettier --write <file-path>`125- This ensures consistent formatting across all documentation126127### Common patterns128129**Instructions:**130131```markdown132Run:133\`\`\`134command-to-run135\`\`\`136137Then:138\`\`\`139next-command140\`\`\`141142This ensures you're getting the latest changes.143```144145Not: "(remember to run X before Y...)" buried in a paragraph.146147**Headings:**148149- "Use environment variables for configuration" ✅150- "Environment variables" ❌ (too vague)151- "How to use environment variables for configuration" ❌ (too wordy)152153**Links:**154155- "Check out the [SAML documentation](link)" ✅156- "Read the docs [here](link)" ❌157158### Watch out for159160- Describing tasks as "easy" (you don't know the reader's context)161- Using "we" when talking about Metabase features (use "Metabase" or "it")162- Formal language: "utilize", "reference", "offerings"163- Too peppy: multiple exclamation points164- Burying the action in explanation165- Code examples that don't work166- Numbers that will become outdated167168### Quick reference169170| Write This | Not This |171| -------------------------- | ------------------ |172| people, companies | users |173| summarize | aggregate |174| take a look at | reference |175| can't, don't | cannot, do not |176| **Filter** button | \`Filter\` button |177| Check out [the docs](link) | Click [here](link) |