Back to Skills

devrel-content

jonathimer
Updated 2 days ago
7 views
76
4
76
View on GitHub
Metaword

About

This Claude Skill helps developers create technical content like blog posts, tutorials, and documentation. It requires first loading a specific audience context to tailor the content's tone and language. The skill is triggered by phrases like "write a blog post" or "technical article."

Quick Install

Claude Code

Recommended
Primary
npx skills add jonathimer/devmarketing-skills -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/jonathimer/devmarketing-skills
Git CloneAlternative
git clone https://github.com/jonathimer/devmarketing-skills.git ~/.claude/skills/devrel-content

Copy and paste this command in Claude Code to install this skill

Documentation

DevRel Content

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.


Before You Start

Load your audience context first. Read .agents/developer-audience-context.md to understand:

  • Who you're writing for (role, seniority, tech stack)
  • Their pain points (what problems resonate)
  • Verbatim language (how they describe things)
  • Voice & tone (how formal/technical to be)

If the context file doesn't exist, run the developer-audience-context skill first.


The DevRel Content Framework

Phase 1: Research & Validation

Before writing anything, validate the topic is worth writing about.

Research TypeWhat to Do
Search intentGoogle your topic. What already ranks? What's missing?
Community signalsSearch Reddit, HN, Stack Overflow. Are developers asking about this?
Competitor gapsWhat have competitors written? What haven't they covered?
Internal dataSupport tickets, Discord questions, GitHub issues about this topic
Keyword researchUse Ahrefs/SEMrush for search volume on technical terms

Red flags — Don't write if:

  • You're the only one who cares about this topic
  • 10 identical articles already exist
  • The topic is too broad ("Introduction to JavaScript")
  • The topic is too narrow (no search volume, no community interest)

Phase 2: Content Type Selection

Choose the right format for your goal:

Content TypeBest ForStructure
TutorialTeaching a specific skillStep-by-step, code-heavy
GuideCovering a topic comprehensivelySections, reference material
ComparisonHelping with decisionsTable-based, pros/cons
AnnouncementLaunching features/productsNews lead, what/why/how
Thought leadershipBuilding authorityOpinion, predictions, takes
Case studySocial proofProblem → Solution → Results
TroubleshootingSolving specific errorsError → Cause → Fix

Phase 3: Outline Structure

Use this outline template:

# [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.)

Writing Code Examples

Code is the content. Get it right.

The Copy-Paste Test

Every code example must:

RequirementWhy It Matters
Run without modificationDevelopers will copy-paste. If it fails, you lose trust.
Include importsDon't assume they know which libraries to import.
Show outputWhat should they see when it works?
Handle errorsReal code has error handling. Show it.
Use real valuesNo foo, bar, example.com unless necessary.

Code Example Structure

First, 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: '[email protected]' }
\`\`\`

Language-Specific Conventions

LanguageCode BlockPackage InstallEnv Vars
JavaScript/Nodejavascript or jsnpm installprocess.env.VAR
TypeScripttypescript or tsnpm installprocess.env.VAR
Pythonpython or pypip installos.environ['VAR']
Gogogo getos.Getenv("VAR")
Rustrustcargo addstd::env::var("VAR")
Shellbash or shellN/A$VAR

Technical Accuracy Checklist

Run through before publishing:

CheckHow to Verify
Code runsCopy-paste every snippet and run it
Versions matchAre you using the current library version?
Links workClick every link
Commands workRun every CLI command
Screenshots currentDo UI screenshots match the current product?
No deprecated APIsCheck if any APIs used are deprecated
Security reviewNo hardcoded secrets, SQL injection, etc.
Peer reviewHave an engineer read it for accuracy

SEO for Developer Content

Developers use Google differently than consumers.

Developer Search Patterns

PatternExample 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"

Technical SEO Checklist

ElementBest Practice
TitleInclude primary keyword, framework names, year if relevant
Meta description150 chars, include keyword, promise specific outcome
H1Match or closely match title
H2sInclude secondary keywords, make scannable
Code blocksUse proper syntax highlighting (helps featured snippets)
Internal linksLink to related docs, tutorials, API reference
External linksLink to official docs of tools mentioned
URL slugLowercase, hyphens, include keyword

Example Optimized Title

BadGood
"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"

Content Quality Signals

What separates great devrel content from mediocre:

Do This

  • Show, don't tell — Code over prose
  • Address the "why" — Not just how to do it, but when and why
  • Acknowledge tradeoffs — Nothing is perfect; developers respect honesty
  • Link to sources — Official docs, RFCs, related articles
  • Include dates — "Updated March 2024" or version numbers
  • Progressive disclosure — Start simple, add complexity
  • Real examples — Production scenarios, not just hello world

Don't Do This

  • Wall of text — Break up with code, headers, bullets
  • Marketing speak — "Best-in-class," "seamless," "revolutionary"
  • Assuming knowledge — Define acronyms, link to prerequisites
  • Outdated content — Nothing worse than a 2019 tutorial with deprecated APIs
  • Buried lede — Put the answer first, explanation second
  • No code — Developers came for code, not prose

Content Templates

Blog Post Template

# [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]

Comparison Post Template

# [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]

Measuring Content Success

Metrics to Track

MetricWhat It Tells You
Page viewsReach (but vanity without context)
Time on pageEngagement (are they reading?)
Scroll depthDid they read to the end?
Bounce rateDid they find what they needed?
Search rankingsSEO performance
BacklinksAuthority and reference value
Social sharesResonance (especially HN, Twitter, Reddit)
Conversion eventsSign-ups, installs, docs clicks

Content → Conversion Path

Track the journey:

  1. Search/social → Blog post
  2. Blog post → Docs / quickstart
  3. Docs → Sign up / install
  4. Sign up → Activation (first success)

Tools

ToolUse Case
OctolensMonitor where your content gets shared (HN, Reddit, Twitter). Track competitor content performance. Find content ideas from developer conversations.
Grammarly / HemingwayReadability and grammar checking
Carbon / Ray.soBeautiful code screenshots
ExcalidrawTechnical diagrams
LoomQuick video walkthroughs
Ahrefs / SEMrushKeyword research and SEO tracking
Google Search ConsoleTrack search performance

Related Skills

  • developer-audience-context — Foundation for knowing your readers
  • technical-tutorials — Deep dive into step-by-step content
  • developer-newsletter — Distributing content via email
  • developer-seo — Technical SEO optimization
  • hacker-news-strategy — Sharing content on HN effectively

GitHub Repository

jonathimer/devmarketing-skills
Path: skills/devrel-content
0

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

polymarket

Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill

creating-opencode-plugins

Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill