How do I move my Hashnode developer blog to VeloCMS?
There's no one-click Hashnode importer yet. Here's the real way developers move their posts, code blocks, and custom domain into VeloCMS today.
Hashnode is popular with developers precisely because it's developer-friendly — Markdown-first writing, clean code blocks, and a built-in tech audience. If you're looking at VeloCMS, it's probably because you want more control: your own design, a domain without Hashnode branding, or a subscriber list you actually own. Here's the honest state of moving your posts over.
The honest answer: there's no automated Hashnode importer yet
VeloCMS's import page (Admin → Import) currently covers WordPress, Squarespace, Webflow, Substack, Ghost, Medium, and Instagram — Hashnode isn't one of them yet. If you were hoping to point VeloCMS at a Hashnode export and get finished draft posts back, that doesn't exist today. What does exist is two honest ways to bring your content across yourself, and they scale from a handful of posts to a few hundred.
Moving a handful of posts by hand
For a small blog, the fastest real path is opening each post fresh: Admin → Posts → New Post, then writing or reformatting the content directly in VeloCMS's editor. Fenced code blocks keep their syntax highlighting and get a copy button automatically — your developer readers get the same reading experience they had on Hashnode, and you can now restyle the code block colors to match your own theme.
Scripting it with the API, for a larger archive
If you've got dozens of posts, retyping each one isn't realistic. VeloCMS has a public REST API for creating posts programmatically — POST /api/v1/posts. Generate a key with the posts:write scope at Admin → Settings → Advanced → API Keys (this requires a Pro plan or higher, the same as VeloCMS's platform importers), convert each post's Markdown body to HTML with any converter you're comfortable with, and send it across as content_html along with title, slug, tags, and status.
curl -X POST https://yourname.velocms.org/api/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Building a REST API with Node.js",
"slug": "building-rest-api-nodejs",
"content_html": "<h2>Building a REST API with Node.js</h2><p>...</p>",
"tags": ["Node.js", "REST API"],
"status": "draft"
}'status: "draft" lands the post in Admin → Posts as a draft so you can review formatting and images before publishing — a sensible default while you're scripting a batch.
Moving images
There's no ZIP-with-an-images-folder convention. Upload each image at Admin → Media (or POST /api/v1/media with a media:write key) and use the URL it hands back inside your post's content_html. If an image is still hosted somewhere else — your old Hashnode static/ folder on GitHub, a CDN — you can reference that URL directly instead; VeloCMS doesn't require you to re-host it before it will display.
Handling embeds
Hashnode's CodePen, GitHub Gist, and other widget embeds don't survive a plain text or HTML copy — they'll show up as bare links at best. To restore one, paste the embed service's iframe code (e.g. the GitHub Gist embed snippet) directly into VeloCMS's editor as an HTML embed block. It's a one-time fix per embedded item, not automatic.
Moving your custom domain
If your Hashnode blog runs on your own domain, go to Admin → Settings → Custom Domain, add the domain, and VeloCMS starts verification through Cloudflare — you'll see a status panel with the DNS records to update. Point the CNAME your DNS provider currently sends to Hashnode at your VeloCMS subdomain instead. Propagation is typically 5–30 minutes on Cloudflare, up to 24 hours on some other providers.
Keeping your audience
Hashnode's follower graph is Hashnode's — there's no export for it. The honest playbook: publish a final post on Hashnode linking to your new VeloCMS blog and RSS feed, send a migration note through Hashnode's own newsletter tool if you used it, and set canonical URLs on any Hashnode posts you leave up so search engines credit the new home.
Frequently asked questions
- Does VeloCMS support the SEO basics developers care about? Yes — Article JSON-LD, Open Graph tags, canonical URLs, and an /llms.txt file for AI indexers ship on every post automatically.
- Is there a headless or API-first way to publish, like Hashnode's GraphQL API? VeloCMS's REST API — the same one described above, /api/v1/posts — covers creating, updating, and publishing posts with a scoped API key. It's REST, not GraphQL, but it serves the same 'publish from a script' use case.
- Will my Hashnode comments or reactions carry over? No — those live on Hashnode's platform and there's no VeloCMS equivalent for reactions. Comments start fresh on VeloCMS's native comment system.