Effortlessly distribute your content across multiple platforms (Dev.to, Hashnode, Medium, WordPress, Ghost, Blogger, Tumblr, Wix) with this comprehensive TypeScript CLI engine, maximizing reach and streamlining creator workflows.
- Overview
- Key Features
- Architecture
- AI Agent Directives
- Development Setup
- Contributing
- License
- Star ⭐ This Repo
OmniDistro is a robust command-line interface (CLI) tool built with TypeScript, designed to automate the complex task of publishing content to a wide array of popular blogging and content platforms. It empowers creators to focus on writing by handling the distribution complexities, ensuring their message reaches the widest possible audience with minimal manual effort.
- Multi-Platform Support: Seamlessly publish to Dev.to, Hashnode, Medium, WordPress, Ghost, Blogger, Tumblr, and Wix.
- TypeScript Powered: Leverages TypeScript for enhanced type safety, code maintainability, and developer productivity.
- Vite Integration: Utilizes Vite for a blazing-fast development experience and optimized build process.
- Tailwind CSS: Incorporates Tailwind CSS for rapid UI development and consistent styling (if UI elements are introduced).
- Tauri Framework: Enables the creation of fast, reliable, and secure desktop applications using web technologies.
- Extensible Architecture: Designed for easy addition of new platforms and features.
- Configuration Driven: Manage publishing settings and credentials through a flexible configuration system.
This project follows a modern, modular architecture, heavily influenced by Feature-Sliced Design (FSD) principles for web applications, adapted for a CLI context. This ensures scalability, maintainability, and clear separation of concerns.
mermaid graph TD A[CLI Entrypoint] --> B(Configuration Loader) A --> C(Platform Adapters) B --> D{Content Processor} C --> D D --> E(Publisher Module) E --> F1[Dev.to API] E --> F2[Hashnode API] E --> F3[Medium API] E --> F4[WordPress API] E --> F5[Ghost API] E --> F6[Blogger API] E --> F7[Tumblr API] E --> F8[Wix API]
- CLI Entrypoint: The main
index.tsfile that orchestrates the application flow. - Configuration Loader: Manages loading user configurations, API keys, and platform-specific settings.
- Platform Adapters: Encapsulates the logic for interacting with each specific content platform's API.
- Content Processor: Handles content transformation, sanitization, and preparation for publishing.
- Publisher Module: Orchestrates the publishing process by invoking the appropriate platform adapters.
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 and apply the corresponding Apex Toolchain. This repository, OmniDistro-Content-Publishing-Engine-TypeScript-CLI, is a TypeScript-based CLI tool.
- PRIMARY SCENARIO A: WEB / APP / EXTENSION (TypeScript)
- Stack: TypeScript 6.x (Strict), Vite 7 (Rolldown), TailwindCSS v4, Tauri v2.x.
- Lint/Test: Biome (Speed) + Vitest (Unit) + Playwright (E2E).
- Architecture: Feature-Sliced Design (FSD), adapted for CLI context.
- CLI Framework:
Commander.jsor similar for robust CLI parsing.
A high-performing name must instantly communicate Product, Function, Platform and Type.
Formula: <Product-Name>-<Primary-Function>-<Platform>-<Type>
Format: Title-Case-With-Hyphens
The README is a self-contained Project Operating System.
Required Sections:
- VISUAL AUTHORITY (Above the Fold): Hero Banner/Logo, Live Badges (Shields.io,
flat-square,chirag127), Social Proof. - STRUCTURAL CLARITY: BLUF, Architecture Diagram (Mermaid/ASCII tree), Table of Contents.
- 🤖 AI AGENT DIRECTIVES (CRITICAL): Collapsible
<details>block, content aligned with AGENTS.md. - DEVELOPMENT STANDARDS: Setup, Scripts, Principles (SOLID, DRY, YAGNI).
Before generating JSON, perform deep analysis in <thinking> block: Audit, Pivot/Archive Decision, Naming Strategy, Replication Protocol, File Generation, Final Polish, Strict Adherence.
Mandate: All generated files MUST use the correct dynamic URLs based on the New Repository Name (https://github.com/chirag127/<New-Repo-Name>).
- Node.js v18+ or v20+ recommended
- npm or yarn
-
Clone the repository: bash git clone https://github.com/chirag127/OmniDistro-Content-Publishing-Engine-TypeScript-CLI.git cd OmniDistro-Content-Publishing-Engine-TypeScript-CLI
-
Install dependencies: bash npm install
yarn install
-
Configure your platforms: Create a
.envfile in the root directory and add your API keys and platform-specific credentials. Refer toconfig.example.jsonfor structure.
Use the omni-distro command followed by your desired action and platform flags.
bash
omni-distro publish --file ./my-post.md --platforms devto,hashnode
| Script | Description |
|---|---|
npm run dev |
Starts the development server (if applicable) |
npm run build |
Builds the production-ready CLI executable |
npm run lint |
Lints the codebase using Biome |
npm run format |
Formats the codebase using Biome |
npm test |
Runs unit and integration tests using Vitest |
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or fix (
git checkout -b feature/YourFeature). - Make your changes and ensure they pass all tests and linting.
- Commit your changes (
git commit -m 'Add some YourFeature'). - Push to the branch (
git push origin feature/YourFeature). - Open a Pull Request.
Please refer to .github/CONTRIBUTING.md for detailed guidelines.
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.
If you find this project useful, please consider starring it on GitHub! Your support helps the project grow.