Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user wants to create technical content for developers including blog posts, tutorials, and documentation. Trigger phrases include "write a blog post," "technical article," "developer content," "tutorial," "devrel content," "dev blog," "technical writing," or "content for...
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 180% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 129% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 117% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 107% | 0% |
Use this skill when you need when the user wants to create technical content for developers including blog posts, tutorials, and documentation. Trigger phrases include "write a blog post," "technical article," "developer content," "tutorial," "devrel content," "dev blog," "technical writing," or "content for...
This skill helps you create technical content that developers actually read: blog posts, tutorials, documentation, and thought leadership pieces that build trust and drive adoption.
Load your audience context first. Read .agents/developer-audience-context.md to understand:
If the context file doesn't exist, run the developer-audience-context skill first.
Before writing anything, validate the topic is worth writing about.
| Research Type | What to Do | |--------------|------------| | Search intent | Google your topic. What already ranks? What's missing? | | Community signals | Search Reddit, HN, Stack Overflow. Are developers asking about this? | | Competitor gaps | What have competitors written? What haven't they covered? | | Internal data | Support tickets, Discord questions, GitHub issues about this topic | | Keyword research | Use Ahrefs/SEMrush for search volume on technical terms |
Red flags — Don't write if:
Choose the right format for your goal:
| Content Type | Best For | Structure | |-------------|----------|-----------| | Tutorial | Teaching a specific skill | Step-by-step, code-heavy | | Guide | Covering a topic comprehensively | Sections, reference material | | Comparison | Helping with decisions | Table-based, pros/cons | | Announcement | Launching features/products | News lead, what/why/how | | Thought leadership | Building authority | Opinion, predictions, takes | | Case study | Social proof | Problem → Solution → Results | | Troubleshooting | Solving specific errors | Error → Cause → Fix |
Use this outline template:
markdown# [Title that promises specific value] ## Hook (2-3 sentences) - State the problem or opportunity - Establish credibility ("We migrated 10,000 repos...") - Promise what the reader will learn ## Context (optional) - Brief background if needed - Link to prerequisites ## The Meat ### Section 1: [First major concept] - Explanation - Code example - Common pitfall ### Section 2: [Second major concept] - Explanation - Code example - Real-world application ### Section 3: [Third major concept] - Explanation - Code example - Advanced tip ## Putting It Together - Complete example - Working code ## What's Next - Links to deeper content - Call to action (try the product, join Discord, etc.)
Code is the content. Get it right.
Every code example must:
| Requirement | Why It Matters | |------------|----------------| | Run without modification | Developers will copy-paste. If it fails, you lose trust. | | Include imports | Don't assume they know which libraries to import. | | Show output | What should they see when it works? | | Handle errors | Real code has error handling. Show it. | | Use real values | No foo, bar, example.com unless necessary. |
markdownFirst, install the dependencies: \`\`\`bash npm install your-library axios \`\`\` Now create a file called `fetch-data.js`: \`\`\`javascript // fetch-data.js import { Client } from 'your-library'; import axios from 'axios'; const client = new Client({ apiKey: process.env.YOUR_API_KEY // Use environment variables }); async function fetchUserData(userId) { try { const user = await client.users.get(userId); console.log(`Fetched user: ${user.name}`); return user; } catch (error) { console.error(`Failed to fetch user: ${error.message}`); throw error; } } // Example usage fetchUserData('user_123') .then(user => console.log(user)) .catch(err => process.exit(1)); \`\`\` Run it: \`\`\`bash YOUR_API_KEY=sk_test_xxx node fetch-data.js \`\`\` Expected output: \`\`\` Fetched user: Jane Developer { id: 'user_123', name: 'Jane Developer', email: 'jane@example.dev' } \`\`\`
| Language | Code Block | Package Install | Env Vars | |----------|-----------|-----------------|----------| | JavaScript/Node | javascript or js | npm install | process.env.VAR | | TypeScript | typescript or ts | npm install | process.env.VAR | | Python | python or py | pip install | os.environ['VAR'] | | Go | go | go get | os.Getenv("VAR") | | Rust | rust | cargo add | std::env::var("VAR") | | Shell | bash or shell | N/A | $VAR |
Run through before publishing:
| Check | How to Verify | |-------|---------------| | Code runs | Copy-paste every snippet and run it | | Versions match | Are you using the current library version? | | Links work | Click every link | | Commands work | Run every CLI command | | Screenshots current | Do UI screenshots match the current product? | | No deprecated APIs | Check if any APIs used are deprecated | | Security review | No hardcoded secrets, SQL injection, etc. | | Peer review | Have an engineer read it for accuracy |
Developers use Google differently than consumers.
| Pattern | Example Searches | |---------|-----------------| | Error messages | "TypeError: Cannot read property 'map' of undefined" | | How to | "how to deploy next.js to vercel" | | Comparison | "prisma vs typeorm 2024" | | Best practices | "typescript project structure best practices" | | Alternatives | "alternatives to firebase" | | With | "react with typescript tutorial" |
| Element | Best Practice | |---------|--------------| | Title | Include primary keyword, framework names, year if relevant | | Meta description | 150 chars, include keyword, promise specific outcome | | H1 | Match or closely match title | | H2s | Include secondary keywords, make scannable | | Code blocks | Use proper syntax highlighting (helps featured snippets) | | Internal links | Link to related docs, tutorials, API reference | | External links | Link to official docs of tools mentioned | | URL slug | Lowercase, hyphens, include keyword |
| Bad | Good | |-----|------| | "Using Our API" | "How to Authenticate with the YourProduct API (Node.js)" | | "Database Guide" | "PostgreSQL Connection Pooling: Complete Guide with pgBouncer" | | "Getting Started" | "Getting Started with YourProduct: Your First API Call in 5 Minutes" |
What separates great devrel content from mediocre:
markdown# [Specific, keyword-rich title] [2-3 sentence hook: problem + promise] ## The Problem [1 paragraph explaining the pain point] ## The Solution [Brief explanation of your approach] ### Step 1: [Action] [Explanation] \`\`\`language // Code \`\`\` ### Step 2: [Action] [Explanation] \`\`\`language // Code \`\`\` ### Step 3: [Action] [Explanation] \`\`\`language // Code \`\`\` ## Complete Example \`\`\`language // Full working code \`\`\` ## Troubleshooting ### [Common Error 1] [Solution] ### [Common Error 2] [Solution] ## What's Next - [Link to deeper dive] - [Link to related tutorial] - [CTA: Try it yourself]
markdown# [Tool A] vs [Tool B]: [Specific Use Case] ([Year]) [1 paragraph: Who this comparison is for and what you'll learn] ## Quick Comparison | Feature | Tool A | Tool B | |---------|--------|--------| | [Feature 1] | | | | [Feature 2] | | | | [Feature 3] | | | ## When to Choose [Tool A] - [Scenario 1] - [Scenario 2] - [Scenario 3] ## When to Choose [Tool B] - [Scenario 1] - [Scenario 2] - [Scenario 3] ## Deep Dive: [Specific Aspect] ### Tool A Approach [Explanation + code] ### Tool B Approach [Explanation + code] ## Our Recommendation [Specific guidance based on use case]
| Metric | What It Tells You | |--------|------------------| | Page views | Reach (but vanity without context) | | Time on page | Engagement (are they reading?) | | Scroll depth | Did they read to the end? | | Bounce rate | Did they find what they needed? | | Search rankings | SEO performance | | Backlinks | Authority and reference value | | Social shares | Resonance (especially HN, Twitter, Reddit) | | Conversion events | Sign-ups, installs, docs clicks |
Track the journey:
| Tool | Use Case | |------|----------| | Octolens | Monitor where your content gets shared (HN, Reddit, Twitter). Track competitor content performance. Find content ideas from developer conversations. | | Grammarly / Hemingway | Readability and grammar checking | | Carbon / Ray.so | Beautiful code screenshots | | Excalidraw | Technical diagrams | | Loom | Quick video walkthroughs | | Ahrefs / SEMrush | Keyword research and SEO tracking | | Google Search Console | Track search performance |
developer-audience-context — Foundation for knowing your readerstechnical-tutorials — Deep dive into step-by-step contentdeveloper-newsletter — Distributing content via emaildeveloper-seo — Technical SEO optimizationhacker-news-strategy — Sharing content on HN effectivelyOther measured skills in the registry, with their headline benchmark lift.