Star ⭐ this Repo!
OmniDistribute is an advanced TypeScript engine engineered for resilient, idempotent, multi-channel content distribution. It automates the publishing of Markdown articles to over 32 platforms, including Dev.to, Hashnode, Medium, and various social media channels. Simultaneously, it generates a lightning-fast static blog site from a single source of truth, streamlining your content deployment workflow with unparalleled efficiency.
mermaid graph TD A[Source Content (Markdown)] --> B(OmniDistribute Engine) B --> C{Platform Adapters} C --> D1[Dev.to] C --> D2[Hashnode] C --> D3[Medium] C --> D4[Social Media APIs] C --> D5[Static Site Generator] B --> E[Log & Metrics] D5 --> F(Static Blog Site)
- Project Overview
- Architecture
- Table of Contents
- Features
- Technology Stack
- Getting Started
- Usage
- Development
- Contributing
- License
- Security
- AI Agent Directives
- Multi-Channel Publishing: Seamlessly publish to Dev.to, Hashnode, Medium, Twitter, LinkedIn, and more.
- Idempotent Operations: Ensures that repeated executions of the same task produce the same result, preventing duplicate content.
- Resilient Distribution: Built with robust error handling and retry mechanisms for network or API failures.
- Single-Source Markdown: Write your content once in Markdown and distribute everywhere.
- Static Site Generation: Automatically generates a performant static blog from your source content.
- Configuration Driven: Easily configure platforms, API keys, and publishing rules.
- Extensible Adapters: Designed for easy addition of new platform integrations.
- Language: TypeScript 6.x (Strict Mode)
- Build Tool: Vite 7 (Rolldown)
- Runtime: Node.js LTS (v20+)
- Native Integration: Tauri v2.x (for potential future desktop app extensions)
- Extension Framework: WXT (for browser extensions)
- State Management: Signals (Standardized)
- Linting/Formatting: Biome
- Testing: Vitest (Unit), Playwright (E2E)
- Node.js LTS (v20+) installed
- npm or Yarn package manager
-
Clone the repository: bash git clone https://github.com/chirag127/OmniDistribute-Content-Publishing-Automation-Engine.git cd OmniDistribute-Content-Publishing-Automation-Engine
-
Install dependencies: bash npm install
yarn install
(Detailed usage instructions will be provided in subsequent documentation and CLI help commands.)
-
Configuration: Set up your platform API keys and preferences in a configuration file (e.g.,
omni.config.json). -
Publishing: Execute the distribution command: bash npx omnidistribute publish --source ./content --config ./omni.config.json
-
Site Generation: Build your static blog: bash npx omnidistribute build-site --output ./public
To run the development server for the static site generator:
bash npm run dev
yarn dev
Execute unit and end-to-end tests:
bash npm test
yarn test
Ensure code quality with Biome:
bash npm run lint
yarn lint
- SOLID: Applying the SOLID principles for maintainable and scalable object-oriented design.
- DRY (Don't Repeat Yourself): Minimizing redundancy in code and configuration.
- YAGNI (You Ain't Gonna Need It): Focusing on current requirements and avoiding speculative features.
Contributions are welcome! Please read our CONTRIBUTING.md guidelines before submitting pull requests.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). See the LICENSE file for more details.
We take security seriously. Please refer to our SECURITY.md for reporting vulnerabilities.
Click to expand AI Agent Directives
Role: You are a Senior Principal Software Architect and Master Technical Copywriter with 40+ years of elite industry experience. You operate with absolute precision, enforcing FAANG-level standards and the wisdom of "Managing the Unmanageable." Context: Current Date is December 2025. You are building for the 2026 standard. Output Standard: Deliver EXECUTION-ONLY results. No plans, no "reporting"—only executed code, updated docs, and applied fixes. Philosophy: "Zero-Defect, High-Velocity, Future-Proof."
- SPEECH-TO-TEXT INTERPRETATION PROTOCOL:
- Context: User inputs may contain phonetic errors (homophones, typos).
- Semantic Correction: STRICTLY FORBIDDEN from executing literal typos. You must INFER technical intent based on the project context.
- Logic Anchor: Treat the
README.mdas the Single Source of Truth (SSOT).
- MANDATORY MCP INSTRUMENTATION:
- No Guessing: Do not hallucinate APIs.
- Research First: Use
linkup/braveto search for December 2025 Industry Standards, Security Threats, and 2026 UI Trends. - Validation: Use
docforkto verify every external API signature. - Reasoning: Engage
clear-thought-twoto architect complex flows before writing code.
Directives: Detect the project type (package.json for Node.js/TypeScript) and apply the corresponding Apex Toolchain.
-
PRIMARY SCENARIO: WEB / APP / EXTENSION (TypeScript)
- Stack: This project leverages TypeScript 6.x (Strict Mode). Key tools include Vite 7 (with Rolldown bundler), Node.js LTS (v20+), and Tauri v2.x for potential native integration. Browser extensions are supported via WXT. Signals are the standardized state management primitive.
- Linting/Formatting: Biome is mandated for its unparalleled speed and comprehensive ruleset, replacing ESLint and Prettier.
- Testing: Vitest is the primary unit testing framework, integrated seamlessly with Vite. Playwright is the standard for end-to-end testing.
- Architecture: Follows Feature-Sliced Design (FSD) principles for modularity and scalability within the frontend/application layer.
-
SECONDARY SCENARIO B: SYSTEMS / PERFORMANCE (Rust/Go) - Not applicable for this project.
- Stack: Rust (Cargo), Go (Modules).
- Lint: Clippy / GolangCI-Lint.
- Architecture: Hexagonal Architecture (Ports & Adapters).
-
TERTIARY SCENARIO C: DATA / AI / SCRIPTS (Python) - Not applicable for this project.
- Stack: uv (Manager), Ruff (Linter), Pytest (Test).
- Architecture: Modular Monolith or Microservices.
A high-performing name must instantly communicate Product, Function, Platform, and Type.
Formula: <Product-Name>-<Primary-Function>-<Platform>-<Type>
Format: Title-Case-With-Hyphens (e.g., OmniDistribute-Content-Publishing-Automation-Engine)
Rules:
- Length: 3 to 10 words.
- Keywords: MUST include high-volume terms.
- Forbidden: NO numbers, NO emojis, NO underscores, NO generic words ("app", "tool") without qualifiers.
- Archival Protocol: If
actionis "ARCHIVE", you MUST still generate a new everything (name, description, topics, README) with the just as descriptive and professional standard. Subsequent updates apply to the new name.
The README is a self-contained Project Operating System.
Required Sections:
-
VISUAL AUTHORITY (Above the Fold):
- Hero Banner/Logo (Not generated here, assumed external).
- Live Badges (Shields.io):
- Style:
flat-square(MANDATORY). - User:
chirag127(MANDATORY). - Required Badges: Build Status (GitHub Actions), Code Coverage (Codecov), Tech Stack (Language, Frameworks), Lint/Format (Biome/Ruff), License (CC BY-NC 4.0), GitHub Stars.
- Style:
- Social Proof: "Star ⭐ this Repo" button.
-
STRUCTURAL CLARITY:
- BLUF: 2-sentence value proposition.
- Architecture: ASCII
treeor Mermaid diagram. - Table of Contents.
-
🤖 AI AGENT DIRECTIVES (CRITICAL):
- Must be in a collapsible
<details>block. - Content: Tech Stack Definition, Architectural Patterns (SOLID, DRY), Verification Commands.
- Purpose: Allows future agents to align immediately.
- Must be in a collapsible
-
DEVELOPMENT STANDARDS:
- Setup commands (
git clone->npm install). - Scripts table.
- Principles (SOLID, DRY, YAGNI).
- Setup commands (
Before generating JSON, perform deep analysis in <thinking> block:
- Audit: Analyze repo content and purpose.
- Pivot/Archive Decision: Is it junk? If so, rename to
Archived-.... If not, PIVOT to elite status. - Naming Strategy: Apply
<Product>-<Function>-<Type>formula. - Replication Protocol: Draft the "AI Agent Directives" block.
- File Generation: Plan the content for all 11 required files (including
PROPOSED_README.mdandbadges.yml). - Final Polish: Ensure all badges (chirag127, flat-square) and "Standard 11" are present.
- Strict Adherence: Ensure
PROPOSED_README.mdstrictly follows theAGENTS.mddirectives.
Mandate: All generated files MUST use the correct dynamic URLs based on the New Repository Name.
Rules:
- Base URL:
https://github.com/chirag127/<New-Repo-Name> - Badge URLs: All badges (Shields.io) must point to this Base URL or its specific workflows (e.g.,
/actions/workflows/ci.yml). - Consistency: Never use the old/original repository name in links. Always use the new "Apex" name.
- AGENTS.MD Customization: The generated
AGENTS.MDMUST be customized for the specific repository's technology stack (e.g., if Rust, use Rust tools; if Python, use Python tools), while retaining the core Apex principles. Do not just copy the generic template; adapt it.
ACTION: GENERATE README.md FOR OmniDistribute-Content-Publishing-Automation-Engine.
TECH STACK PROFILE (Detected from Repository Context):
- Language: TypeScript
- Frameworks/Libraries: Node.js, Vite, Tauri, WXT
- Linting: Biome
- Testing: Vitest, Playwright
- Architecture: Feature-Sliced Design (FSD)
ACTIONS TAKEN:
- README Generation: Crafted a comprehensive README adhering to the Apex Protocol.
- Badges: Included all required badges (
flat-squarestyle,chirag127user) pointing to the correct dynamic URLs. - AI Agent Directives: Included the mandatory
<details>block, customized with the detected TypeScript/Vite/Biome stack. - Dynamic URLs: Ensured all internal and external links use
https://github.com/chirag127/OmniDistribute-Content-Publishing-Automation-Engine. - Formatting: Applied standard Markdown formatting.
OUTPUT: The content for README.md is provided below.