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 --> WordPressHow 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
canonicalUrlparameter 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
| 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, 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)
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.