ZYVOPDOCS
MULTI-PLATFORM SYNC

Core Concepts & Architecture

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

Core Concepts & Architecture

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 solves this through Canonical Link Injection:

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/>(rel=canonical)"]

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

How Canonical Tags Work Across Platforms

Every publishing adapter in ZyVOP maps your canonical_url into the target platform's native API:

  • 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: Injected into Yoast SEO, RankMath, or core <link rel="canonical"> meta tags.

SEO Reality Check

Search engines treat canonical tags as strong hints, not absolute mandates. While canonical tags prevent duplicate content penalties and concentrate backlink equity onto your primary domain, search engines may still index the cross-posted version if your primary site is inaccessible, loads very slowly, or lacks proper meta tags. Always ensure your primary blog is indexable and provides clean HTML.


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, code blocks, frontmatter, and canonical tags.

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