ZYVOPDOCS
DEVELOPER PUBLISHING

Core Concepts & Architecture

Understand canonical link strategies, content normalization, destination adapters, and security in ZyVOP.

Before diving into advanced workflows, it helps to understand how ZyVOP processes content, handles syndication, and interacts with third-party publishing APIs.


The Canonical Source of Truth

When you publish the same article across multiple websites, search engines like Google, Bing, and DuckDuckGo must decide which URL to index and credit with search authority.

ZyVOP communicates your preferred URL through supported destination canonical fields:

graph LR
    Origin["Your Blog / Primary Site<br/>(Canonical Source)"]
    ZyVOP["ZyVOP Engine"]
    DevTo["DEV.to<br/>(canonical_url: Origin)"]
    Hashnode["Hashnode<br/>(originalArticleURL: Origin)"]
    Medium["Medium<br/>(canonicalUrl: Origin)"]
    WordPress["WordPress<br/>(attribution link only)"]

    Origin --> ZyVOP
    ZyVOP --> DevTo
    ZyVOP --> Hashnode
    ZyVOP --> Medium
    ZyVOP --> WordPress

How Canonical Tags Work Across Platforms

ZyVOP maps your canonical_url into destination APIs that expose a supported canonical field:

  • DEV.to: Passed in the article payload as canonical_url. DEV.to renders <link rel="canonical" href="..."> in its HTML head.
  • Hashnode: Passed in GraphQL mutation via originalArticleURL.
  • Medium: Injected via the canonicalUrl parameter in Medium's post creation API.
  • WordPress: Publishes a visible attribution link only. The current adapter does not write WordPress or SEO-plugin canonical metadata.

SEO Reality Check

Search engines treat canonical tags as strong hints, not absolute mandates. They can help consolidate duplicate URLs and ranking signals, but search engines may still index a cross-posted version when other signals disagree. Keep the preferred page indexable, accessible, and represented consistently in internal links and sitemaps.


Content Normalization Engine

Technical articles written in Markdown or MDX often contain complex structures:

  • Triple backtick code blocks with language identifiers (typescript, rust, python)
  • Mermaid diagrams
  • Tables with alignment colons
  • Relative image links (./assets/architecture.png)
  • Custom callout blocks and math blocks

Because each destination platform uses a different Markdown parser and API format, ZyVOP runs an AST (Abstract Syntax Tree) transformation pipeline:

graph TD
    Raw["Raw Markdown / MDX"] --> Parse["AST Parsing & Frontmatter Extraction"]
    Parse --> Media["Image URL Resolution & Asset Hosting"]
    Media --> Transform["Platform-Specific Syntax Transformers"]
    Transform --> AdapterDEV["DEV.to Adapter (Liquid tags & tags limit)"]
    Transform --> AdapterHash["Hashnode Adapter (GraphQL & Cover URL)"]
    Transform --> AdapterMed["Medium Adapter (HTML Conversion & Code block formatting)"]
    Transform --> AdapterWP["WordPress Adapter (Gutenberg blocks & Featured Media)"]
    Transform --> AdapterSocial["Social Adapter (Summary excerpts & permalinks)"]

Platform Normalization Details

PlatformCode Block HandlingImage RequirementsTag Limits
DEV.toStandard fenced code blocks with languageAbsolute URLs or DEV CDNMax 4 tags, alphanumeric only
HashnodeStandard fenced code blocksPublicly accessible image URLsMax 5 tags
MediumNormalized code blocks; complex tables converted to image/preAbsolute HTTPS URLsMax 5 tags
WordPressGutenberg Code / SyntaxHighlighter blocksMedia library upload or remote URLUnlimited tags & categories
Bluesky300-char truncated summary + link cardEmbedded link thumbnail (max 1MB)Inline hashtags

Destination Types: Long-Form vs. Social Broadcast

ZyVOP classifies publishing destinations into two distinct types:

1. Long-Form Publishing Destinations

Platforms designed for full-length technical articles and essays:

  • DEV.to
  • Hashnode
  • Medium
  • WordPress

When publishing to these targets, ZyVOP publishes the full article content and code blocks. It sends canonical fields to DEV.to, Hashnode, and supported Medium flows. WordPress receives a visible attribution link, but ZyVOP does not write WordPress or SEO-plugin canonical metadata.

2. Social Broadcast Destinations

Platforms designed for short-form updates and developer discovery:

  • Bluesky
  • Mastodon (available in Web App)
  • LinkedIn

When a social destination is enabled, ZyVOP generates an optimized announcement card containing:

  • Article title and concise description (or custom social excerpt)
  • Primary canonical link back to your blog or chosen publication
  • Relevant hashtags derived from your article tags

Authentication & Security Model

ZyVOP enforces strict credential separation across three layers:

  1. User Authentication:
    • Web application sessions use secure, HTTP-only JWTs.
  2. Developer Tokens (zv_ prefix):
    • For CLI, CI/CD pipelines, REST API access, and MCP tools, ZyVOP issues high-entropy developer API tokens formatted as zv_ followed by 48 hexadecimal characters.
    • Tokens can be revoked instantly from the ZyVOP dashboard without resetting your account password.
  3. Encrypted Third-Party Integration Credentials:
    • Platform tokens (DEV API keys, Hashnode PATs, Medium tokens, Bluesky app passwords) are stored encrypted at rest using AES-256-GCM.
    • Integration credentials are designed not to be returned in client bundles or written to application logs.

On this page