aRustyDev / aRustyDev/blog

feat: Social media auto-sharing for new blog posts

Open
#45 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary
Automate sharing of new blog posts to social networks.

## Tasks
- [ ] When a new blog post is created
- [ ] Create LinkedIn post to market it
- [ ] Create Twitter/X post to market it
- [ ] Create duplicate post on medium to link to it
- [ ] Create duplicate post on medium to link to it
- [ ] Share new YT shorts to Instagram

```asciidoc
Content Publishing Workflow Analysis

Content Types & Characteristics
┌──────────────┬──────────────────┬──────────────────────────────┬───────────────────────────────┬──────────────────────────────┬───────────┐
│ Content Type │ Canonical Source │ Transforms To │ Syndication │ Promotion │ Tempo │
├──────────────┼──────────────────┼──────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────┤
│ Tutorial │ blog.arusty.dev │ Twitter thread, YT reference │ Medium, Dev.to, Instructables │ HN, Discord, Reddit │ Weekly │
├──────────────┼──────────────────┼──────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────┤
│ Deep Dive │ blog.arusty.dev │ Twitter thread, YT deep dive │ Medium, Dev.to, Hashnode │ HN, Discord │ Bi-weekly │
├──────────────┼──────────────────┼──────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────┤
│ Quick Tip │ blog.arusty.dev │ Tweet, Short video │ Dev.to │ Twitter, Mastodon │ 2-3x/week │
├──────────────┼──────────────────┼──────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────┤
│ Paper │ arXiv │ Blog summary, Twitter thread │ ResearchGate, AlphaXiv │ HN, Twitter, Mastodon │ Quarterly │
├──────────────┼──────────────────┼──────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────┤
│ Long Video │ YouTube │ Blog post, Shorts, IG Reels │ - │ Twitter, Discord, IG, TikTok │ Weekly │
├──────────────┼──────────────────┼──────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────┤
│ Newsletter │ Substack │ - │ - │ Twitter, Mastodon │ Weekly │
└──────────────┴──────────────────┴──────────────────────────────┴───────────────────────────────┴──────────────────────────────┴───────────┘

Timing Strategy

DAY 0 (Publish Day)
├── 09:00 Publish to canonical source (blog/arXiv/YouTube)
├── 09:15 Auto-syndicate to Dev.to, Medium, Hashnode (RSS)
├── 10:00 Twitter thread goes live
├── 10:30 Mastodon/Threads posts
└── 11:00 Discord announcement

DAY 1 (Promotion Day)
├── Morning Submit to Hacker News (optimal timing)
├── Afternoon Reddit submission (if applicable)
└── Evening Engage with comments/discussions

DAY 2+ (Engagement)
├── Monitor analytics
├── Respond to comments
└── Cross-promote high-performing content
```

## Worflow

### Stages

1. IDEATION → Capture ideas, research, outline
2. DRAFTING → Write/record content
3. REVIEW → Edit, get feedback, finalize
4. PUBLISH → Release on primary platform
5. SYNDICATE → Cross-post to secondary platforms
6. PROMOTE → Announce on social/community
7. ENGAGE → Respond to comments/discussions

### Diagram

