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-hashnode3description: 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."4license: MIT5---67# Dev.to & Hashnode Publishing8## When to Use910Use 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.".111213Developer 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.1415---1617## Before You Start18191. Read `.agents/developer-audience-context.md` if it exists202. Decide your canonical URL strategy (important for SEO)213. Create accounts on both platforms to reserve your username224. Understand: These platforms reward consistency and engagement2324---2526## Platform Comparison2728### Dev.to vs Hashnode2930| Feature | Dev.to | Hashnode |31|---------|--------|----------|32| Monthly visitors | ~10M+ | ~3M+ |33| Custom domain | No (subdomain only) | Yes (free) |34| Canonical URL support | Yes | Yes |35| SEO benefits | High domain authority | Your domain gets SEO |36| Monetization | No native | Sponsors, newsletter |37| Newsletter | No | Built-in |38| Series support | Yes | Yes |39| Code highlighting | Excellent | Excellent |40| Community features | Strong (reactions, comments) | Growing |41| Audience | Broader, more beginners | More senior, focused |4243### When to Use Each4445| Use Dev.to when | Use Hashnode when |46|-----------------|-------------------|47| Maximum reach is priority | Building your own brand |48| Targeting beginners/mid-level | Want custom domain SEO |49| Community engagement matters | Building email list |50| Quick validation of content | Long-term content strategy |51| Don't have your own blog | Supplementing your main blog |5253---5455## Cross-Posting Strategy5657### The Canonical URL Decision5859| Strategy | Pros | Cons |60|----------|------|------|61| **Original on your blog** | SEO to your domain, full control | Platforms may rank lower |62| **Original on Dev.to** | Maximum initial reach | No SEO to your domain |63| **Original on Hashnode (custom domain)** | SEO + platform reach | Smaller initial audience |6465### Best Practice: Your Blog + Cross-Post66671. **Publish on your blog first** — This is canonical682. **Wait 1-2 days** — Let Google index your original693. **Cross-post to Dev.to** — Set canonical URL to your blog704. **Cross-post to Hashnode** — Set canonical URL to your blog7172### Setting Canonical URLs7374**Dev.to** (in frontmatter):75```yaml76---77title: Your Title78canonical_url: https://yourblog.com/your-post79---80```8182**Hashnode** (in editor):83- Click "Article settings" gear icon84- Paste original URL in "Canonical URL" field8586---8788## Dev.to Optimization8990### Frontmatter Structure9192```yaml93---94title: "Specific, Keyword-Rich Title (Not Clickbait)"95published: true96description: "One compelling sentence that shows up in previews and SEO"97tags: javascript, webdev, tutorial, beginners98cover_image: https://your-cdn.com/image.png99canonical_url: https://yourblog.com/original-post100series: "Building a CLI from Scratch"101---102```103104### Tag Strategy105106| Tag | Followers | Use for |107|-----|-----------|---------|108| #javascript | 200K+ | JS content |109| #webdev | 150K+ | General web development |110| #beginners | 120K+ | Accessible content |111| #tutorial | 100K+ | Step-by-step guides |112| #react | 80K+ | React specific |113| #programming | 80K+ | General programming |114| #python | 70K+ | Python content |115| #devops | 50K+ | DevOps, CI/CD |116| #opensource | 40K+ | OSS projects |117| #productivity | 40K+ | Dev tools, workflows |118119**Rules**:120- Maximum 4 tags per post121- First tag is primary (appears in URL)122- Check tag follower count before using123124### What Performs on Dev.to125126| Content type | Performance | Notes |127|--------------|-------------|-------|128| Beginner tutorials | High | Largest audience segment |129| Listicles ("10 tools...") | High | Easy to consume |130| Career advice | High | Aspirational content |131| Hot takes | Medium-high | Controversial drives engagement |132| Deep technical | Medium | Niche but engaged audience |133| Project showcases | Medium | Best with story behind it |134| News/updates | Low | Competes with official sources |135136### Dev.to Engagement Features137138| Feature | How to use |139|---------|------------|140| **Reactions** | Heart, unicorn, saved, fire — different meanings |141| **Comments** | Reply to every comment for algorithm boost |142| **Series** | Group related posts, drives binge reading |143| **Discussion** | Tag #discuss for opinion/question posts |144| **Listings** | Post jobs, events, products |145146---147148## Hashnode Optimization149150### Article Settings151152| Setting | Recommendation |153|---------|----------------|154| **Subtitle** | Use for SEO keywords |155| **Cover image** | 1600x840 optimal size |156| **SEO title** | Can differ from article title |157| **SEO description** | 155 characters max |158| **Canonical URL** | Your original if cross-posting |159| **Enable table of contents** | Yes for long posts |160| **Disable comments** | No — engagement helps |161162### Tag Strategy163164Hashnode tags work differently:165- Tags are linked to global topics166- Some tags have dedicated feeds167- Fewer tags, more focused168169**Popular Hashnode tags**:170- `javascript`, `web-development`, `react`171- `devops`, `cloud`, `aws`172- `beginners`, `tutorial`173- `opensource`, `programming`174175### What Performs on Hashnode176177| Content type | Performance | Notes |178|--------------|-------------|-------|179| In-depth tutorials | High | Audience expects depth |180| Architecture posts | High | More senior audience |181| DevOps/cloud content | High | Strong niche presence |182| Career stories | Medium-high | Personal narratives work |183| Quick tips | Medium | Less than on Dev.to |184| Listicles | Medium | Less effective here |185186### Hashnode-Specific Features187188| Feature | How to use |189|---------|------------|190| **Newsletter** | Enable to collect subscribers |191| **Series** | Great for tutorials, courses |192| **Custom CSS** | Style your blog uniquely |193| **Widgets** | Add GitHub, newsletter CTAs |194| **Sponsors** | Hashnode has sponsor program |195| **Analytics** | Built-in, more detailed than Dev.to |196197---198199## Content Formatting200201### Structure That Works202203```markdown204# Title205206[Compelling hook — why should they care?]207208## Table of Contents (for long posts)209- [Section 1](#section-1)210- [Section 2](#section-2)211212## The Problem213214[What pain point are you solving?]215216## The Solution217218[Your approach, with code examples]219220### Code Example221222```language223// Well-commented code224const example = "explained";225```226227## Step-by-Step2282291. **Step one** — Explanation2302. **Step two** — Explanation2313. **Step three** — Explanation232233## Common Pitfalls234235[What to watch out for]236237## Conclusion238239[Summary + CTA]240241---242243*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].*244```245246### Formatting Best Practices247248| Element | Guideline |249|---------|-----------|250| **Headers** | Use H2 for sections, H3 for subsections |251| **Code blocks** | Always specify language for syntax highlighting |252| **Images** | Use descriptive alt text, compress for speed |253| **Links** | Descriptive text, not "click here" |254| **Length** | 1000-2500 words performs best |255| **Paragraphs** | Keep short, 2-3 sentences max |256| **Lists** | Use liberally for scannability |257258---259260## Building Followers261262### Consistency Strategy263264| Frequency | Result |265|-----------|--------|266| 4+ posts/month | Rapid follower growth |267| 2-3 posts/month | Steady growth |268| 1 post/month | Slow but sustainable |269| Sporadic | Minimal follower retention |270271### Engagement Tactics272273| Tactic | Why it works |274|--------|--------------|275| Reply to every comment | Algorithm boost + relationship building |276| Comment on others' posts | Visibility + community |277| Follow relevant authors | Often reciprocated |278| Share on social media | Drives external traffic |279| Link between your posts | Keeps readers on your content |280| Create series | Encourages following for updates |281282### Bio and Profile Optimization283284**Dev.to profile**:285- Clear profile photo286- Bio with what you write about287- Link to your main site288- List your expertise areas289290**Hashnode profile**:291- Custom domain setup292- Newsletter enabled293- Social links populated294- Blog name and tagline set295296---297298## Platform-Specific Do's and Don'ts299300### Do's3013021. **Do** set canonical URLs to protect your SEO3032. **Do** use platform-specific formatting (embeds, etc.)3043. **Do** engage with comments within 24 hours3054. **Do** cross-post to both platforms3065. **Do** use series for related content3076. **Do** optimize cover images for each platform3087. **Do** include a CTA at the end309310### Don'ts3113121. **Don't** post identical content without canonical URLs3132. **Don't** ignore comments3143. **Don't** use only self-promotional content3154. **Don't** neglect tags — they're discovery mechanisms3165. **Don't** forget mobile readability3176. **Don't** publish unfinished drafts3187. **Don't** keyword stuff your content319320---321322## Analytics and Iteration323324### Dev.to Dashboard325326| Metric | What it tells you |327|--------|-------------------|328| Views | Reach/impressions |329| Reactions | Engagement quality |330| Comments | Discussion value |331| Reading time | Content depth |332| Followers from post | Conversion rate |333334### Hashnode Analytics335336| Metric | What it tells you |337|--------|-------------------|338| Total views | Reach |339| Unique visitors | Audience size |340| Read ratio | Completion rate |341| Time on page | Engagement depth |342| Referrers | Traffic sources |343| Newsletter signups | List growth |344345### What to Optimize346347| Low metric | Try this |348|------------|----------|349| Low views | Better title, different tags |350| Low reactions | More engaging opening |351| Low comments | End with a question |352| High bounce | Better structure, hook |353| Low followers | Stronger CTA, series |354355---356357## Tools358359| Tool | Use case |360|------|----------|361| **[Octolens](https://octolens.com)** | Monitor Dev.to and Hashnode for mentions of your topic, competitors, and trends. Find popular content to learn from. |362| **Hemingway Editor** | Improve readability |363| **Carbon** | Beautiful code screenshots |364| **Unsplash** | Free cover images |365| **Canva** | Custom cover image design |366| **Grammarly** | Catch errors before publishing |367368---369370## Content Calendar Template371372| Week | Dev.to | Hashnode | Topic |373|------|--------|----------|-------|374| 1 | Publish | Cross-post (day 2) | Tutorial |375| 2 | Cross-post | Publish | Deep dive |376| 3 | Publish | Cross-post (day 2) | Listicle |377| 4 | Cross-post | Publish | Opinion/experience |378379---380381## Related Skills382383- `developer-audience-context` — Know who you're writing for384- `hacker-news-strategy` — Drive traffic from HN to your posts385- `reddit-engagement` — Share posts in relevant subreddits386- `github-presence` — Link from READMEs to your content387- `x-devs` — Promote posts on Twitter/X388389## Limitations390391- Use this skill only when the task clearly matches its upstream source and local project context.392- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.393- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.