commit-to-tweet-framework
Transform meaningful commits into engaging technical content for Twitter/X.
Table of Contents
- Philosophy
- What Makes a Commit Tweet-Worthy
- The 7 Tweet Angles
- Real Examples from Your Commits
- Tweet Structure Patterns
- Workflow Integration
Philosophy
The goal isn’t to tweet every commit—it’s to identify meaningful moments worth sharing:
- Build in public - Show progress, not perfection
- Teach through work - Extract learnings from real implementation
- Be specific - Vague posts don’t perform; specificity builds trust
- Vulnerability wins - Debugging stories beat success announcements
What Makes a Commit Tweet-Worthy
High Tweet Potential
| Signal | Why It Works |
|---|---|
| New feature implementation | Shows capability + teaches patterns |
| Problem solved after struggle | Relatable debugging story |
| Architectural decision | Sparks discussion on tradeoffs |
| Performance improvement with numbers | Concrete, measurable wins |
| Migration/refactor completed | Real-world lessons learned |
| Tool or library evaluation | Helps others make decisions |
Skip These
- Pure documentation updates (unless major)
- Version bumps
- Typo fixes
- Test-only commits (unless testing philosophy)
- “WIP” or checkpoint commits
The 7 Tweet Angles
Every tweet-worthy commit can be framed through one of these angles:
1. The Learning Angle
Share what you learned implementing the feature.
Structure:
TIL while building [feature]:
[Specific insight or surprise]
[Optional: code snippet or link]2. The Problem/Solution Angle
Frame as a problem you solved.
Structure:
Problem: [Pain point]Solution: [What you built]
[Optional: How it works]3. The Milestone Angle
Celebrate progress on a larger project.
Structure:
[Project] milestone: [Achievement]
Next up: [What's coming]
[Optional: Screenshot/demo]4. The Technical Deep-Dive Angle
Explain an interesting technical decision.
Structure:
Why I chose [approach A] over [approach B] for [context]:
[Bullet points of reasoning]
[Optional: Link to code/blog]5. The Numbers Angle
Share concrete metrics and performance.
Structure:
[Before/After] or [Metric achieved]:
• [Specific number 1]• [Specific number 2]
How: [Brief explanation]6. The Hot Take Angle
Share an opinion formed from real implementation experience.
Structure:
After [building/using X], hot take:
[Your opinion]
[Evidence from your experience]7. The Thread Angle
For complex features, create a build thread.
Structure:
Building [feature] for [project] 🧵
1/ [Context and goal]2/ [Challenge faced]3/ [Approach taken]4/ [Interesting detail]5/ [Result + link]Real Examples from Your Commits
Example 1: Multi-street MCCFR (Algorithm Implementation)
Commit:
Phase 2: Implement full multi-street MCCFR for Limit Hold'em- 32,887 info sets in 500 iterations- ~26 iterations/sec on CPU- 131 tests passingTweet Options:
Learning Angle:
TIL implementing Monte Carlo CFR for poker:
Position rules flip between streets—SB acts first preflop, BB first postflop.
Took me 47 tests to get the street detection right.
131 tests later, it works across all 4 betting rounds.Numbers Angle:
Full 4-street poker solver running:
• 32,887 game states (info sets)• 26 iterations/sec on CPU• 131 tests, 0 failures
Next: GPU acceleration for 100x speedup.Hot Take Angle:
After implementing MCCFR for poker:
The algorithm is simple. The edge cases around position switching and bet sizes are where you lose days.
Lesson: Test every state transition exhaustively before integration.Example 2: CLI Framework Migration (Refactor)
Commit:
refactor: migrate CLI from Commander.js to nest-commander- 10 commands converted to decorator pattern- Removed commander dependency- Tests directly instantiate command classesTweet Options:
Problem/Solution Angle:
Problem: Commander.js + NestJS = awkward wrapper code
Solution: Migrated to nest-commander
• Native @Command/@Option decorators• Commands are just NestJS providers• Tests mock at constructor level
10 commands converted in one session.Learning Angle:
TIL about nest-commander:
If you're using NestJS + Commander.js, you're writing unnecessary glue code.
nest-commander gives you:• Decorator-based commands• DI just works• Testing is straightforward
Wish I'd found this earlier.Example 3: Multi-Agent Documentation System (Architecture)
Commit:
Implement intelligent multi-agent documentation system- Agent-based template processing- Context-aware Mermaid diagram creation- Component detection triggers CREATE vs UPDATETweet Options:
Milestone Angle:
Shipped: Intelligent documentation system for @anthropic Claude
It watches for architectural changes and auto-generates:• C4 diagrams• ADRs• Component docs
Single source of truth, always in sync.Technical Deep-Dive Angle:
Why I built an agent-based doc generator instead of templates:
1. Templates can't assess architectural impact2. Context-aware content > string substitution3. CREATE vs UPDATE needs different logic
Result: Docs that understand the codebase.Example 4: Search Scope Feature (Small but Useful)
Commit:
feat: add scope parameter to search_personal MCP tool- Enables searching facts (edges) and entities (nodes)- Default maintains backward compatibilityTweet Options:
Problem/Solution Angle:
Small win today:
Problem: My AI memory tool only searched conversations
Solution: Added scope parameter to search facts and entities too
search_personal({ query: "...", scope: "edges" })
Now I can query relationships, not just raw chat history.Tweet Structure Patterns
The Hook → Detail → CTA Pattern
[Hook: surprising fact or result]
[Detail: how you achieved it]
[CTA: link, question, or next step]The Before/After Pattern
Before: [old state]After: [new state]
[What changed and why]The Question → Answer Pattern
[Question you had]
After [building/researching], the answer:
[Your finding]Workflow Integration
Option 1: Post-Commit Hook Review
After each meaningful commit, ask:
- Does this teach something?
- Did I struggle with something others might?
- Are there concrete numbers to share?
If yes to any, draft a tweet.
Option 2: Weekly Batch
Every Friday:
- Review week’s commits:
git log --since="1 week ago" --oneline - Pick 2-3 tweet-worthy ones
- Draft using angle templates
- Schedule for next week
Option 3: Real-Time Build Threads
For larger features:
- Start a thread when you begin
- Add updates as you hit milestones
- Close with the final result
Using x-cli
Post directly from terminal:
bun run packages/x-cli/src/main.ts tweet "Your tweet here"