# thearnavrustagi/marketmenow architecture

> Architecture diagram of the GitHub repository thearnavrustagi/marketmenow, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thearnavrustagi/marketmenow
- Repository: https://github.com/thearnavrustagi/marketmenow

## Overview

1. **Overall shape**
   MarketMeNow is a Python 3.12+ monorepo built around a central orchestration core plus platform-specific adapters. The system is designed to generate, transform, review, and publish marketing content across multiple channels from shared project config and reusable “capsules.”

2. **Core boundary: `src/marketmenow`**
   The `marketmenow` package is the architectural center. It contains the domain models, workflow registry, pipeline/orchestrator logic, campaign manager/planner, scheduling, project management, prompt building, normalisation, and shared utilities like text sanitisation and embedding-based selection.

3. **Ports-and-adapters contract**
   The core talks to the outside world through explicit ports in `src/marketmenow/ports` for renderer, uploader, platform adapter, and analytics concerns. This is the key boundary to show in a diagram: core logic never depends directly on platform APIs, browsers, or SDKs.

4. **Platform adapters**
   Each platform lives under `src/adapters/<platform>` and owns its own CLI, settings, renderer, uploader, and any browser/API client code. Supported integration surfaces include Instagram, Twitter/X, Reddit, LinkedIn, YouTube, TikTok, Facebook, and Email, with each adapter encapsulating the platform-specific publishing mechanics.

5. **Content generation flow**
   The typical flow is: load active project config and prompts, build content through a workflow, render it into platform-specific assets/text, sanitise the final text, and upload/publish via the adapter. This pipeline appears repeatedly across reels, posts, threads, replies, comments, outreach messages, and email sends.

6. **Project configuration layer**
   Brand and strategy are not hardcoded; they live under `projects/<slug>/` and global `prompts/` plus platform-specific prompt YAMLs and templates. Each project carries product description, personas, targets, campaigns, feedback assets, and generation configs, so workflows resolve content from the active project first and then fall back to global defaults.

7. **Workflow system**
   `src/marketmenow/workflows` contains the named end-to-end jobs such as Instagram reel, Instagram carousel, Twitter thread/engage/outreach, Reddit launch/engage/outreach, LinkedIn post, YouTube short, TikTok reel, email outreach, and capsule repurposing/posting. The workflow registry and step registry provide the composition layer that maps these jobs to reusable pipeline steps.

8. **Reusable “content capsule” model**
   A major architectural concept is the capsule: generated content is packaged so it can be reposted or repurposed without regeneration. The capsule-related steps and workflows support cross-platform reuse, such as turning a reel into a YouTube short or a post/thread into another format.

9. **Instagram-specific subsystem**
   Instagram is the most elaborate adapter. It includes carousel generation, grading, reel scripting/TTS, Figma export, and a substantial Remotion-based video rendering pipeline under `src/adapters/instagram/reels/remotion`. That subtree is a separate Node/TypeScript video composition app embedded inside the Python repo, used to render scenes, transitions, and assets for reels.

10. **Twitter/X subsystem**
    Twitter has both content publishing and outreach automation. In addition to thread/reply generation and posting, there is a dedicated outreach area for profile scraping, vector-style discovery of prospects, DM sending, and performance tracking, which makes Twitter a richer “engage” pipeline than a simple post publisher.

11. **Feedback and learning loop**
    The feedback subsystem under `src/marketmenow/core/feedback` stores and classifies feedback, generates guidelines, and tracks sentiment. Instagram has its own grading service as well. These pieces feed the system’s in-context-learning and example-selection behavior so future generations can adapt to prior performance.

12. **Campaigns and scheduling**
    The repo supports campaign-level planning and daemonized execution through `campaign_*` core modules and YAML campaign definitions in `projects/*/campaigns` and top-level `campaigns/`. This is the layer that turns one-off content generation into scheduled, multi-step marketing runs.

13. **Web dashboard**
    `src/web` is a separate FastAPI-style web application layer with routes, templates, static assets, queue worker, credential handling, and progress/events support. It is the human control plane for reviewing, generating, managing flows, monitoring queues, and submitting work to the same core services the CLI uses.

