Writing code is one thing. Writing about code is a completely different kind of beast.
And most advice on "blogging tools" is aimed at lifestyle bloggers optimizing for Pinterest traffic, not devs trying to share how they debugged a race condition at 2am.
If you're a developer who wants to write, I've got you covered.
Where to publish
First thing to decide. You want to get high traffic, own your audience, and reduce the friction.
Your own site (recommended)
I'd recommend owning your content on your own domain. Traffic compounds on your domain authority, not someone else's. Your audience is yours. You control the layout and what gets shown next to your writing.
The pros: you get to build it.
The cons: you need to build it.
It's no big deal. Try Next.js, Astro, or Hugo with a markdown-based setup. Deploy on Vercel or Cloudflare Pages for free.
For my sites, I use Next.js with markdown-based posts hosted on Vercel. I have the repositories set to auto-deploy on new commit. Each post is a .md or .mdx file. No CMS. No database.
This means - everytime I push a new commit after adding a post, the whole site gets rebuilt. It's not exactly ideal (and keeping posts in a separate CMS would avoid rebuilding the site) but it's something I can live with.
Hackernoon
Personally, I prefer hackernoon to other platforms. Mainly because I like reading posts there.
If I remember correctly, Hackernoon split from Medium to become their own thing. HN editors review every post (and do minor changes; the whole thing takes roughly a week), and everything feels fresh. I think I have three posts here so far. The platform does give you backlinks and some reach.
Substack
Substack lets you build your audience, and a mailing list. Your posts get sent to your mailing list, and you can engage with them by posting notes.
You can turn on paid subs; you earn if somebody signs up for paid subscriptions here.
I started my substack a couple months ago and it's been fun. I've also read some great posts here, so if you're thinking of building an audience or just want to read, it's a good choice.
Hashnode
Hashnode is fun. The writing experience is really good, it lets you map your custom domain (so traffic goes to your domain), has a built-in newsletter, and your posts get some distribution.
Dev.to
It's good for discovery and community engagement. People actually read things there.
SEO is fine if you're not planning to run a personal site - but if you are, cross-post here with a canonical URL pointing back to your domain so you get the SEO credit.
Medium
This I would avoid. It made sense in 2018. It doesn't anymore.
The paywall ruins the reading experience for your audience, and traffic goes to Medium's domain, not yours. I've heard many creators losing their earnings.
Ghost (self-hosted)
If you want a proper CMS with newsletters, memberships, and a nice editor - Ghost self-hosted on a cheap VPS is genuinely good. Costs maybe $5-6/month on Hetzner. The editor is clean, it handles markdown, and it has first-class newsletter support built in.
Overkill if you're just starting out. Worth it once you have a regular readership.
Just your editor
Honestly, VS Code or any editor that handles markdown is enough. If your blog is markdown-based, you're already in the right environment. Split-pane preview, syntax highlighting for code blocks, Git integration. Nothing else required.
I don't use a separate writing app. The post is a file. I open it in VS code.
Obsidian (for drafting and notes)
If you keep a PKM, Obsidian is a natural choice. Write the rough idea as a note, link it to related notes, promote it to a full post when it's ready. Low-friction way to go from "I should write about this" to an actual draft.
Hemingway App (free, browser-based)
Paste your draft in, it highlights sentences that are too long, adverbs, passive voice. Free to use in the browser. You don't have to fix everything it flags - sometimes a long sentence is intentional - but it catches the ones that are just bloated.
Grammarly
Fine for catching typos. The paid version's tone suggestions are annoying and usually wrong for technical writing. Free tier is enough.
SEO (minimal version)
You don't need much here, especially early on.
Google Search Console is free and mandatory. Connect it to your domain, submit your sitemap, and you'll see which posts get impressions and clicks. This is how you figure out what to write more of - look at what's already getting traction after a few months and double down on those topics.
Ubersuggest free tier or just Google's "People also ask" is enough for keyword research when you're starting. You're not competing with SEMrush customers on day one. Write things you know, check if people search for them, don't overthink it.
Write specific, useful posts that answer a specific question. "How to set up Postgres locally on macOS without Homebrew" will rank. "My thoughts on databases" will not.
Images and thumbnails
Technical blog posts don't need fancy images. A clean code screenshot, a simple diagram, or just no image at all is fine.
For the cases where you do want a thumbnail - social sharing, blog index cards - Thumbry is a fast way to generate a clean text-based thumbnail without opening Canva and fighting with templates. Free, browser-based, no account required. I'm still experimenting, so it may or may not be available at the time you're reading this.
For diagrams and architecture illustrations, Excalidraw (free, browser-based) is the go-to. The hand-drawn aesthetic works well for technical content and the output looks intentional rather than like a neglected PowerPoint.
Workflow
Pick a setup that stays out of your way:
- Post idea goes into a scratch note or daily note (Obsidian, a text file, whatever)
- When you're ready to write, the post is a markdown file in your
/posts directory
- Write in your editor, preview locally if you care
- Push to Git → auto-deploys
- Cross-post to Hashnode or dev.to with canonical URL pointing back to your site
That's it. No separate writing software, no CMS login, no export-import dance. The post lives where your code lives.
All tools mentioned have free tiers.