02
Custom-domain blogs and the indie-hacker free tier that built Hashnode
Hashnode's defining feature, and the reason most developers pick it over Medium or Dev.to, is the free custom domain on every blog. Sign up, paste your custom domain like blog.yourname.dev or thoughts.indiehacker.io, point a CNAME record at hashnode-managed infrastructure, and Hashnode handles SSL provisioning, CDN, and host headers automatically. Your blog runs on a domain you own, but the writing tool, comments, drafts, and analytics all live inside Hashnode. There is no fee for the custom domain, no tier gate, no SSL upcharge. This pricing posture is unique among major blogging platforms in 2026: Medium for Publishers requires a paid plan, Substack pushes you to substack.com URLs unless you upgrade, and Ghost is self-hosted unless you pay Ghost(Pro). Hashnode gives custom domains away because the platform monetizes through Sponsors and through hosting Publications for engineering teams that pay for advanced features. The complication for widget tools: when a developer pastes blog.yourname.dev into a widget builder, the tool has to resolve that custom domain back to the underlying Hashnode personal blog identifier before it can query GraphQL. Most third-party widgets do not handle this and either reject the URL or pull no data. Poper resolves custom-domain Hashnode blogs by following redirects, reading the canonical link tag in the blog homepage HTML, querying the publication-by-host GraphQL field, and embedding the correct feed. Paste a custom domain, Poper finds the underlying Hashnode handle, and your embed works regardless of whether the public URL says hashnode.dev or your own domain.