14. **External dependencies and infrastructure**
    The repo integrates with LLM providers via `src/marketmenow/integrations/providers` (OpenAI, Anthropic, Gemini) and uses browser automation, SMTP, platform APIs, Google/YouTube auth, and Figma export where needed. Operationally it expects `uv`, Docker/PostgreSQL for persistence, Playwright/Chromium for browser-driven flows, and Node.js for Remotion-based reel rendering.

15. **What to draw as the main diagram**
    The clean diagram boundary is: CLI/Web/Queue Worker at the top, then the `marketmenow` core orchestrator and workflow registry in the middle, then platform adapters and external services at the edge. Around that, show project YAML/prompts/templates as a configuration/data source, and feedback/analytics as the closed loop that informs future generations.

Main entry points: [`src/marketmenow/ports/platform_adapter.py`](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/platform_adapter.py) (Platform Port), [`src/marketmenow/ports/uploader.py`](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/uploader.py) (Uploader Port), [`src/marketmenow/core/orchestrator.py`](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/orchestrator.py) (Orchestrator), [`src/marketmenow/core/pipeline.py`](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/pipeline.py) (Pipeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core"]
  node_cli["CLI<br/>entrypoint<br/>[cli.py]"]
  node_orchestrator["Orchestrator<br/>core orchestration<br/>[orchestrator.py]"]
  node_workflow_registry["Workflow Registry"]
  node_step_registry["Step Registry<br/>[registry.py]"]
  node_pipeline["Pipeline<br/>[pipeline.py]"]
  node_capsule["Capsule<br/>content packaging<br/>[capsule.py]"]
  node_project_manager["Project Manager<br/>project config<br/>[project_manager.py]"]
  node_prompt_builder["Prompt Builder<br/>prompt assembly<br/>[prompt_builder.py]"]
  node_text_sanitiser["Sanitiser<br/>text cleanup<br/>[text_sanitiser.py]"]
  node_feedback["Feedback Loop<br/>feedback system<br/>[orchestrator.py]"]
  node_campaigns["Campaigns<br/>campaign planning"]
  node_distribution["Distribution<br/>routing<br/>[distributor.py]"]
  node_platform_port{{"Platform Port<br/>port interface"}}
  node_renderer_port{{"Renderer Port<br/>port interface"}}
  node_uploader_port{{"Uploader Port<br/>port interface<br/>[uploader.py]"}}
end

subgraph group_adapters["Adapters"]
  node_instagram["Instagram<br/>platform adapter<br/>[adapter.py]"]
  node_twitter["Twitter/X<br/>platform adapter<br/>[adapter.py]"]
  node_reddit["Reddit<br/>platform adapter<br/>[adapter.py]"]
  node_linkedin["LinkedIn<br/>platform adapter<br/>[adapter.py]"]
  node_youtube["YouTube<br/>platform adapter<br/>[adapter.py]"]
  node_tiktok["TikTok<br/>platform adapter<br/>[adapter.py]"]
  node_email["Email<br/>message adapter<br/>[sender.py]"]
end

subgraph group_web["Web"]
  node_webapp["Web App<br/>fastapi app<br/>[app.py]"]
  node_queue_worker["Queue Worker<br/>background worker<br/>[queue_worker.py]"]
end

subgraph group_config["Config"]
  node_projects["Projects<br/>project data<br/>[project.yaml]"]
  node_prompts["Prompts<br/>prompt data<br/>[prompt.md]"]
  node_campaign_defs["Campaign YAMLs<br/>campaign config"]
end

subgraph group_external["External"]
  node_llm_providers[("LLM Providers<br/>external ai<br/>[openai.py]")]
  node_browser_automation(("Browser/Playwright<br/>external runtime"))
  node_remotion["Remotion App<br/>node video renderer<br/>[Root.tsx]"]
end

node_cli -->|"starts"| node_orchestrator
node_webapp -->|"uses"| node_orchestrator
node_queue_worker -->|"runs"| node_pipeline
node_orchestrator -->|"selects"| node_workflow_registry
node_workflow_registry -->|"composes"| node_step_registry
node_step_registry -->|"executes"| node_pipeline
node_pipeline -->|"loads"| node_project_manager
node_project_manager -->|"reads"| node_projects
node_project_manager -->|"falls back to"| node_prompts
node_prompt_builder -->|"reads"| node_projects
node_prompt_builder -->|"reads"| node_prompts
node_orchestrator -->|"builds"| node_prompt_builder
node_orchestrator -->|"cleans"| node_text_sanitiser
node_pipeline -->|"packages"| node_capsule
node_capsule -->|"repurposes"| node_pipeline
node_feedback -->|"informs"| node_project_manager
node_campaigns -->|"schedules"| node_workflow_registry
node_distribution -->|"targets"| node_platform_port
node_platform_port -->|"implemented by"| node_instagram
node_platform_port -->|"implemented by"| node_twitter
node_platform_port -->|"implemented by"| node_reddit
node_platform_port -->|"implemented by"| node_linkedin
node_platform_port -->|"implemented by"| node_youtube
node_platform_port -->|"implemented by"| node_tiktok
node_platform_port -->|"implemented by"| node_email
node_renderer_port -->|"implemented by"| node_instagram
node_renderer_port -->|"implemented by"| node_twitter
node_renderer_port -->|"implemented by"| node_reddit
node_uploader_port -->|"implemented by"| node_instagram
node_uploader_port -->|"implemented by"| node_twitter
node_uploader_port -->|"implemented by"| node_reddit
node_uploader_port -->|"implemented by"| node_linkedin
node_uploader_port -->|"implemented by"| node_youtube
node_uploader_port -->|"implemented by"| node_tiktok
node_uploader_port -->|"implemented by"| node_email
node_instagram -->|"renders via"| node_remotion
node_instagram -->|"uses"| node_browser_automation
node_twitter -->|"uses"| node_browser_automation
node_linkedin -->|"uses"| node_browser_automation
node_reddit -->|"uses"| node_browser_automation
node_youtube -->|"uses"| node_llm_providers
node_webapp -->|"queues"| node_queue_worker

click node_cli "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/cli.py"
click node_orchestrator "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/orchestrator.py"
click node_workflow_registry "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/workflow_registry.py"
click node_step_registry "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/steps/registry.py"
click node_pipeline "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/pipeline.py"
click node_capsule "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/capsule.py"
click node_project_manager "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/project_manager.py"
click node_prompt_builder "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/prompt_builder.py"
click node_text_sanitiser "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/text_sanitiser.py"
click node_feedback "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/feedback/orchestrator.py"
click node_campaigns "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/campaign_manager.py"
click node_distribution "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/distributor.py"
click node_platform_port "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/platform_adapter.py"
click node_renderer_port "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/content_renderer.py"
click node_uploader_port "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/uploader.py"
click node_webapp "https://github.com/thearnavrustagi/marketmenow/blob/main/src/web/app.py"
click node_queue_worker "https://github.com/thearnavrustagi/marketmenow/blob/main/src/web/queue_worker.py"
click node_instagram "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/instagram/adapter.py"
click node_twitter "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/twitter/adapter.py"
click node_reddit "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/reddit/adapter.py"
click node_linkedin "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/linkedin/adapter.py"
click node_youtube "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/youtube/adapter.py"
click node_tiktok "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/tiktok/adapter.py"
click node_email "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/email/sender.py"
click node_projects "https://github.com/thearnavrustagi/marketmenow/blob/main/projects/gradeasy/project.yaml"
click node_prompts "https://github.com/thearnavrustagi/marketmenow/blob/main/prompts/prompt.md"
click node_campaign_defs "https://github.com/thearnavrustagi/marketmenow/blob/main/campaigns/twitter-outreach.example.yaml"
click node_llm_providers "https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/integrations/providers/openai.py"
click node_remotion "https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/instagram/reels/remotion/src/Root.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_orchestrator,node_workflow_registry,node_step_registry,node_pipeline,node_capsule,node_project_manager,node_prompt_builder,node_text_sanitiser,node_feedback,node_campaigns,node_distribution,node_platform_port,node_renderer_port,node_uploader_port toneBlue
class node_instagram,node_twitter,node_reddit,node_linkedin,node_youtube,node_tiktok,node_email toneAmber
class node_webapp,node_queue_worker toneMint
class node_projects,node_prompts,node_campaign_defs toneRose
class node_llm_providers,node_browser_automation,node_remotion toneIndigo
```

## Components

### Core

Shared orchestration, workflow, and domain logic

- [CLI](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/cli.py): entrypoint · Command-line entry into the system · `src/marketmenow/cli.py`
- [Orchestrator](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/orchestrator.py): core orchestration · Coordinates workflow execution and shared services · `src/marketmenow/core/orchestrator.py`
- [Workflow Registry](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/workflow_registry.py): registry · Maps named jobs to workflow definitions · `src/marketmenow/core/workflow_registry.py`
- [Step Registry](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/steps/registry.py): registry · Resolves reusable pipeline steps · `src/marketmenow/steps/registry.py`
- [Pipeline](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/pipeline.py): execution pipeline · Shared step execution and data flow · `src/marketmenow/core/pipeline.py`
- [Capsule](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/capsule.py): content packaging · Packages generated content for reuse and repurposing · `src/marketmenow/core/capsule.py`
- [Project Manager](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/project_manager.py): project config · Loads active project context and project-level defaults · `src/marketmenow/core/project_manager.py`
- [Prompt Builder](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/prompt_builder.py): prompt assembly · Builds prompts from project, global, and platform sources · `src/marketmenow/core/prompt_builder.py`
- [Sanitiser](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/text_sanitiser.py): text cleanup · Normalises and sanitises final content text · `src/marketmenow/core/text_sanitiser.py`
- [Feedback Loop](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/feedback/orchestrator.py): feedback system · Stores, classifies, and turns feedback into guidelines · `src/marketmenow/core/feedback/orchestrator.py`
- [Campaigns](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/campaign_manager.py): campaign planning · Plans and schedules multi-step marketing runs · `src/marketmenow/core/campaign_manager.py`
- [Distribution](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/core/distributor.py): routing · Routes content to channels and publishers · `src/marketmenow/core/distributor.py`
- [Platform Port](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/platform_adapter.py): port interface · Abstract boundary for platform adapters · `src/marketmenow/ports/platform_adapter.py`
- [Renderer Port](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/content_renderer.py): port interface · Abstract boundary for content rendering · `src/marketmenow/ports/content_renderer.py`
- [Uploader Port](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/ports/uploader.py): port interface · Abstract boundary for publishing and upload · `src/marketmenow/ports/uploader.py`

### Adapters

Platform-specific publishing and discovery implementations

- [Instagram](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/instagram/adapter.py): platform adapter · Carousel, reels, grading, Figma, and publishing adapter · `src/adapters/instagram/adapter.py`
- [Twitter/X](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/twitter/adapter.py): platform adapter · Thread, replies, engage, outreach, and publishing adapter · `src/adapters/twitter/adapter.py`
- [Reddit](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/reddit/adapter.py): platform adapter · Post, comment, launch, and outreach adapter · `src/adapters/reddit/adapter.py`
- [LinkedIn](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/linkedin/adapter.py): platform adapter · Post generation, browser/API publishing adapter · `src/adapters/linkedin/adapter.py`
- [YouTube](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/youtube/adapter.py): platform adapter · Shorts analytics, rendering, and upload adapter · `src/adapters/youtube/adapter.py`
- [TikTok](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/tiktok/adapter.py): platform adapter · Reel publishing adapter · `src/adapters/tiktok/adapter.py`
- [Email](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/email/sender.py): message adapter · Email generation and sending adapter · `src/adapters/email/sender.py`

### Web

Human control plane and queue worker

- [Web App](https://github.com/thearnavrustagi/marketmenow/blob/main/src/web/app.py): fastapi app · Dashboard and workflow control plane · `src/web/app.py`
- [Queue Worker](https://github.com/thearnavrustagi/marketmenow/blob/main/src/web/queue_worker.py): background worker · Processes queued jobs and events · `src/web/queue_worker.py`

### Config

Projects, prompts, templates, and campaign definitions

- [Projects](https://github.com/thearnavrustagi/marketmenow/blob/main/projects/gradeasy/project.yaml): project data · Project-specific configs, personas, targets, feedback, and templates · `projects/gradeasy/project.yaml`
- [Prompts](https://github.com/thearnavrustagi/marketmenow/blob/main/prompts/prompt.md): prompt data · Global and project prompt YAMLs and templates · `prompts/prompt.md`
- [Campaign YAMLs](https://github.com/thearnavrustagi/marketmenow/blob/main/campaigns/twitter-outreach.example.yaml): campaign config · Top-level and project campaign definitions · `campaigns/twitter-outreach.example.yaml`

### External

Third-party services and runtimes

- [LLM Providers](https://github.com/thearnavrustagi/marketmenow/blob/main/src/marketmenow/integrations/providers/openai.py): external ai · OpenAI, Anthropic, and Gemini model backends · `src/marketmenow/integrations/providers/openai.py`
- **Browser/Playwright**: external runtime · Browser-driven automation used by adapters
- [Remotion App](https://github.com/thearnavrustagi/marketmenow/blob/main/src/adapters/instagram/reels/remotion/src/Root.tsx): node video renderer · Embedded TypeScript video composition app for Instagram reels · `src/adapters/instagram/reels/remotion/src/Root.tsx`

## Connections

- CLI → Orchestrator: starts · CLI invokes core orchestration
- Web App → Orchestrator: uses · Web control plane calls the same core services
- Queue Worker → Pipeline: runs · Worker executes queued jobs through shared pipeline logic
- Orchestrator → Workflow Registry: selects · Chooses named end-to-end workflows
- Workflow Registry → Step Registry: composes · Workflows are built from reusable steps
- Step Registry → Pipeline: executes · Registered steps run through the shared pipeline
- Pipeline → Project Manager: loads · Execution resolves active project context
- Project Manager → Projects: reads · Project data provides brand, personas, targets, and feedback assets
- Project Manager → Prompts: falls back to · Global prompts and templates provide defaults
- Prompt Builder → Projects: reads · Builds prompts from project-local configuration
- Prompt Builder → Prompts: reads · Builds prompts from shared prompt assets
- Orchestrator → Prompt Builder: builds · Core prepares generation prompts before workflow steps
- Orchestrator → Sanitiser: cleans · Final text is normalised before publishing
- Pipeline → Capsule: packages · Generated content can be stored as reusable capsules
- Capsule → Pipeline: repurposes · Capsules feed repurposing and cross-platform reuse workflows
- Feedback Loop → Project Manager: informs · Feedback and guidelines influence future generation context
- Campaigns → Workflow Registry: schedules · Campaigns select workflows for scheduled runs
- Distribution → Platform Port: targets · Distribution routes content through the platform boundary
- Platform Port → Instagram: implemented by · Instagram adapter fulfills the platform contract
- Platform Port → Twitter/X: implemented by · Twitter/X adapter fulfills the platform contract
- Platform Port → Reddit: implemented by · Reddit adapter fulfills the platform contract
- Platform Port → LinkedIn: implemented by · LinkedIn adapter fulfills the platform contract
- Platform Port → YouTube: implemented by · YouTube adapter fulfills the platform contract
- Platform Port → TikTok: implemented by · TikTok adapter fulfills the platform contract
- Platform Port → Email: implemented by · Email adapter fulfills the platform contract
- Renderer Port → Instagram: implemented by · Instagram adapter provides rendering implementations
- Renderer Port → Twitter/X: implemented by · Twitter adapter provides rendering implementations
- Renderer Port → Reddit: implemented by · Reddit adapter provides rendering implementations
- Uploader Port → Instagram: implemented by · Instagram adapter uploads or publishes assets
- Uploader Port → Twitter/X: implemented by · Twitter adapter publishes content
- Uploader Port → Reddit: implemented by · Reddit adapter publishes content
- Uploader Port → LinkedIn: implemented by · LinkedIn adapter publishes content
- Uploader Port → YouTube: implemented by · YouTube adapter uploads shorts
- Uploader Port → TikTok: implemented by · TikTok adapter publishes content
- Uploader Port → Email: implemented by · Email adapter sends messages
- Instagram → Remotion App: renders via · Instagram reels use embedded Remotion for video composition
- Instagram → Browser/Playwright: uses · Instagram publishing can rely on browser automation
- Twitter/X → Browser/Playwright: uses · Twitter/X outreach and publishing may use browser automation
- LinkedIn → Browser/Playwright: uses · LinkedIn browser publishing and scraping flows use automation
- Reddit → Browser/Playwright: uses · Reddit engagement/publishing can use browser automation
- YouTube → LLM Providers: uses · Adapters and core generation depend on model providers
- Web App → Queue Worker: queues · Web app submits jobs to background processing
