ZYVOPDOCS
DEVELOPER PUBLISHING
CLI Reference

zyvop import

Migrate your existing library of articles from DEV.to, Hashnode, Medium, or RSS into ZyVOP.

Migrate your existing technical blog posts into ZyVOP. This imports your article content, covers, tags, and automatically preserves the original URL as the canonical origin.

zyvop import <source> <identifier> [options]

Supported Sources

SourceIdentifier FormatExample
devtoDEV.to usernamezyvop import devto alexrivera
hashnodeHashnode username or domain (best effort)zyvop import hashnode alexrivera.hashnode.dev
mediumMedium username (with or without @)zyvop import medium @alexrivera
rssFull XML/RSS feed URLzyvop import rss https://myblog.dev/rss.xml

Hashnode archive completeness

Hashnode username/domain imports depend on public API, sitemap, page, or RSS access. Hashnode or Cloudflare can return HTTP 403, and RSS may expose only part of a publication. Do not treat the CLI result as a guaranteed complete Hashnode archive.

For a complete Hashnode migration, a Hashnode Pro publication owner or admin should use Publication Dashboard → GitHub, install the Hashnode GitHub Backup app, select a repository, run Backup all posts and optionally Backup all drafts, and confirm success under Deliveries. Download the repository as a ZIP and upload it through Dashboard → Posts → Import Articles → Hashnode Backup.

For Hashnode backups or other local Markdown archives, upload a ZIP containing up to 200 .md or .markdown files and any relative JPEG, PNG, GIF, WebP, or AVIF assets. ZIP imports are currently available in the web dashboard rather than the CLI. Free Hashnode publications do not receive the GitHub bulk backup, but known public article URLs can still be imported individually when accessible.


Example

zyvop import devto alexrivera

Output:

✔ Importing articles from devto (alexrivera)...
✔ Successfully imported 24 articles to ZyVOP! 🚀

Your imported posts are now saved in your ZyVOP dashboard with canonical URLs intact.

How Imported Articles are Processed

  1. Content Preservation: Markdown formatting and syntax fences are maintained.
  2. Canonical URL Preservation: The imported article's original link is saved as the article's canonical_url. This helps search engines attribute the original source, although canonical tags are hints rather than ranking guarantees.
  3. Draft Status: Imported posts can be edited, re-syndicated to new destinations, or backed up to your connected GitHub repository.
  4. Original Dates: ZIP frontmatter dates are retained and used when an imported draft is first published.

Markdown ZIP Frontmatter

The dashboard importer recognizes common frontmatter fields including title, subtitle, description, excerpt, seoDescription, tags, canonical_url, canonicalUrl, canonical, cover_image, coverImage, cover, published_at, publishedAt, datePublished, and date. These aliases include the metadata written by Hashnode GitHub Backup. Relative article and cover images are uploaded into ZyVOP-managed storage. Duplicate canonical URLs, or duplicate titles when no canonical URL exists, are skipped and reported in the import summary.

On this page