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 --> WordPressHow 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
canonicalUrlparameter 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
| Platform | Code Block Handling | Image Requirements | Tag Limits |
|---|---|---|---|
| DEV.to | Standard fenced code blocks with language | Absolute URLs or DEV CDN | Max 4 tags, alphanumeric only |
| Hashnode | Standard fenced code blocks | Publicly accessible image URLs | Max 5 tags |
| Medium | Normalized code blocks; complex tables converted to image/pre | Absolute HTTPS URLs | Max 5 tags |
| WordPress | Gutenberg Code / SyntaxHighlighter blocks | Media library upload or remote URL | Unlimited tags & categories |
| Bluesky | 300-char truncated summary + link card | Embedded 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)
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:
- User Authentication:
- Web application sessions use secure, HTTP-only JWTs.
- 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.
- For CLI, CI/CD pipelines, REST API access, and MCP tools, ZyVOP issues high-entropy developer API tokens formatted as
- 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.