Dev.to & Hashnode Publishing
When to Use
Use this skill when you need when the user wants to publish on Dev.to, Hashnode, or other developer blogging platforms. Trigger phrases include "Dev.to," "Hashnode," "developer blog," "cross-posting," "technical blogging," "canonical URL," or "developer content platform.".
Developer blogging platforms offer built-in audiences of hundreds of thousands of developers. This skill covers cross-posting strategy, platform-specific optimization, and building followers on Dev.to and Hashnode.
Before You Start
- Read
.agents/developer-audience-context.md if it exists
- Decide your canonical URL strategy (important for SEO)
- Create accounts on both platforms to reserve your username
- Understand: These platforms reward consistency and engagement
Platform Comparison
Dev.to vs Hashnode
| Feature |
Dev.to |
Hashnode |
| Monthly visitors |
~10M+ |
~3M+ |
| Custom domain |
No (subdomain only) |
Yes (free) |
| Canonical URL support |
Yes |
Yes |
| SEO benefits |
High domain authority |
Your domain gets SEO |
| Monetization |
No native |
Sponsors, newsletter |
| Newsletter |
No |
Built-in |
| Series support |
Yes |
Yes |
| Code highlighting |
Excellent |
Excellent |
| Community features |
Strong (reactions, comments) |
Growing |
| Audience |
Broader, more beginners |
More senior, focused |
When to Use Each
| Use Dev.to when |
Use Hashnode when |
| Maximum reach is priority |
Building your own brand |
| Targeting beginners/mid-level |
Want custom domain SEO |
| Community engagement matters |
Building email list |
| Quick validation of content |
Long-term content strategy |
| Don't have your own blog |
Supplementing your main blog |
Cross-Posting Strategy
The Canonical URL Decision
| Strategy |
Pros |
Cons |
| Original on your blog |
SEO to your domain, full control |
Platforms may rank lower |
| Original on Dev.to |
Maximum initial reach |
No SEO to your domain |
| Original on Hashnode (custom domain) |
SEO + platform reach |
Smaller initial audience |
Best Practice: Your Blog + Cross-Post
- Publish on your blog first — This is canonical
- Wait 1-2 days — Let Google index your original
- Cross-post to Dev.to — Set canonical URL to your blog
- Cross-post to Hashnode — Set canonical URL to your blog
Setting Canonical URLs
Dev.to (in frontmatter):
---
title: Your Title
canonical_url: https://yourblog.com/your-post
---
Hashnode (in editor):
- Click "Article settings" gear icon
- Paste original URL in "Canonical URL" field
Dev.to Optimization
Frontmatter Structure
---
title: "Specific, Keyword-Rich Title (Not Clickbait)"
published: true
description: "One compelling sentence that shows up in previews and SEO"
tags: javascript, webdev, tutorial, beginners
cover_image: https://your-cdn.com/image.png
canonical_url: https://yourblog.com/original-post
series: "Building a CLI from Scratch"
---
Tag Strategy
| Tag |
Followers |
Use for |
| #javascript |
200K+ |
JS content |
| #webdev |
150K+ |
General web development |
| #beginners |
120K+ |
Accessible content |
| #tutorial |
100K+ |
Step-by-step guides |
| #react |
80K+ |
React specific |
| #programming |
80K+ |
General programming |
| #python |
70K+ |
Python content |
| #devops |
50K+ |
DevOps, CI/CD |
| #opensource |
40K+ |
OSS projects |
| #productivity |
40K+ |
Dev tools, workflows |
Rules:
- Maximum 4 tags per post
- First tag is primary (appears in URL)
- Check tag follower count before using
What Performs on Dev.to
| Content type |
Performance |
Notes |
| Beginner tutorials |
High |
Largest audience segment |
| Listicles ("10 tools...") |
High |
Easy to consume |
| Career advice |
High |
Aspirational content |
| Hot takes |
Medium-high |
Controversial drives engagement |
| Deep technical |
Medium |
Niche but engaged audience |
| Project showcases |
Medium |
Best with story behind it |
| News/updates |
Low |
Competes with official sources |
Dev.to Engagement Features
| Feature |
How to use |
| Reactions |
Heart, unicorn, saved, fire — different meanings |
| Comments |
Reply to every comment for algorithm boost |
| Series |
Group related posts, drives binge reading |
| Discussion |
Tag #discuss for opinion/question posts |
| Listings |
Post jobs, events, products |
Hashnode Optimization
Article Settings
| Setting |
Recommendation |
| Subtitle |
Use for SEO keywords |
| Cover image |
1600x840 optimal size |
| SEO title |
Can differ from article title |
| SEO description |
155 characters max |
| Canonical URL |
Your original if cross-posting |
| Enable table of contents |
Yes for long posts |
| Disable comments |
No — engagement helps |
Tag Strategy
Hashnode tags work differently:
- Tags are linked to global topics
- Some tags have dedicated feeds
- Fewer tags, more focused
Popular Hashnode tags:
javascript, web-development, react
devops, cloud, aws
beginners, tutorial
opensource, programming
What Performs on Hashnode
| Content type |
Performance |
Notes |
| In-depth tutorials |
High |
Audience expects depth |
| Architecture posts |
High |
More senior audience |
| DevOps/cloud content |
High |
Strong niche presence |
| Career stories |
Medium-high |
Personal narratives work |
| Quick tips |
Medium |
Less than on Dev.to |
| Listicles |
Medium |
Less effective here |
Hashnode-Specific Features
| Feature |
How to use |
| Newsletter |
Enable to collect subscribers |
| Series |
Great for tutorials, courses |
| Custom CSS |
Style your blog uniquely |
| Widgets |
Add GitHub, newsletter CTAs |
| Sponsors |
Hashnode has sponsor program |
| Analytics |
Built-in, more detailed than Dev.to |
Content Formatting
Structure That Works
# Title
[Compelling hook — why should they care?]
## Table of Contents (for long posts)
- [Section 1](#section-1)
- [Section 2](#section-2)
## The Problem
[What pain point are you solving?]
## The Solution
[Your approach, with code examples]
### Code Example
```language
// Well-commented code
const example = "explained";
Step-by-Step
- Step one — Explanation
- Step two — Explanation
- Step three — Explanation
Common Pitfalls
[What to watch out for]
Conclusion
[Summary + CTA]
If you found this helpful, follow me for more content about [topic].
### Formatting Best Practices
| Element | Guideline |
|---------|-----------|
| **Headers** | Use H2 for sections, H3 for subsections |
| **Code blocks** | Always specify language for syntax highlighting |
| **Images** | Use descriptive alt text, compress for speed |
| **Links** | Descriptive text, not "click here" |
| **Length** | 1000-2500 words performs best |
| **Paragraphs** | Keep short, 2-3 sentences max |
| **Lists** | Use liberally for scannability |
---
## Building Followers
### Consistency Strategy
| Frequency | Result |
|-----------|--------|
| 4+ posts/month | Rapid follower growth |
| 2-3 posts/month | Steady growth |
| 1 post/month | Slow but sustainable |
| Sporadic | Minimal follower retention |
### Engagement Tactics
| Tactic | Why it works |
|--------|--------------|
| Reply to every comment | Algorithm boost + relationship building |
| Comment on others' posts | Visibility + community |
| Follow relevant authors | Often reciprocated |
| Share on social media | Drives external traffic |
| Link between your posts | Keeps readers on your content |
| Create series | Encourages following for updates |
### Bio and Profile Optimization
**Dev.to profile**:
- Clear profile photo
- Bio with what you write about
- Link to your main site
- List your expertise areas
**Hashnode profile**:
- Custom domain setup
- Newsletter enabled
- Social links populated
- Blog name and tagline set
---
## Platform-Specific Do's and Don'ts
### Do's
1. **Do** set canonical URLs to protect your SEO
2. **Do** use platform-specific formatting (embeds, etc.)
3. **Do** engage with comments within 24 hours
4. **Do** cross-post to both platforms
5. **Do** use series for related content
6. **Do** optimize cover images for each platform
7. **Do** include a CTA at the end
### Don'ts
1. **Don't** post identical content without canonical URLs
2. **Don't** ignore comments
3. **Don't** use only self-promotional content
4. **Don't** neglect tags — they're discovery mechanisms
5. **Don't** forget mobile readability
6. **Don't** publish unfinished drafts
7. **Don't** keyword stuff your content
---
## Analytics and Iteration
### Dev.to Dashboard
| Metric | What it tells you |
|--------|-------------------|
| Views | Reach/impressions |
| Reactions | Engagement quality |
| Comments | Discussion value |
| Reading time | Content depth |
| Followers from post | Conversion rate |
### Hashnode Analytics
| Metric | What it tells you |
|--------|-------------------|
| Total views | Reach |
| Unique visitors | Audience size |
| Read ratio | Completion rate |
| Time on page | Engagement depth |
| Referrers | Traffic sources |
| Newsletter signups | List growth |
### What to Optimize
| Low metric | Try this |
|------------|----------|
| Low views | Better title, different tags |
| Low reactions | More engaging opening |
| Low comments | End with a question |
| High bounce | Better structure, hook |
| Low followers | Stronger CTA, series |
---
## Tools
| Tool | Use case |
|------|----------|
| **[Octolens](https://octolens.com)** | Monitor Dev.to and Hashnode for mentions of your topic, competitors, and trends. Find popular content to learn from. |
| **Hemingway Editor** | Improve readability |
| **Carbon** | Beautiful code screenshots |
| **Unsplash** | Free cover images |
| **Canva** | Custom cover image design |
| **Grammarly** | Catch errors before publishing |
---
## Content Calendar Template
| Week | Dev.to | Hashnode | Topic |
|------|--------|----------|-------|
| 1 | Publish | Cross-post (day 2) | Tutorial |
| 2 | Cross-post | Publish | Deep dive |
| 3 | Publish | Cross-post (day 2) | Listicle |
| 4 | Cross-post | Publish | Opinion/experience |
---
## Related Skills
- `developer-audience-context` — Know who you're writing for
- `hacker-news-strategy` — Drive traffic from HN to your posts
- `reddit-engagement` — Share posts in relevant subreddits
- `github-presence` — Link from READMEs to your content
- `x-devs` — Promote posts on Twitter/X
## Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
1---
2name: dev-to-hashnode
3description: When the user wants to publish on Dev.to, Hashnode, or other developer blogging platforms. Trigger phrases include "Dev.to," "Hashnode," "developer blog," "cross-posting," "technical blogging," "canonical URL," or "developer content platform."
4risk: critical
5source: https://github.com/jonathimer/devmarketing-skills/tree/main/skills/dev-to-hashnode
6source_repo: jonathimer/devmarketing-skills
7source_type: community
8date_added: 2026-07-01
9license: MIT
10license_source: https://github.com/jonathimer/devmarketing-skills/blob/main/LICENSE
11---
12
13# Dev.to & Hashnode Publishing
14## When to Use
15
16Use this skill when you need when the user wants to publish on Dev.to, Hashnode, or other developer blogging platforms. Trigger phrases include "Dev.to," "Hashnode," "developer blog," "cross-posting," "technical blogging," "canonical URL," or "developer content platform.".
17
18
19Developer blogging platforms offer built-in audiences of hundreds of thousands of developers. This skill covers cross-posting strategy, platform-specific optimization, and building followers on Dev.to and Hashnode.
20
21---
22
23## Before You Start
24
251. Read `.agents/developer-audience-context.md` if it exists
262. Decide your canonical URL strategy (important for SEO)
273. Create accounts on both platforms to reserve your username
284. Understand: These platforms reward consistency and engagement
29
30---
31
32## Platform Comparison
33
34### Dev.to vs Hashnode
35
36| Feature | Dev.to | Hashnode |
37|---------|--------|----------|
38| Monthly visitors | ~10M+ | ~3M+ |
39| Custom domain | No (subdomain only) | Yes (free) |
40| Canonical URL support | Yes | Yes |
41| SEO benefits | High domain authority | Your domain gets SEO |
42| Monetization | No native | Sponsors, newsletter |
43| Newsletter | No | Built-in |
44| Series support | Yes | Yes |
45| Code highlighting | Excellent | Excellent |
46| Community features | Strong (reactions, comments) | Growing |
47| Audience | Broader, more beginners | More senior, focused |
48
49### When to Use Each
50
51| Use Dev.to when | Use Hashnode when |
52|-----------------|-------------------|
53| Maximum reach is priority | Building your own brand |
54| Targeting beginners/mid-level | Want custom domain SEO |
55| Community engagement matters | Building email list |
56| Quick validation of content | Long-term content strategy |
57| Don't have your own blog | Supplementing your main blog |
58
59---
60
61## Cross-Posting Strategy
62
63### The Canonical URL Decision
64
65| Strategy | Pros | Cons |
66|----------|------|------|
67| **Original on your blog** | SEO to your domain, full control | Platforms may rank lower |
68| **Original on Dev.to** | Maximum initial reach | No SEO to your domain |
69| **Original on Hashnode (custom domain)** | SEO + platform reach | Smaller initial audience |
70
71### Best Practice: Your Blog + Cross-Post
72
731. **Publish on your blog first** — This is canonical
742. **Wait 1-2 days** — Let Google index your original
753. **Cross-post to Dev.to** — Set canonical URL to your blog
764. **Cross-post to Hashnode** — Set canonical URL to your blog
77
78### Setting Canonical URLs
79
80**Dev.to** (in frontmatter):
81```yaml
82---
83title: Your Title
84canonical_url: https://yourblog.com/your-post
85---
86```
87
88**Hashnode** (in editor):
89- Click "Article settings" gear icon
90- Paste original URL in "Canonical URL" field
91
92---
93
94## Dev.to Optimization
95
96### Frontmatter Structure
97
98```yaml
99---
100title: "Specific, Keyword-Rich Title (Not Clickbait)"
101published: true
102description: "One compelling sentence that shows up in previews and SEO"
103tags: javascript, webdev, tutorial, beginners
104cover_image: https://your-cdn.com/image.png
105canonical_url: https://yourblog.com/original-post
106series: "Building a CLI from Scratch"
107---
108```
109
110### Tag Strategy
111
112| Tag | Followers | Use for |
113|-----|-----------|---------|
114| #javascript | 200K+ | JS content |
115| #webdev | 150K+ | General web development |
116| #beginners | 120K+ | Accessible content |
117| #tutorial | 100K+ | Step-by-step guides |
118| #react | 80K+ | React specific |
119| #programming | 80K+ | General programming |
120| #python | 70K+ | Python content |
121| #devops | 50K+ | DevOps, CI/CD |
122| #opensource | 40K+ | OSS projects |
123| #productivity | 40K+ | Dev tools, workflows |
124
125**Rules**:
126- Maximum 4 tags per post
127- First tag is primary (appears in URL)
128- Check tag follower count before using
129
130### What Performs on Dev.to
131
132| Content type | Performance | Notes |
133|--------------|-------------|-------|
134| Beginner tutorials | High | Largest audience segment |
135| Listicles ("10 tools...") | High | Easy to consume |
136| Career advice | High | Aspirational content |
137| Hot takes | Medium-high | Controversial drives engagement |
138| Deep technical | Medium | Niche but engaged audience |
139| Project showcases | Medium | Best with story behind it |
140| News/updates | Low | Competes with official sources |
141
142### Dev.to Engagement Features
143
144| Feature | How to use |
145|---------|------------|
146| **Reactions** | Heart, unicorn, saved, fire — different meanings |
147| **Comments** | Reply to every comment for algorithm boost |
148| **Series** | Group related posts, drives binge reading |
149| **Discussion** | Tag #discuss for opinion/question posts |
150| **Listings** | Post jobs, events, products |
151
152---
153
154## Hashnode Optimization
155
156### Article Settings
157
158| Setting | Recommendation |
159|---------|----------------|
160| **Subtitle** | Use for SEO keywords |
161| **Cover image** | 1600x840 optimal size |
162| **SEO title** | Can differ from article title |
163| **SEO description** | 155 characters max |
164| **Canonical URL** | Your original if cross-posting |
165| **Enable table of contents** | Yes for long posts |
166| **Disable comments** | No — engagement helps |
167
168### Tag Strategy
169
170Hashnode tags work differently:
171- Tags are linked to global topics
172- Some tags have dedicated feeds
173- Fewer tags, more focused
174
175**Popular Hashnode tags**:
176- `javascript`, `web-development`, `react`
177- `devops`, `cloud`, `aws`
178- `beginners`, `tutorial`
179- `opensource`, `programming`
180
181### What Performs on Hashnode
182
183| Content type | Performance | Notes |
184|--------------|-------------|-------|
185| In-depth tutorials | High | Audience expects depth |
186| Architecture posts | High | More senior audience |
187| DevOps/cloud content | High | Strong niche presence |
188| Career stories | Medium-high | Personal narratives work |
189| Quick tips | Medium | Less than on Dev.to |
190| Listicles | Medium | Less effective here |
191
192### Hashnode-Specific Features
193
194| Feature | How to use |
195|---------|------------|
196| **Newsletter** | Enable to collect subscribers |
197| **Series** | Great for tutorials, courses |
198| **Custom CSS** | Style your blog uniquely |
199| **Widgets** | Add GitHub, newsletter CTAs |
200| **Sponsors** | Hashnode has sponsor program |
201| **Analytics** | Built-in, more detailed than Dev.to |
202
203---
204
205## Content Formatting
206
207### Structure That Works
208
209```markdown
210# Title
211
212[Compelling hook — why should they care?]
213
214## Table of Contents (for long posts)
215- [Section 1](#section-1)
216- [Section 2](#section-2)
217
218## The Problem
219
220[What pain point are you solving?]
221
222## The Solution
223
224[Your approach, with code examples]
225
226### Code Example
227
228```language
229// Well-commented code
230const example = "explained";
231```
232
233## Step-by-Step
234
2351. **Step one** — Explanation
2362. **Step two** — Explanation
2373. **Step three** — Explanation
238
239## Common Pitfalls
240
241[What to watch out for]
242
243## Conclusion
244
245[Summary + CTA]
246
247---
248
249*If you found this helpful, [follow me](https://github.com/jonathimer/devmarketing-skills/tree/main/skills/dev-to-hashnode/link) for more content about [topic].*
250```
251
252### Formatting Best Practices
253
254| Element | Guideline |
255|---------|-----------|
256| **Headers** | Use H2 for sections, H3 for subsections |
257| **Code blocks** | Always specify language for syntax highlighting |
258| **Images** | Use descriptive alt text, compress for speed |
259| **Links** | Descriptive text, not "click here" |
260| **Length** | 1000-2500 words performs best |
261| **Paragraphs** | Keep short, 2-3 sentences max |
262| **Lists** | Use liberally for scannability |
263
264---
265
266## Building Followers
267
268### Consistency Strategy
269
270| Frequency | Result |
271|-----------|--------|
272| 4+ posts/month | Rapid follower growth |
273| 2-3 posts/month | Steady growth |
274| 1 post/month | Slow but sustainable |
275| Sporadic | Minimal follower retention |
276
277### Engagement Tactics
278
279| Tactic | Why it works |
280|--------|--------------|
281| Reply to every comment | Algorithm boost + relationship building |
282| Comment on others' posts | Visibility + community |
283| Follow relevant authors | Often reciprocated |
284| Share on social media | Drives external traffic |
285| Link between your posts | Keeps readers on your content |
286| Create series | Encourages following for updates |
287
288### Bio and Profile Optimization
289
290**Dev.to profile**:
291- Clear profile photo
292- Bio with what you write about
293- Link to your main site
294- List your expertise areas
295
296**Hashnode profile**:
297- Custom domain setup
298- Newsletter enabled
299- Social links populated
300- Blog name and tagline set
301
302---
303
304## Platform-Specific Do's and Don'ts
305
306### Do's
307
3081. **Do** set canonical URLs to protect your SEO
3092. **Do** use platform-specific formatting (embeds, etc.)
3103. **Do** engage with comments within 24 hours
3114. **Do** cross-post to both platforms
3125. **Do** use series for related content
3136. **Do** optimize cover images for each platform
3147. **Do** include a CTA at the end
315
316### Don'ts
317
3181. **Don't** post identical content without canonical URLs
3192. **Don't** ignore comments
3203. **Don't** use only self-promotional content
3214. **Don't** neglect tags — they're discovery mechanisms
3225. **Don't** forget mobile readability
3236. **Don't** publish unfinished drafts
3247. **Don't** keyword stuff your content
325
326---
327
328## Analytics and Iteration
329
330### Dev.to Dashboard
331
332| Metric | What it tells you |
333|--------|-------------------|
334| Views | Reach/impressions |
335| Reactions | Engagement quality |
336| Comments | Discussion value |
337| Reading time | Content depth |
338| Followers from post | Conversion rate |
339
340### Hashnode Analytics
341
342| Metric | What it tells you |
343|--------|-------------------|
344| Total views | Reach |
345| Unique visitors | Audience size |
346| Read ratio | Completion rate |
347| Time on page | Engagement depth |
348| Referrers | Traffic sources |
349| Newsletter signups | List growth |
350
351### What to Optimize
352
353| Low metric | Try this |
354|------------|----------|
355| Low views | Better title, different tags |
356| Low reactions | More engaging opening |
357| Low comments | End with a question |
358| High bounce | Better structure, hook |
359| Low followers | Stronger CTA, series |
360
361---
362
363## Tools
364
365| Tool | Use case |
366|------|----------|
367| **[Octolens](https://octolens.com)** | Monitor Dev.to and Hashnode for mentions of your topic, competitors, and trends. Find popular content to learn from. |
368| **Hemingway Editor** | Improve readability |
369| **Carbon** | Beautiful code screenshots |
370| **Unsplash** | Free cover images |
371| **Canva** | Custom cover image design |
372| **Grammarly** | Catch errors before publishing |
373
374---
375
376## Content Calendar Template
377
378| Week | Dev.to | Hashnode | Topic |
379|------|--------|----------|-------|
380| 1 | Publish | Cross-post (day 2) | Tutorial |
381| 2 | Cross-post | Publish | Deep dive |
382| 3 | Publish | Cross-post (day 2) | Listicle |
383| 4 | Cross-post | Publish | Opinion/experience |
384
385---
386
387## Related Skills
388
389- `developer-audience-context` — Know who you're writing for
390- `hacker-news-strategy` — Drive traffic from HN to your posts
391- `reddit-engagement` — Share posts in relevant subreddits
392- `github-presence` — Link from READMEs to your content
393- `x-devs` — Promote posts on Twitter/X
394
395## Limitations
396
397- Use this skill only when the task clearly matches its upstream source and local project context.
398- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
399- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.