|
| 1 | +# BLOG_STYLE_GUIDE.md |
| 2 | + |
| 3 | +## GraphQL Blog Content Style Guide |
| 4 | + |
| 5 | +Welcome to the GraphQL Blog Style Guide! This document outlines best practices and standards for writing engaging, informative, and technically accurate content for our audience. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## ✍️ General Writing Principles |
| 10 | + |
| 11 | +- **Audience First**: Assume the reader has a technical background (developers, engineers) but may be new to GraphQL concepts. |
| 12 | +- **Clarity is Key**: Prioritize clear, concise explanations over jargon. Break down complex ideas with examples. |
| 13 | +- **Vendor neutral**: The GraphQL Blog is about GraphQL as a technology. Vendor specific content and personal promotion doesn't belong in the GraphQL blog. |
| 14 | + |
| 15 | +## ℹ️ Content |
| 16 | + |
| 17 | +The GraphQL blog welcomes contributions. Anyone may submit a blog post idea by [opening an issue](https://github.com/graphql/graphql.github.io/issues/new) or a draft by [opening a pull request](https://github.com/graphql/graphql.github.io/pulls). |
| 18 | + |
| 19 | +Maintainers are responsible for approving and merging the pull requests. |
| 20 | + |
| 21 | +Example content: |
| 22 | +- Announcements: events, new versions of [GraphQL tools or specifications](https://github.com/orgs/graphql/repositories), updates about the GraphQL foundation, collaborations, etc... |
| 23 | +- Best practices: share learnings and make the best of GraphQL. |
| 24 | +- Case studies: explain how GraphQL helped solve a problem. |
| 25 | +- Technical updates: broadcast an update about discussions happening in a working group. |
| 26 | +- etc... |
| 27 | + |
| 28 | +This list is non-exhaustive. If there is something you would like to see on the GraphQL blog, [open an issue for discussion](https://github.com/graphql/graphql.github.io/issues/new). |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## 📚 Structure |
| 33 | + |
| 34 | +### Title |
| 35 | +- Clear, concise, and descriptive. |
| 36 | +- Avoid clickbait. Example: |
| 37 | + ✅ "Understanding GraphQL Subscriptions" |
| 38 | + ❌ "This One GraphQL Trick Will Blow Your Mind" |
| 39 | + |
| 40 | +### Introduction |
| 41 | +- Hook the reader in 1–2 sentences. |
| 42 | +- Set clear expectations about what the post covers and who it's for. |
| 43 | + |
| 44 | +### Body |
| 45 | +- Use clear headers (`##`, `###`) to organize sections. |
| 46 | +- Limit paragraphs to 3–5 sentences. |
| 47 | +- Use bullet points or numbered lists for step-by-step content. |
| 48 | +- Include **code samples** where relevant (see Code Style below). |
| 49 | +- Use callouts for **tips**, **warnings**, or **best practices**. |
| 50 | + |
| 51 | +### Conclusion |
| 52 | +- Summarize key takeaways. |
| 53 | +- Link to related resources, docs, or posts. |
| 54 | +- Include a call to action if applicable (e.g., "Try it out", "Join the discussion"). |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +## 🧑💻 Code Style |
| 59 | + |
| 60 | +- Use fenced code blocks with language identifiers: |
| 61 | + <pre> |
| 62 | + \`\`\`graphql |
| 63 | + query GetUser { |
| 64 | + user(id: "1") { |
| 65 | + name |
| 66 | + } |
| 67 | + } |
| 68 | + \`\`\` |
| 69 | + </pre> |
| 70 | + |
| 71 | +- Avoid overly long code samples—focus on what supports the topic. |
| 72 | +- Explain what the code is doing either before or after the block. |
| 73 | +- Stick to consistent naming conventions (e.g., `getUser`, `createPostMutation`). |
| 74 | +--- |
| 75 | + |
| 76 | +## ✅ Do |
| 77 | + |
| 78 | +- Cite sources if you reference third-party tools or documentation. |
| 79 | +- Avoid assumptions: don’t assume the reader knows your stack. |
| 80 | +- Use inclusive language: prefer "you/the user" over gendered or assumptive terms. |
| 81 | +- Use present tense. |
| 82 | + |
| 83 | +## ❌ Don't |
| 84 | + |
| 85 | +- Overuse of metaphors. Use them sparingly to aid understanding. |
| 86 | +- Outdated examples or deprecated syntax. |
| 87 | +- Avoid passive voice when possible. |
| 88 | +- Avoid future tense. |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +Thank you for contributing to the GraphQL Blog! 🎉 |
0 commit comments