type: decision
status: active
timestamp: 2026-06-20
tags: [decisions, architecture, oriz-omnipost, cross-post, rss, blog]

RSS-driven cross-post engine — oriz-omnipost

@chirag127/post-site fans RSS posts to other platforms new entry out to every blogging platform that exposes a public API. Adapter pattern; idempotent; canonical URL preserved; short-link fallback when the target truncates content.

RSS-driven cross-post engine — oriz-omnipost

Decision

@chirag127/post-site is the family’s single cross-poster. It reads the canonical RSS feed at blog.oriz.in/rss.xml, diffs against its persisted state, and fans each new entry out to every supported blogging platform via a pluggable Adapter pattern — one adapter per platform (dev.to, Hashnode, Medium-via-Friend, Substack-API-when- public, etc.). Each post on an external platform carries a canonical_url pointing back to the original at blog.oriz.in/<slug>.

When a target platform refuses long content, the adapter falls back to posting a teaser + a short link generated by the family’s short-link Worker (s.oriz.in, see services/business/short-link/cloudflare-worker.md). Platforms with no API are not used at all.

Each blog post is self-contained — series ARE allowed, but every part of a series is independently readable and links to the canonical landing page on blog.oriz.in (NOT to other parts of the series on external platforms). The series-as-rabbit-hole stays exclusive to the canonical site.

Why

User direction (verbatim 2026-06-20): “Cross post to all of the blogging platform possible … If the website don’t support the API then don’t use it … if the data platform don’t allow too much content then we will post the link of our website blogging website as a short link … currently many blogs are a series of blogs. I want each blog has single blog only so that they are self content … There can be series of blogs but they will link to the initial website, blog.oriz.in only … Every best pattern should be used … taking the RSS feed and putting it to all of the platform.”

The family writes blogs once on blog.oriz.in. Cross-posting to where readers already live (dev.to, Hashnode, etc.) raises reach without splitting authorship. Canonical URL on every cross-post preserves SEO authority. RSS as the source-of-truth means the engine is decoupled from the blog site’s framework — any future migration of oriz-blog-site doesn’t break distribution.

Implications

Architecture

Best-practice pattern bundle (user: “Every best pattern should be used”)

Single-blog rule

Platform list (adapter status — research agent’s output merges later)

Initial stubs in packages/oriz-omnipost/src/adapters/:

Real implementations land in a follow-up pass. Substack, Medium, LinkedIn, Mastodon, Bluesky, Telegram, Reddit etc. are evaluated then.

What we don’t do

Cross-refs


Edit on GitHub · Back to index