```mermaid
flowchart TB
%% ===== IDEATION PHASE =====
subgraph Ideation["💡 IDEATION"]
direction TB
idea[("💭 Idea")]
gh_issue["📋 GitHub Issue
blog-post-idea template"]
research["🔬 Research"]
outline["📝 Outline"]

idea --> gh_issue
gh_issue --> research
research --> outline
end

%% ===== CONTENT TYPE BRANCHING =====
subgraph ContentType["📁 CONTENT TYPE"]
direction TB
tutorial["📚 Tutorial
Step-by-step guide"]
deepdive["🔍 Deep Dive
Technical analysis"]
quicktip["⚡ Quick Tip
Short actionable"]
paper["📄 Research Paper
Formal research"]
video["🎬 Video Content
Long-form video"]
end

%% ===== DRAFTING & REVIEW =====
subgraph Draft["✍️ DRAFT & REVIEW"]
direction TB
write["Write/Record"]
edit["Edit & Proofread"]
assets["Create Assets
OG images, diagrams"]
review["Peer Review"]

write --> edit
edit --> assets
assets --> review
end

%% ===== CANONICAL PUBLISH (DAY 0) =====
subgraph Canonical["🎯 CANONICAL PUBLISH
Day 0 - 09:00"]
direction TB
blog["🏠 blog.arusty.dev
Source of Truth"]
arxiv["📚 arXiv
Papers only"]
youtube["▶️ YouTube
Video canonical"]
substack_pub["📰 Substack
Newsletter"]
end

%% ===== CONTENT TRANSFORMATION =====
subgraph Transform["🔄 TRANSFORM
Day 0 - 09:30"]
direction TB
thread["🧵 Twitter Thread
From blog/paper"]
blog_summary["📝 Blog Summary
From paper"]
yt_reference["🎬 YT Video
References blog"]
short_clips["📱 Short Clips
From YT video"]
end

%% ===== AUTO SYNDICATION (DAY 0) =====
subgraph Syndicate["📤 AUTO-SYNDICATE
Day 0 - 09:15"]
direction TB

subgraph DevPlatforms["Developer Platforms"]
medium["📝 Medium
🤖 RSS Import"]
devto["👩‍💻 Dev.to
🤖 RSS Feed"]
hashnode["#️⃣ Hashnode
🤖 RSS Import"]
instructables["🔧 Instructables
✋ Manual"]
end

subgraph ResearchPlatforms["Research Platforms"]
researchgate["🔬 ResearchGate
✋ Manual"]
alphaxiv["α AlphaXiv
✋ Manual"]
end
end

%% ===== SOCIAL PROMOTION (DAY 0-1) =====
subgraph Promote["📢 PROMOTE"]
direction TB

subgraph Day0Social["Day 0 - 10:00-11:00"]
twitter["𝕏 Twitter/X
🤖 Typefully/Buffer"]
mastodon["🐘 Mastodon
🤖 Scheduled"]
threads["🧵 Threads
⚡ Semi-auto"]
discord_announce["💬 Discord
🤖 Webhook"]
end

subgraph Day1Community["Day 1 - Morning"]
hackernews["🔶 Hacker News
✋ Manual"]
reddit["🔴 Reddit
✋ Manual"]
end

subgraph VideoPromo["Video Promotion"]
instagram["📸 Instagram
⚡ Scheduled"]
tiktok["🎵 TikTok
⚡ Scheduled"]
yt_shorts["📱 YT Shorts
🤖 Auto from YT"]
end
end

%% ===== ENGAGEMENT (DAY 2+) =====
subgraph Engage["💬 ENGAGE
Day 2+"]
direction TB
comments["💬 Comments"]
discussions["🗣️ Discussions"]
corrections["✏️ Corrections"]
end

%% ===== ANALYTICS & FEEDBACK =====
subgraph Analytics["📊 ANALYTICS"]
direction TB

subgraph Metrics["Key Metrics"]
views["👀 Views/Reads"]
engagement["❤️ Engagement"]
referrers["🔗 Referrers"]
conversions["🎯 Conversions"]
end

subgraph Tools["Tools"]
cf_analytics["☁️ Cloudflare Analytics"]
plausible["📈 Plausible"]
platform_native["📱 Native Dashboards"]
end

feedback["🔄 Content Ideas"]
end

%% ===== CONNECTIONS =====

%% Ideation to Content Type
outline --> tutorial
outline --> deepdive
outline --> quicktip
outline --> paper
outline --> video

%% Content Type to Draft
tutorial --> write
deepdive --> write
quicktip --> write
paper --> write
video --> write

%% Review to Canonical (content-specific paths)
review --> blog
review --> arxiv
review --> youtube
review --> substack_pub

%% Canonical to Transform
blog --> thread
blog --> yt_reference
arxiv --> blog_summary
arxiv --> thread
youtube --> short_clips
blog_summary --> blog

%% Canonical to Syndicate (automated)
blog -.->|"🤖 RSS"| medium
blog -.->|"🤖 RSS"| devto
blog -.->|"🤖 RSS"| hashnode
blog -->|"✋"| instructables
arxiv -->|"✋"| researchgate
arxiv -->|"✋"| alphaxiv

%% Transform to Promote
thread --> twitter
thread --> mastodon
thread --> threads
blog --> discord_announce
blog --> hackernews
blog --> reddit
short_clips --> instagram
short_clips --> tiktok
short_clips --> yt_shorts

%% Promote to Engage
twitter --> discussions
hackernews --> discussions
discord_announce --> discussions
medium --> comments
devto --> comments
youtube --> comments

%% Engage to Analytics
discussions --> views
comments --> engagement

%% Analytics feedback loop
views --> feedback
engagement --> feedback
referrers --> feedback
conversions --> feedback
feedback -.->|"New ideas"| idea

%% ===== STYLING =====
classDef canonical fill:#22c55e,stroke:#16a34a,color:#fff
classDef syndicate fill:#3b82f6,stroke:#2563eb,color:#fff
classDef social fill:#8b5cf6,stroke:#7c3aed,color:#fff
classDef community fill:#f59e0b,stroke:#d97706,color:#fff
classDef transform fill:#ec4899,stroke:#db2777,color:#fff
classDef analytics fill:#06b6d4,stroke:#0891b2,color:#fff

class blog,arxiv,youtube,substack_pub canonical
class medium,devto,hashnode,instructables,researchgate,alphaxiv syndicate
class twitter,mastodon,threads,instagram,tiktok,yt_shorts social
class hackernews,reddit,discord_announce community
class thread,blog_summary,yt_reference,short_clips transform
class views,engagement,referrers,conversions,cf_analytics,plausible,platform_native,feedback analytics
```
**Legend**
```asciidoc
┌────────┬──────────────────────────────────────┐
│ Symbol │ Meaning │
├────────┼──────────────────────────────────────┤
│ 🤖 │ Fully automated (RSS, webhooks, API) │
├────────┼──────────────────────────────────────┤
│ ⚡ │ Semi-automated (scheduling tools) │
├────────┼──────────────────────────────────────┤
│ ✋ │ Manual action required │
├────────┼──────────────────────────────────────┤
│ -.-> │ Automated flow │
├────────┼──────────────────────────────────────┤
│ --> │ Manual/triggered flow │
└────────┴──────────────────────────────────────┘
```
```
Content-Specific Workflow Paths

Tutorial Path

Idea → GitHub Issue → Research → Write → Edit → Assets → Review
→ blog.arusty.dev (canonical)
→ [AUTO] Dev.to, Medium, Hashnode (RSS)
→ [TRANSFORM] Twitter thread
→ [MANUAL] Instructables, HN, Discord

Deep Dive Path

Idea → GitHub Issue → Research → Write → Edit → Assets → Review
→ blog.arusty.dev (canonical)
→ [AUTO] Dev.to, Medium, Hashnode (RSS)
→ [TRANSFORM] Twitter thread, YouTube video reference
→ [MANUAL] HN, Discord

Quick Tip Path

Idea → GitHub Issue → Write → Edit
→ blog.arusty.dev (canonical)
→ [AUTO] Dev.to (RSS)
→ [TRANSFORM] Single tweet + Short video
→ [AUTO] Twitter, Mastodon

Research Paper Path

Research → Write → Peer Review → Revise
→ arXiv (canonical)
→ [TRANSFORM] Blog summary → blog.arusty.dev
→ [TRANSFORM] Twitter thread
→ [MANUAL] ResearchGate, AlphaXiv, HN

Video Content Path

Script → Record → Edit → Assets
→ YouTube (canonical)
→ [AUTO] YouTube Shorts (from chapters)
→ [TRANSFORM] Short clips → IG Reels, TikTok
→ [TRANSFORM] Blog post referencing video
→ [AUTO] Discord webhook, Twitter
```

## Notes
Migrated from `.todo/cicd/social-network.md`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.