docs: more docuemnts
This commit is contained in:
parent
ede83bfca0
commit
47072a5a04
|
|
@ -38,7 +38,83 @@ Include:
|
||||||
- Real examples with prompts
|
- Real examples with prompts
|
||||||
- Before/after workflow comparison
|
- Before/after workflow comparison
|
||||||
|
|
||||||
## Keywords
|
---
|
||||||
|
|
||||||
|
# Keyword Research
|
||||||
|
|
||||||
|
**Conducted:** 2025-12-27 by @strategist
|
||||||
|
**Tool:** DataForSEO (Google Ads Search Volume)
|
||||||
|
**Location:** United States
|
||||||
|
**Language:** English
|
||||||
|
|
||||||
|
## Primary Keywords
|
||||||
|
|
||||||
|
| Keyword | Volume | Competition | KD | Intent |
|
||||||
|
|---------|--------|-------------|----|----|
|
||||||
|
| claude code image generation | 10 | LOW (0.05) | - | - |
|
||||||
|
| mcp image generation | 10 | LOW (0.12) | - | - |
|
||||||
|
|
||||||
|
## Monthly Search Trend (claude code image generation)
|
||||||
|
|
||||||
|
```
|
||||||
|
2025-11: 10
|
||||||
|
2025-10: 10
|
||||||
|
2025-09: 20
|
||||||
|
2025-08: 10
|
||||||
|
2025-07: 20
|
||||||
|
```
|
||||||
|
|
||||||
|
## Monthly Search Trend (mcp image generation)
|
||||||
|
|
||||||
|
```
|
||||||
|
2025-11: 10
|
||||||
|
2025-10: 10
|
||||||
|
2025-09: 20
|
||||||
|
2025-08: 20
|
||||||
|
2025-07: 30 ← Peak
|
||||||
|
2025-06: 10
|
||||||
|
2025-05: 20
|
||||||
|
2025-04: 20
|
||||||
|
2025-03: 30
|
||||||
|
```
|
||||||
|
|
||||||
|
## Assessment
|
||||||
|
|
||||||
|
**Opportunity Score:** 🟡 Medium-Low
|
||||||
|
|
||||||
|
**Strengths:**
|
||||||
|
- Very low competition (both KD low/very low)
|
||||||
|
- Emerging topic — MCP ecosystem just gaining traction
|
||||||
|
- Early mover advantage — minimal existing content
|
||||||
|
- Clear pain point validation from forums/issues
|
||||||
|
|
||||||
|
**Challenges:**
|
||||||
|
- **Very low search volume** (10-30/month) — won't drive significant traffic
|
||||||
|
- Inconsistent trend — hasn't established stable pattern
|
||||||
|
- Niche within niche (Claude Code + MCP + images)
|
||||||
|
|
||||||
|
**Strategic Value:**
|
||||||
|
- **Brand building > traffic** — demonstrates expertise in cutting-edge tools
|
||||||
|
- Targets exact ICP (AI-first developers using Claude Code)
|
||||||
|
- Potential to rank #1 easily due to zero competition
|
||||||
|
- Could capture early adopters as MCP ecosystem grows
|
||||||
|
|
||||||
|
**Long-term Potential:**
|
||||||
|
- If MCP adoption accelerates, this could become high-value
|
||||||
|
- Currently ~10-30 searches/month, could grow 10-100x if MCP goes mainstream
|
||||||
|
- Historical parallel: early Docker tutorials (low volume → massive later)
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
Good for **thought leadership** and **early positioning**, not for traffic. Write if:
|
||||||
|
1. You want to establish expertise in MCP ecosystem
|
||||||
|
2. You're betting on MCP growth
|
||||||
|
3. You have working solution to document (low effort)
|
||||||
|
|
||||||
|
Not a priority if traffic/SEO is primary goal.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keywords (original notes)
|
||||||
|
|
||||||
- claude code image generation
|
- claude code image generation
|
||||||
- mcp image generation
|
- mcp image generation
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -58,7 +58,92 @@ Personal story: why I needed this, what I tried, final solution.
|
||||||
|
|
||||||
Tutorial with real code and configs.
|
Tutorial with real code and configs.
|
||||||
|
|
||||||
## Keywords (to research)
|
---
|
||||||
|
|
||||||
|
# Keyword Research
|
||||||
|
|
||||||
|
**Conducted:** 2025-12-27 by @strategist
|
||||||
|
**Tool:** DataForSEO (Google Ads Search Volume + Related Keywords)
|
||||||
|
**Location:** United States
|
||||||
|
**Language:** English
|
||||||
|
|
||||||
|
## Primary Keywords
|
||||||
|
|
||||||
|
| Keyword | Volume | Competition | KD | CPC | Intent |
|
||||||
|
|---------|--------|-------------|----|----|--------|
|
||||||
|
| claude desktop mcp | 880 | LOW (0.02) | 8 | $5.63-25 | Transactional |
|
||||||
|
| mcp server remote | 30 | LOW (0.23) | - | $1.63-4.77 | - |
|
||||||
|
|
||||||
|
## Parent Topic
|
||||||
|
|
||||||
|
| Keyword | Volume | Competition | KD | Intent |
|
||||||
|
|---------|--------|-------------|----|----|
|
||||||
|
| claude desktop | 18,100 | LOW (0.09) | 30 | Commercial |
|
||||||
|
|
||||||
|
**Trend:** Growing +666% YoY (from Dec 2024 baseline)
|
||||||
|
|
||||||
|
## Related Keywords (from "claude desktop mcp")
|
||||||
|
|
||||||
|
High-value related searches:
|
||||||
|
- claude desktop mcp server — related variant
|
||||||
|
- claude desktop mcp config — configuration queries
|
||||||
|
- claude desktop mcp github — seeking code/solutions
|
||||||
|
- claude desktop mcp-remote — directly related to remote access
|
||||||
|
|
||||||
|
## Monthly Search Trend (claude desktop mcp)
|
||||||
|
|
||||||
|
```
|
||||||
|
2025-11: 390
|
||||||
|
2025-10: 480
|
||||||
|
2025-09: 720
|
||||||
|
2025-08: 1,000
|
||||||
|
2025-07: 1,600 ← Peak
|
||||||
|
2025-06: 1,600
|
||||||
|
2025-05: 1,900 ← Peak
|
||||||
|
2025-04: 1,900
|
||||||
|
2025-03: 1,300
|
||||||
|
2025-02: 210
|
||||||
|
2025-01: 110
|
||||||
|
2024-12: 170
|
||||||
|
```
|
||||||
|
|
||||||
|
**Pattern:** Peaked in Apr-July 2025 (1,600-1,900/month), declining but stable ~400-900/month
|
||||||
|
|
||||||
|
## Search Intent Analysis
|
||||||
|
|
||||||
|
**Main Intent:** Transactional (people looking to implement)
|
||||||
|
**SERP Features:** Organic, video, PAA, related searches, images
|
||||||
|
**Competition Level:** Very low (KD 8, competition 0.02)
|
||||||
|
**Backlink Profile:** Low (avg 106 backlinks, 8 referring domains)
|
||||||
|
|
||||||
|
## Assessment
|
||||||
|
|
||||||
|
**Opportunity Score:** 🟢 High
|
||||||
|
|
||||||
|
**Strengths:**
|
||||||
|
- Very low competition (KD 8) — easy to rank
|
||||||
|
- Clear transactional intent — readers ready to implement
|
||||||
|
- Parent topic has massive volume (18k) — potential halo effect
|
||||||
|
- Emerging topic with proven interest (peaked at 1.9k/month)
|
||||||
|
- Multiple related queries indicate real pain point
|
||||||
|
|
||||||
|
**Challenges:**
|
||||||
|
- Volume declining from peak (was 1.9k, now ~400-900)
|
||||||
|
- Niche topic — won't drive massive traffic
|
||||||
|
- Requires technical depth to satisfy intent
|
||||||
|
|
||||||
|
**Strategic Value:**
|
||||||
|
- Early mover advantage in specific niche
|
||||||
|
- Demonstrates expertise in AI tooling + DevOps
|
||||||
|
- Low competition = high probability of ranking
|
||||||
|
- Transactional intent = engaged readers
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
Strong candidate for technical tutorial. Low competition + clear intent + working solution = good ROI for effort.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keywords (original notes)
|
||||||
|
|
||||||
- claude desktop remote access
|
- claude desktop remote access
|
||||||
- mcp server remote
|
- mcp server remote
|
||||||
|
|
|
||||||
|
|
@ -109,9 +109,78 @@ Community Pain:
|
||||||
- Download our "Model Selection Worksheet"
|
- Download our "Model Selection Worksheet"
|
||||||
- Join workflow-first developers
|
- Join workflow-first developers
|
||||||
|
|
||||||
## Keywords
|
---
|
||||||
|
|
||||||
*Needs validation*
|
# Keyword Research
|
||||||
|
|
||||||
|
**Conducted:** 2025-12-27 by @strategist
|
||||||
|
**Tool:** DataForSEO (Google Ads Search Volume)
|
||||||
|
**Location:** United States
|
||||||
|
**Language:** English
|
||||||
|
|
||||||
|
## Primary Keywords Tested
|
||||||
|
|
||||||
|
All tested keywords returned **zero or negligible search volume**:
|
||||||
|
|
||||||
|
| Keyword | Volume | Status |
|
||||||
|
|---------|--------|--------|
|
||||||
|
| too many ai models | 0 | No data |
|
||||||
|
| consistent ai image generation | 0 | No data |
|
||||||
|
| ai image api comparison | 0 | No data |
|
||||||
|
|
||||||
|
## Assessment
|
||||||
|
|
||||||
|
**Opportunity Score:** 🔴 Low (for direct SEO)
|
||||||
|
|
||||||
|
**Findings:**
|
||||||
|
- **Problem-aware keywords have zero volume** — people don't search for the problem this way
|
||||||
|
- Developers experience this pain but don't articulate it in search queries
|
||||||
|
- This is a "solution-unaware" problem:
|
||||||
|
- They feel choice paralysis
|
||||||
|
- They don't search "too many models"
|
||||||
|
- They search specific model names or comparisons
|
||||||
|
|
||||||
|
**Strategic Value:**
|
||||||
|
- **Not an SEO play** — won't rank for high-volume keywords
|
||||||
|
- **Thought leadership piece** — articulates unspoken frustration
|
||||||
|
- **Social/community distribution** — Hacker News, Reddit, Twitter
|
||||||
|
- **Counter-positioning** — differentiates from competitors' "more is better"
|
||||||
|
|
||||||
|
**Alternative Keyword Strategy:**
|
||||||
|
|
||||||
|
Instead of problem-focused keywords, target:
|
||||||
|
- "stable diffusion vs flux" — comparison searches (volume unknown)
|
||||||
|
- "best ai image model" — solution-seeking searches
|
||||||
|
- "ai image generation best practices" — educational queries
|
||||||
|
|
||||||
|
**Distribution Strategy:**
|
||||||
|
|
||||||
|
Since SEO potential is low, focus on:
|
||||||
|
1. **Hacker News** — controversial opinion pieces do well
|
||||||
|
2. **r/MachineLearning, r/StableDiffusion** — community discussion
|
||||||
|
3. **LinkedIn** — CTOs/tech leads resonate with "less is more"
|
||||||
|
4. **Twitter** — thread format, tag model providers
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
|
||||||
|
Write this as **opinion/manifesto piece** for:
|
||||||
|
- Brand differentiation (not SEO)
|
||||||
|
- Community discussion (HN front page potential)
|
||||||
|
- Thought leadership (shows market understanding)
|
||||||
|
|
||||||
|
**Do NOT write if:**
|
||||||
|
- Primary goal is organic traffic
|
||||||
|
- Need immediate SEO results
|
||||||
|
- Looking for high-volume keywords
|
||||||
|
|
||||||
|
**DO write if:**
|
||||||
|
- Want to establish counter-positioning
|
||||||
|
- Have strong opinion to share
|
||||||
|
- Targeting social/community distribution
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keywords (original notes)
|
||||||
|
|
||||||
Potential:
|
Potential:
|
||||||
- "best AI image model for developers"
|
- "best AI image model for developers"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,588 @@
|
||||||
|
---
|
||||||
|
slug: too-many-models-problem
|
||||||
|
title: "You Don't Need 47 Image Models. You Need One That Works Consistently."
|
||||||
|
status: drafting
|
||||||
|
created: 2024-12-27
|
||||||
|
updated: 2025-12-28
|
||||||
|
author: henry
|
||||||
|
type: opinion-manifesto
|
||||||
|
target_length: 1800
|
||||||
|
distribution: social (HN, Reddit, Twitter)
|
||||||
|
seo_priority: low
|
||||||
|
---
|
||||||
|
|
||||||
|
# Idea
|
||||||
|
|
||||||
|
## Discovery
|
||||||
|
|
||||||
|
**Source:** Weekly digest 2024-12-27, Hacker News, Reddit
|
||||||
|
**Evidence:**
|
||||||
|
|
||||||
|
HN Quote:
|
||||||
|
> "It is just very hard to make any generalizations because any single prompt will lead to so many different types of images. Every model has strengths and weaknesses depending on what you are going for."
|
||||||
|
> — Hacker News, December 2024
|
||||||
|
|
||||||
|
Community Pain:
|
||||||
|
- Fal.ai offers dozens of models
|
||||||
|
- Replicate has 100+ image models
|
||||||
|
- Runware positioning as "one API for all AI models"
|
||||||
|
- Developers overwhelmed by choice
|
||||||
|
|
||||||
|
**Reddit Pain Point:**
|
||||||
|
- Constant questions about "which model for X?"
|
||||||
|
- No consensus on best practices
|
||||||
|
- Switching costs high (prompts don't transfer between models)
|
||||||
|
|
||||||
|
## Why This Matters
|
||||||
|
|
||||||
|
**Strategic Rationale:**
|
||||||
|
|
||||||
|
1. **Counter-Positioning**
|
||||||
|
- Competitors compete on model variety
|
||||||
|
- We compete on consistency and simplicity
|
||||||
|
- "Less but better" positioning
|
||||||
|
|
||||||
|
2. **Developer Pain Point**
|
||||||
|
- Choice paralysis is real
|
||||||
|
- Prompt engineering doesn't transfer across models
|
||||||
|
- Inconsistent results kill production workflows
|
||||||
|
|
||||||
|
3. **Our Differentiation**
|
||||||
|
- @name references solve consistency problem
|
||||||
|
- Curated models, not marketplace
|
||||||
|
- Project-based organization
|
||||||
|
- "Pick once, use forever" philosophy
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Brief
|
||||||
|
|
||||||
|
## Potential Angle
|
||||||
|
|
||||||
|
**Anti-complexity manifesto + practical guide**
|
||||||
|
|
||||||
|
**Hook:**
|
||||||
|
"Replicate has 100+ image models. Fal.ai offers dozens. Runware promises 'all AI models in one API.' Meanwhile, you just want to generate a consistent hero image for your blog posts."
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
|
||||||
|
1. **The Model Explosion Problem**
|
||||||
|
- Screenshot Replicate's model marketplace
|
||||||
|
- Show 47 variations of Stable Diffusion
|
||||||
|
- Developer quote: "Which model do I use for photorealistic portraits?"
|
||||||
|
- **The answer:** "It depends" (unhelpful)
|
||||||
|
|
||||||
|
2. **Why More Models ≠ Better Results**
|
||||||
|
- Prompt engineering is model-specific
|
||||||
|
- What works in SDXL breaks in Flux
|
||||||
|
- Production consistency requires same model
|
||||||
|
- Switching costs: re-engineering all prompts
|
||||||
|
|
||||||
|
3. **The Hidden Cost of Choice**
|
||||||
|
- Time: Testing 10 models to find "the one"
|
||||||
|
- Money: Burning credits on experiments
|
||||||
|
- Maintenance: Model versions update, prompts break
|
||||||
|
- Quote: "I spent 3 hours picking a model, then realized my prompts sucked anyway"
|
||||||
|
|
||||||
|
4. **What You Actually Need**
|
||||||
|
- ONE good model for your use case
|
||||||
|
- Consistent prompting patterns
|
||||||
|
- Version control for working prompts
|
||||||
|
- Project organization (context matters)
|
||||||
|
|
||||||
|
5. **How Banatie Solves This**
|
||||||
|
- Curated models: We picked the best, you focus on building
|
||||||
|
- @name references: Consistency across generations
|
||||||
|
- Project organization: Context preserved automatically
|
||||||
|
- **Philosophy:** "We're opinionated so you don't have to be"
|
||||||
|
|
||||||
|
6. **Practical Guide: Pick Your Model Once**
|
||||||
|
```
|
||||||
|
IF photorealistic portraits → Flux Realism
|
||||||
|
IF illustration/concept art → SDXL
|
||||||
|
IF speed matters → Flux Schnell
|
||||||
|
IF need control → Flux Dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Then STOP. Use that model. Build workflow around it.
|
||||||
|
|
||||||
|
7. **When Model Variety Actually Helps**
|
||||||
|
- Experimentation phase (before production)
|
||||||
|
- Specific artistic styles (Ghibli, pixel art)
|
||||||
|
- Niche use cases (medical imaging, architecture)
|
||||||
|
|
||||||
|
**But:** 80% of developers need consistency, not variety.
|
||||||
|
|
||||||
|
**Call to Action:**
|
||||||
|
- Try Banatie's opinionated approach
|
||||||
|
- Download our "Model Selection Worksheet"
|
||||||
|
- Join workflow-first developers
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Keyword Research
|
||||||
|
|
||||||
|
**Conducted:** 2025-12-27 by @strategist
|
||||||
|
**Tool:** DataForSEO (Google Ads Search Volume)
|
||||||
|
**Location:** United States
|
||||||
|
**Language:** English
|
||||||
|
|
||||||
|
## Primary Keywords Tested
|
||||||
|
|
||||||
|
All tested keywords returned **zero or negligible search volume**:
|
||||||
|
|
||||||
|
| Keyword | Volume | Status |
|
||||||
|
|---------|--------|--------|
|
||||||
|
| too many ai models | 0 | No data |
|
||||||
|
| consistent ai image generation | 0 | No data |
|
||||||
|
| ai image api comparison | 0 | No data |
|
||||||
|
|
||||||
|
## Assessment
|
||||||
|
|
||||||
|
**Opportunity Score:** 🔴 Low (for direct SEO)
|
||||||
|
|
||||||
|
**Findings:**
|
||||||
|
- **Problem-aware keywords have zero volume** — people don't search for the problem this way
|
||||||
|
- Developers experience this pain but don't articulate it in search queries
|
||||||
|
- This is a "solution-unaware" problem:
|
||||||
|
- They feel choice paralysis
|
||||||
|
- They don't search "too many models"
|
||||||
|
- They search specific model names or comparisons
|
||||||
|
|
||||||
|
**Strategic Value:**
|
||||||
|
- **Not an SEO play** — won't rank for high-volume keywords
|
||||||
|
- **Thought leadership piece** — articulates unspoken frustration
|
||||||
|
- **Social/community distribution** — Hacker News, Reddit, Twitter
|
||||||
|
- **Counter-positioning** — differentiates from competitors' "more is better"
|
||||||
|
|
||||||
|
**Alternative Keyword Strategy:**
|
||||||
|
|
||||||
|
Instead of problem-focused keywords, target:
|
||||||
|
- "stable diffusion vs flux" — comparison searches (volume unknown)
|
||||||
|
- "best ai image model" — solution-seeking searches
|
||||||
|
- "ai image generation best practices" — educational queries
|
||||||
|
|
||||||
|
**Distribution Strategy:**
|
||||||
|
|
||||||
|
Since SEO potential is low, focus on:
|
||||||
|
1. **Hacker News** — controversial opinion pieces do well
|
||||||
|
2. **r/MachineLearning, r/StableDiffusion** — community discussion
|
||||||
|
3. **LinkedIn** — CTOs/tech leads resonate with "less is more"
|
||||||
|
4. **Twitter** — thread format, tag model providers
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
|
||||||
|
Write this as **opinion/manifesto piece** for:
|
||||||
|
- Brand differentiation (not SEO)
|
||||||
|
- Community discussion (HN front page potential)
|
||||||
|
- Thought leadership (shows market understanding)
|
||||||
|
|
||||||
|
**Do NOT write if:**
|
||||||
|
- Primary goal is organic traffic
|
||||||
|
- Need immediate SEO results
|
||||||
|
- Looking for high-volume keywords
|
||||||
|
|
||||||
|
**DO write if:**
|
||||||
|
- Want to establish counter-positioning
|
||||||
|
- Have strong opinion to share
|
||||||
|
- Targeting social/community distribution
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keywords (original notes)
|
||||||
|
|
||||||
|
Potential:
|
||||||
|
- "best AI image model for developers"
|
||||||
|
- "stable diffusion vs flux"
|
||||||
|
- "consistent AI image generation"
|
||||||
|
- "too many AI models"
|
||||||
|
- "image generation best practices"
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
**Tone:**
|
||||||
|
- Empathetic (we get the frustration)
|
||||||
|
- Opinionated (we have a thesis)
|
||||||
|
- Practical (actionable advice)
|
||||||
|
- NOT arrogant ("competitors are dumb")
|
||||||
|
|
||||||
|
**Risk:**
|
||||||
|
Sounds like we're limiting features.
|
||||||
|
|
||||||
|
**Mitigation:**
|
||||||
|
Frame as "opinionated defaults with flexibility underneath"
|
||||||
|
- We curate, but you CAN use any model
|
||||||
|
- Most developers need simplicity, power users get flexibility
|
||||||
|
- Better to be excellent at 3 models than mediocre at 47
|
||||||
|
|
||||||
|
**Competitor Response:**
|
||||||
|
- Replicate will say "but choice is good!"
|
||||||
|
- We say "choice without guidance is paralysis"
|
||||||
|
- Different philosophies for different developers
|
||||||
|
|
||||||
|
**Production Notes:**
|
||||||
|
- Need quotes from developers about model confusion
|
||||||
|
- Screenshot model marketplaces (Replicate, fal.ai)
|
||||||
|
- Create decision tree for model selection
|
||||||
|
- Test prompt portability across models (show it breaks)
|
||||||
|
|
||||||
|
**Similar Positioning:**
|
||||||
|
- 37signals (Basecamp): "Less software, more results"
|
||||||
|
- Apple: "Curated ecosystem vs Android chaos"
|
||||||
|
- Notion: "One tool vs 10 specialized tools"
|
||||||
|
|
||||||
|
We're applying same philosophy to AI image generation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Outline
|
||||||
|
|
||||||
|
## Article Structure
|
||||||
|
|
||||||
|
**Type:** Opinion / Manifesto
|
||||||
|
**Total target:** 1800 words
|
||||||
|
**Reading time:** 7-8 minutes
|
||||||
|
**Voice:** Henry (direct, experienced, slightly provocative)
|
||||||
|
**Distribution:** Social (HN, Reddit, Twitter) — NOT SEO-focused
|
||||||
|
|
||||||
|
## Hook & Opening (250 words)
|
||||||
|
|
||||||
|
**Goal:** Establish problem from personal experience, make reader think "yes, I've felt this"
|
||||||
|
|
||||||
|
**Opening:**
|
||||||
|
- Start with Henry's recent experience: spent 2 hours comparing Flux models
|
||||||
|
- The frustration: "Which one generates better portraits?"
|
||||||
|
- Answer from every guide: "It depends"
|
||||||
|
- The realization: wrong question entirely
|
||||||
|
|
||||||
|
**Transition:**
|
||||||
|
"Here's the thing about AI image model marketplaces: they've created a problem they can't solve."
|
||||||
|
|
||||||
|
**Signature phrases to use:**
|
||||||
|
- "Ran into {problem} yesterday..."
|
||||||
|
- "Here's the thing about..."
|
||||||
|
- "What I've found is..."
|
||||||
|
|
||||||
|
## Section 1: The Model Explosion (300 words)
|
||||||
|
|
||||||
|
**Goal:** Show the absurdity of current state with concrete examples
|
||||||
|
|
||||||
|
### The Numbers
|
||||||
|
- Replicate: 100+ image generation models
|
||||||
|
- Fal.ai: dozens of Stable Diffusion variants
|
||||||
|
- Runware: "all models in one API" (positioning itself as solution)
|
||||||
|
|
||||||
|
### The Developer Experience
|
||||||
|
- HN quote: "Every model has strengths and weaknesses..."
|
||||||
|
- Real question from Reddit: "Which model for photorealistic portraits?"
|
||||||
|
- Common answer: "Test them all and see" (unhelpful)
|
||||||
|
|
||||||
|
### The Paradox
|
||||||
|
- More choice = harder decisions
|
||||||
|
- "47 variations of Stable Diffusion" example
|
||||||
|
- Each claims to be "better" at something
|
||||||
|
- No consensus, no guidance
|
||||||
|
|
||||||
|
**Tone:** Observational, slightly sardonic but not mean
|
||||||
|
|
||||||
|
## Section 2: Why More Models ≠ Better Results (350 words)
|
||||||
|
|
||||||
|
**Goal:** Explain the fundamental problem with model variety for production use
|
||||||
|
|
||||||
|
### Prompt Engineering is Model-Specific
|
||||||
|
- What works in SDXL completely fails in Flux
|
||||||
|
- Example: Same prompt, 3 different models, wildly different results
|
||||||
|
- You're not learning "AI prompting" — you're learning "SDXL prompting"
|
||||||
|
|
||||||
|
### Production Requires Consistency
|
||||||
|
- Can't switch models mid-project
|
||||||
|
- Brand consistency matters
|
||||||
|
- User expectations set by first generation
|
||||||
|
|
||||||
|
### The Switching Cost
|
||||||
|
- Re-engineer all your prompts
|
||||||
|
- Test everything again
|
||||||
|
- Update documentation
|
||||||
|
- Quote from Henry: "Switched from Flux Dev to Flux Realism. Spent a day fixing prompts that worked fine before."
|
||||||
|
|
||||||
|
### The Illusion of Control
|
||||||
|
- People think: "I'll pick the best model for each use case"
|
||||||
|
- Reality: You'll pick one and stick with it anyway
|
||||||
|
- Or spend forever testing instead of shipping
|
||||||
|
|
||||||
|
**Tone:** Analytical but personal — backed by Henry's experience
|
||||||
|
|
||||||
|
## Section 3: The Hidden Costs (250 words)
|
||||||
|
|
||||||
|
**Goal:** Quantify what this complexity actually costs developers
|
||||||
|
|
||||||
|
### Time
|
||||||
|
- Initial research: 2-4 hours comparing models
|
||||||
|
- Testing phase: burn through credits trying each one
|
||||||
|
- Prompt iteration per model: hours
|
||||||
|
- Total: easily a full day before generating first production image
|
||||||
|
|
||||||
|
### Money
|
||||||
|
- Testing 10 models × 20 prompts each = 200 API calls
|
||||||
|
- At $0.05/image = $10 just for testing
|
||||||
|
- Then pick wrong model → start over
|
||||||
|
|
||||||
|
### Maintenance
|
||||||
|
- Model versions update
|
||||||
|
- Prompts break
|
||||||
|
- Features change
|
||||||
|
- "The model you picked 3 months ago now has v2, and your prompts don't work"
|
||||||
|
|
||||||
|
### Opportunity Cost
|
||||||
|
- Not shipping features
|
||||||
|
- Not iterating on actual product
|
||||||
|
- Stuck in "which model" paralysis
|
||||||
|
|
||||||
|
**Personal anecdote:**
|
||||||
|
"I've seen developers spend more time picking an image model than building the feature that needed the image."
|
||||||
|
|
||||||
|
**Tone:** Practical, matter-of-fact
|
||||||
|
|
||||||
|
## Section 4: What You Actually Need (300 words)
|
||||||
|
|
||||||
|
**Goal:** Shift perspective — the real solution isn't more choice
|
||||||
|
|
||||||
|
### ONE Model for Your Use Case
|
||||||
|
- Pick based on your primary need
|
||||||
|
- Stick with it
|
||||||
|
- Build workflow around it
|
||||||
|
|
||||||
|
### Consistency Patterns
|
||||||
|
- Version control for prompts that work
|
||||||
|
- Document what works in YOUR model
|
||||||
|
- Ignore what works in other models
|
||||||
|
|
||||||
|
### Project Organization
|
||||||
|
- Same model for same project
|
||||||
|
- Context matters — logo vs hero image vs illustration
|
||||||
|
- Consistency > variety
|
||||||
|
|
||||||
|
### Stop Optimizing the Wrong Thing
|
||||||
|
- You're optimizing for "best possible image per generation"
|
||||||
|
- Should optimize for "consistent good-enough images across project"
|
||||||
|
- 80% quality with 100% consistency > 90% quality with 50% consistency
|
||||||
|
|
||||||
|
**The Philosophy:**
|
||||||
|
"Pick once. Master it. Ship."
|
||||||
|
|
||||||
|
**Contrast with current approach:**
|
||||||
|
- Current: "Test everything, pick the best"
|
||||||
|
- Better: "Pick good-enough, become expert"
|
||||||
|
|
||||||
|
**Tone:** Direct, opinionated, confident
|
||||||
|
|
||||||
|
## Section 5: How to Pick Your Model (Once) (250 words)
|
||||||
|
|
||||||
|
**Goal:** Give readers actionable decision framework
|
||||||
|
|
||||||
|
### Simple Decision Tree
|
||||||
|
|
||||||
|
```
|
||||||
|
IF photorealistic/portraits → Flux Realism
|
||||||
|
IF illustrations/concept art → SDXL Lightning
|
||||||
|
IF speed critical → Flux Schnell
|
||||||
|
IF maximum control → Flux Dev
|
||||||
|
IF you don't know → Flux Dev (most flexible)
|
||||||
|
```
|
||||||
|
|
||||||
|
### The Rules
|
||||||
|
1. Answer ONE question: What's your primary use case?
|
||||||
|
2. Pick the model
|
||||||
|
3. Stop researching
|
||||||
|
4. Start prompting
|
||||||
|
|
||||||
|
### When to Ignore This Advice
|
||||||
|
- You're in experimentation phase (not production)
|
||||||
|
- You need specific art style (Ghibli, pixel art, etc)
|
||||||
|
- You have niche requirements (medical, architecture)
|
||||||
|
|
||||||
|
**But:** Most developers fall in the 80% who just need consistency.
|
||||||
|
|
||||||
|
### What Happens Next
|
||||||
|
- Spend time learning YOUR model
|
||||||
|
- Build library of working prompts
|
||||||
|
- Understand its quirks and strengths
|
||||||
|
- Ship features
|
||||||
|
|
||||||
|
**Quote from Henry:**
|
||||||
|
"I picked Flux Dev six months ago. Haven't looked at another model since. My prompts work, my workflow is fast, and I'm shipping."
|
||||||
|
|
||||||
|
**Tone:** Practical, directive
|
||||||
|
|
||||||
|
## Section 6: The Curated Approach (200 words)
|
||||||
|
|
||||||
|
**Goal:** Present alternative philosophy (subtle Banatie mention — Phase 1 disclosure)
|
||||||
|
|
||||||
|
### The Counter-Position
|
||||||
|
- Industry says: "More models = more choice = better"
|
||||||
|
- Alternative: "Curated models = less paralysis = faster shipping"
|
||||||
|
|
||||||
|
### Examples of Curated Success
|
||||||
|
- Apple: Limited hardware options, higher customer satisfaction
|
||||||
|
- Basecamp: One tool, not ten specialized ones
|
||||||
|
- Notion: Unified workspace vs app chaos
|
||||||
|
|
||||||
|
### Applied to AI Image Generation
|
||||||
|
- What if platform picked 3-4 best models?
|
||||||
|
- What if prompts were consistent across them?
|
||||||
|
- What if you could switch models without re-engineering?
|
||||||
|
|
||||||
|
**Subtle mention:**
|
||||||
|
"I've been working on this problem. Built a tool that curates models and handles consistency. Turns out most developers just want it to work, not to become prompt engineers."
|
||||||
|
|
||||||
|
**Note:** Phase 1 disclosure — mention the tool, not affiliation yet
|
||||||
|
|
||||||
|
**Tone:** Thoughtful, positioning alternative without hard selling
|
||||||
|
|
||||||
|
## Conclusion (150 words)
|
||||||
|
|
||||||
|
**Goal:** Clear takeaway + next step
|
||||||
|
|
||||||
|
### Summary
|
||||||
|
- Model marketplaces solve wrong problem
|
||||||
|
- Developers need consistency, not variety
|
||||||
|
- Pick once, master it, ship
|
||||||
|
|
||||||
|
### The Action
|
||||||
|
Not "go try 47 models."
|
||||||
|
Instead: "Pick one model today. Use it for next month. Learn its patterns. Ship features."
|
||||||
|
|
||||||
|
### Final Thought
|
||||||
|
"The goal isn't to generate perfect images. The goal is to ship products that need images."
|
||||||
|
|
||||||
|
"Stop optimizing model selection. Start shipping."
|
||||||
|
|
||||||
|
**Signature closing:**
|
||||||
|
"Go build something."
|
||||||
|
|
||||||
|
**Tone:** Direct, actionable, confident
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Draft
|
||||||
|
|
||||||
|
Started working on a side project last week. Needed AI-generated images. Thought I'd try the top models everyone talks about—Flux Dev, Flux Realism, SDXL Lightning, see which one fits best.
|
||||||
|
|
||||||
|
Three hours later, I had a folder full of test generations, half a dozen browser tabs comparing model cards, and zero working images in my project.
|
||||||
|
|
||||||
|
The problem wasn't the models. The problem was having 47 of them to choose from.
|
||||||
|
|
||||||
|
Here's the thing about AI image model marketplaces: they've created a problem they can't solve. More choice doesn't make your decision easier. It makes it impossible.
|
||||||
|
|
||||||
|
## The Model Explosion
|
||||||
|
|
||||||
|
Replicate lists over 100 image generation models. Fal.ai offers dozens of Stable Diffusion variants. Runware positions itself as "one API for all AI models"—presenting this as a feature.
|
||||||
|
|
||||||
|
If you've ever tried to pick one, you know the pain. Search for "photorealistic portraits" and you'll find twelve models that claim to excel at it. Each model card says it's "optimized" for something. None of them tell you which one to actually use.
|
||||||
|
|
||||||
|
The answer you get everywhere is: "It depends."
|
||||||
|
|
||||||
|
But depends on what? Your use case? Your aesthetic preference? The phase of the moon? The more specific your question, the less helpful the answers become.
|
||||||
|
|
||||||
|
In my experience, having 47 variations of Stable Diffusion isn't a feature. It's a bug masquerading as flexibility.
|
||||||
|
|
||||||
|
The developer asking "Which model should I use?" isn't looking for philosophy. They're looking for a working solution. The marketplace model fails them completely.
|
||||||
|
|
||||||
|
## Why More Models ≠ Better Results
|
||||||
|
|
||||||
|
The fundamental problem: prompt engineering is model-specific.
|
||||||
|
|
||||||
|
A prompt that works perfectly in SDXL Lightning will produce garbage in Flux Dev. The same carefully crafted description that generates photorealistic portraits in Flux Realism creates cartoonish illustrations in SDXL. You're not learning "AI image prompting"—you're learning how to prompt one specific model.
|
||||||
|
|
||||||
|
Production workflows require consistency. You can't generate your landing page hero image with Flux Dev, then switch to Flux Realism for the feature graphics, then try SDXL for the blog headers. Your brand looks like it was designed by a committee that never met.
|
||||||
|
|
||||||
|
User expectations matter. Once you ship something generated with one model's aesthetic, you've set a baseline. Switching models mid-project breaks visual consistency in ways your users will notice.
|
||||||
|
|
||||||
|
The switching cost is real. Last month I moved from Flux Dev to Flux Realism thinking I'd get better photorealism. Spent a full day re-engineering prompts that worked fine before. Same descriptions, completely different results. Had to rebuild my entire prompt library from scratch.
|
||||||
|
|
||||||
|
What I've found is this: developers think they'll pick the best model for each use case. Reality is different. You'll either pick one model and stick with it anyway—or you'll burn days testing instead of shipping.
|
||||||
|
|
||||||
|
## The Hidden Costs
|
||||||
|
|
||||||
|
The time cost hits first. Initial research takes 2-4 hours just reading model cards and community discussions. Then you're burning through API credits testing each model with your actual use cases. Each model needs its own prompt iteration cycle—easily another few hours per model.
|
||||||
|
|
||||||
|
Do the math: test 10 models with 20 test prompts each. That's 200 API calls at roughly $0.05 per image. You've spent $10 just figuring out which model to use. Then you pick the wrong one and start over.
|
||||||
|
|
||||||
|
The maintenance cost is worse. Model versions update. Your prompts break. Features change. The model you picked three months ago releases v2, and suddenly your carefully tuned prompts don't work anymore. Back to testing.
|
||||||
|
|
||||||
|
The real killer is opportunity cost. I've seen developers spend more time picking an image model than building the feature that needed the image. They're stuck in analysis paralysis while their actual product sits unshipped.
|
||||||
|
|
||||||
|
[TODO: Add specific metrics from real projects about time lost to model selection]
|
||||||
|
|
||||||
|
## What You Actually Need
|
||||||
|
|
||||||
|
You don't need the "best" model. You need ONE model that works for your use case.
|
||||||
|
|
||||||
|
Pick based on your primary need. Stick with it. Build your workflow around it. Document what works. Ignore what other models can do.
|
||||||
|
|
||||||
|
The goal isn't to generate the perfect image on every single generation. The goal is to generate consistent, good-enough images across your entire project. 80% quality with 100% consistency beats 90% quality with 50% consistency every time.
|
||||||
|
|
||||||
|
Production consistency comes from version control for your prompts. When you find a pattern that works in YOUR model, save it. Build a library of working prompts. Understand that model's quirks and strengths.
|
||||||
|
|
||||||
|
Project organization matters. Use the same model for the same project. Context matters—a logo generation has different requirements than a hero image or a blog illustration. But within a project, consistency wins.
|
||||||
|
|
||||||
|
Stop optimizing for the best possible image per generation. Start optimizing for the fastest path from idea to shipped feature.
|
||||||
|
|
||||||
|
The philosophy that works: Pick once. Master it. Ship.
|
||||||
|
|
||||||
|
## How to Pick Your Model Once
|
||||||
|
|
||||||
|
Here's the decision framework:
|
||||||
|
|
||||||
|
```
|
||||||
|
IF photorealistic portraits → Flux Realism
|
||||||
|
IF illustrations/concept art → SDXL Lightning
|
||||||
|
IF speed critical → Flux Schnell
|
||||||
|
IF maximum control → Flux Dev
|
||||||
|
IF you don't know → Flux Dev (most flexible)
|
||||||
|
```
|
||||||
|
|
||||||
|
The rules are simple:
|
||||||
|
|
||||||
|
1. Answer ONE question: What's your primary use case?
|
||||||
|
2. Pick the matching model from the list above
|
||||||
|
3. Stop researching
|
||||||
|
4. Start building your prompt library
|
||||||
|
|
||||||
|
When to ignore this advice: You're in the experimentation phase before production. You need a specific art style like Ghibli or pixel art. You have niche requirements like medical imaging or architectural visualization.
|
||||||
|
|
||||||
|
But most developers fall in the 80% who just need consistency. Pick your model. Learn its patterns. Ship your features.
|
||||||
|
|
||||||
|
What happens next: You spend time understanding YOUR model instead of comparing models. You build a library of working prompts. You learn the quirks. You ship faster.
|
||||||
|
|
||||||
|
[TODO: Add personal experience with sticking to one model for six months]
|
||||||
|
|
||||||
|
## The Curated Approach
|
||||||
|
|
||||||
|
The industry says: "More models equals more choice equals better outcomes."
|
||||||
|
|
||||||
|
But there's an alternative philosophy: Curated models mean less paralysis and faster shipping.
|
||||||
|
|
||||||
|
Look at successful products outside this space. Apple ships limited hardware options and has higher customer satisfaction than Android's infinite choice. Basecamp built one tool instead of ten specialized ones. Notion created a unified workspace that replaced a dozen apps.
|
||||||
|
|
||||||
|
They're all applying the same principle: Opinionated defaults with flexibility underneath.
|
||||||
|
|
||||||
|
Applied to AI image generation: What if a platform picked 3-4 best models? What if prompts were consistent across them? What if you could switch models without re-engineering everything?
|
||||||
|
|
||||||
|
I've been working on this problem. Built a tool that curates models and handles consistency across generations. Turns out most developers just want it to work—they don't want to become prompt engineering experts just to ship an image.
|
||||||
|
|
||||||
|
The counter-position isn't about limiting choice. It's about making the right choice obvious, then getting out of your way.
|
||||||
|
|
||||||
|
## Ship, Don't Optimize
|
||||||
|
|
||||||
|
Model marketplaces solve the wrong problem. They optimize for breadth when developers need depth. They compete on quantity when what matters is consistency.
|
||||||
|
|
||||||
|
You don't need 47 models. You need ONE that works reliably. You need prompts that produce consistent results. You need a workflow that lets you ship instead of endlessly testing.
|
||||||
|
|
||||||
|
The action isn't "try all the models and see what works." The action is: Pick one model today. Use it for the next month. Build your prompt library. Ship your features.
|
||||||
|
|
||||||
|
The goal isn't to generate perfect images. The goal is to ship products that need images.
|
||||||
|
|
||||||
|
Stop optimizing model selection. Start shipping.
|
||||||
|
|
||||||
|
Go build something.
|
||||||
|
|
@ -0,0 +1,227 @@
|
||||||
|
# Keyword Research Summary — December 2025
|
||||||
|
|
||||||
|
**Date:** 2025-12-27
|
||||||
|
**Conducted by:** @strategist
|
||||||
|
**Tool:** DataForSEO (Google Ads Search Volume, Related Keywords)
|
||||||
|
**Budget spent:** ~$0.35
|
||||||
|
**Location:** United States
|
||||||
|
**Language:** English
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Topics Researched
|
||||||
|
|
||||||
|
### 1. Remote Claude Workspace / MCP Remote Access
|
||||||
|
|
||||||
|
**Keywords tested:**
|
||||||
|
- claude desktop mcp
|
||||||
|
- mcp server remote
|
||||||
|
- claude desktop remote access
|
||||||
|
- claude projects multiple devices
|
||||||
|
- remote ai workspace
|
||||||
|
|
||||||
|
**Key findings:**
|
||||||
|
|
||||||
|
| Keyword | Volume | KD | Competition | Verdict |
|
||||||
|
|---------|--------|----|-----------|----|
|
||||||
|
| **claude desktop mcp** | 880 | 8 | LOW (0.02) | 🟢 Strong opportunity |
|
||||||
|
| mcp server remote | 30 | - | LOW (0.23) | 🟡 Niche but viable |
|
||||||
|
| claude desktop (parent) | 18,100 | 30 | LOW (0.09) | 🟢 Massive topic |
|
||||||
|
|
||||||
|
**Trend analysis:**
|
||||||
|
- Peak in Apr-July 2025 (1,600-1,900 searches/month)
|
||||||
|
- Current: ~400-900/month (declining but stable)
|
||||||
|
- YoY growth: +666% from Dec 2024
|
||||||
|
|
||||||
|
**Strategic assessment:**
|
||||||
|
- **Best opportunity** among tested topics
|
||||||
|
- Low competition (KD 8) = easy to rank
|
||||||
|
- Transactional intent = readers ready to implement
|
||||||
|
- Parent topic (Claude Desktop) has huge volume → halo effect potential
|
||||||
|
|
||||||
|
**Distribution potential:** Dev.to, HN (Show HN), r/ClaudeAI
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Claude Code / MCP Image Generation
|
||||||
|
|
||||||
|
**Keywords tested:**
|
||||||
|
- claude code image generation
|
||||||
|
- mcp image generation
|
||||||
|
- generate images cursor ide
|
||||||
|
- ai coding image workflow
|
||||||
|
|
||||||
|
**Key findings:**
|
||||||
|
|
||||||
|
| Keyword | Volume | KD | Competition | Verdict |
|
||||||
|
|---------|--------|----|-----------|----|
|
||||||
|
| claude code image generation | 10 | - | LOW (0.05) | 🟡 Emerging niche |
|
||||||
|
| mcp image generation | 10 | - | LOW (0.12) | 🟡 Emerging niche |
|
||||||
|
|
||||||
|
**Trend analysis:**
|
||||||
|
- Extremely low volume (10-30/month)
|
||||||
|
- Inconsistent pattern, no clear growth trend
|
||||||
|
- MCP peaked Jul 2025 (30/month)
|
||||||
|
|
||||||
|
**Strategic assessment:**
|
||||||
|
- **Not for traffic** — too low volume
|
||||||
|
- **Good for thought leadership** — early mover in MCP ecosystem
|
||||||
|
- **Betting on future growth** — if MCP goes mainstream, could 10-100x
|
||||||
|
- Historical parallel: early Docker tutorials
|
||||||
|
|
||||||
|
**Distribution potential:** r/modelcontextprotocol, r/ClaudeAI, niche communities
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. "Too Many Models" Problem / Consistency
|
||||||
|
|
||||||
|
**Keywords tested:**
|
||||||
|
- too many ai models
|
||||||
|
- consistent ai image generation
|
||||||
|
- ai image api comparison
|
||||||
|
|
||||||
|
**Key findings:**
|
||||||
|
|
||||||
|
All keywords returned **zero or negligible search volume**.
|
||||||
|
|
||||||
|
**Strategic assessment:**
|
||||||
|
- **Problem-aware keywords don't exist** — people experience the pain but don't search for it
|
||||||
|
- **Not an SEO play** — won't drive organic traffic
|
||||||
|
- **Thought leadership value** — articulates unspoken frustration
|
||||||
|
- **Social distribution** — HN, Reddit, LinkedIn (not Google)
|
||||||
|
|
||||||
|
**Alternative approach:**
|
||||||
|
- Write as opinion/manifesto piece
|
||||||
|
- Target comparison keywords ("stable diffusion vs flux")
|
||||||
|
- Focus on counter-positioning vs competitors
|
||||||
|
- Distribute via social/community channels
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Learnings
|
||||||
|
|
||||||
|
### 1. Parent Topic Strategy Works
|
||||||
|
|
||||||
|
**Example:** "claude desktop" (18.1k volume) vs "claude desktop mcp" (880 volume)
|
||||||
|
|
||||||
|
- Ranking for specific long-tail can drive halo traffic from parent topic
|
||||||
|
- Even low-volume keywords (880) are worth targeting if parent is huge
|
||||||
|
- Low KD + high-volume parent = excellent ROI
|
||||||
|
|
||||||
|
### 2. Problem-Aware Keywords Often Don't Exist
|
||||||
|
|
||||||
|
**Pattern identified:**
|
||||||
|
- Developers experience pain (choice paralysis, context switching)
|
||||||
|
- But don't search for the problem ("too many models" = 0 volume)
|
||||||
|
- They search for solutions or specific tools
|
||||||
|
|
||||||
|
**Implication:**
|
||||||
|
- Don't rely solely on keyword volume for content decisions
|
||||||
|
- Community signals (Reddit, HN, forums) reveal real pain points
|
||||||
|
- Thought leadership pieces need social distribution, not SEO
|
||||||
|
|
||||||
|
### 3. Emerging Topics = Early Mover Advantage
|
||||||
|
|
||||||
|
**MCP ecosystem example:**
|
||||||
|
- Currently 10-880 searches/month (very low)
|
||||||
|
- But competition is near zero (KD 7-12)
|
||||||
|
- Potential for 10-100x growth if ecosystem matures
|
||||||
|
- Risk: may never materialize
|
||||||
|
|
||||||
|
**Strategy:**
|
||||||
|
- Mix quick wins (high volume, low KD) with bets (low volume, emerging)
|
||||||
|
- Monitor trends — if MCP volume grows, double down
|
||||||
|
- Early content ages well (historical SEO value)
|
||||||
|
|
||||||
|
### 4. Intent Matters More Than Volume
|
||||||
|
|
||||||
|
**Transactional intent observation:**
|
||||||
|
- "claude desktop mcp" = 880 volume, transactional intent
|
||||||
|
- Readers are ready to implement, high engagement
|
||||||
|
- Better than 10k informational searches (low engagement)
|
||||||
|
|
||||||
|
**Ranking factors:**
|
||||||
|
- Low KD (7-12) = easy to rank in emerging topics
|
||||||
|
- Backlink profile matters less (avg 8-100 domains)
|
||||||
|
- Content quality + early timing = win
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Topic Opportunities Ranked
|
||||||
|
|
||||||
|
| Topic | Volume | KD | Intent | Effort | Verdict |
|
||||||
|
|-------|--------|----|----|--------|---------|
|
||||||
|
| 1. Remote Claude MCP | 880 | 8 | Transactional | Medium | 🟢 **Do first** |
|
||||||
|
| 2. Claude Desktop (parent) | 18.1k | 30 | Commercial | High | 🟢 Long-term target |
|
||||||
|
| 3. MCP Image Gen | 10-30 | <12 | - | Medium | 🟡 Thought leadership |
|
||||||
|
| 4. Too Many Models | 0 | - | - | Low | 🟡 Social/HN only |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Budget Notes
|
||||||
|
|
||||||
|
**Total spent:** ~$0.35
|
||||||
|
|
||||||
|
**API calls made:**
|
||||||
|
1. Google Ads Search Volume (11 keywords) — $0.15
|
||||||
|
2. Related Keywords for "claude desktop" (depth 1, 20 results) — $0.20
|
||||||
|
|
||||||
|
**Remaining budget:** ~$9.65 for December
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations for Future Research
|
||||||
|
|
||||||
|
### High-Priority Topics to Validate
|
||||||
|
|
||||||
|
**AI coding workflow keywords:**
|
||||||
|
- "cursor mcp setup"
|
||||||
|
- "ai image generation api"
|
||||||
|
- "next.js ai images"
|
||||||
|
- "placeholder images api"
|
||||||
|
|
||||||
|
**Banatie-specific angles:**
|
||||||
|
- "consistent image generation"
|
||||||
|
- "project-based image api"
|
||||||
|
- "ai image cdn"
|
||||||
|
|
||||||
|
### Research Strategy
|
||||||
|
|
||||||
|
**Before writing any article:**
|
||||||
|
1. Check parent topic volume (use Related Keywords)
|
||||||
|
2. Verify intent (informational vs transactional)
|
||||||
|
3. Look at SERP features (PAA, video, featured snippets)
|
||||||
|
4. Check trend (growing vs declining)
|
||||||
|
|
||||||
|
**Budget allocation:**
|
||||||
|
- $0.50/article for validation
|
||||||
|
- Save budget for quarterly deep dives
|
||||||
|
- Use free tools (Perplexity, Brave) for initial discovery
|
||||||
|
|
||||||
|
### Topics NOT Worth Researching
|
||||||
|
|
||||||
|
Based on patterns observed:
|
||||||
|
|
||||||
|
❌ **Don't research:**
|
||||||
|
- Problem-aware keywords without solution-seeking behavior
|
||||||
|
- Brand-specific queries ("cloudinary pricing" = already decided)
|
||||||
|
- Very broad topics with KD >70 (can't compete)
|
||||||
|
|
||||||
|
✅ **DO research:**
|
||||||
|
- Solution-seeking keywords ("how to X", "X tutorial")
|
||||||
|
- Comparison keywords ("X vs Y")
|
||||||
|
- Integration/workflow keywords ("X with Y")
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Validate emerging topics quarterly** — check if MCP volume is growing
|
||||||
|
2. **Track rankings** — monitor "claude desktop mcp" after publishing
|
||||||
|
3. **Expand parent topics** — if "claude desktop mcp" ranks, try related queries
|
||||||
|
4. **Test social distribution** — compare HN traffic vs organic for thought pieces
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last updated:** 2025-12-27
|
||||||
|
**Next review:** 2026-03-27 (quarterly)
|
||||||
|
|
@ -0,0 +1,355 @@
|
||||||
|
# Model Selection Paralysis Validation
|
||||||
|
|
||||||
|
**Date:** 2025-12-28
|
||||||
|
**Research Goal:** Validate claims in `3-drafting/too-many-models-problem.md`
|
||||||
|
**Method:** Reddit, HN, community search + synthesis
|
||||||
|
**Verdict:** ✅ **РЕАЛЬНАЯ ПРОБЛЕМА** (с нюансами)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Проблема реальная и активная, но есть важные нюансы:**
|
||||||
|
|
||||||
|
1. ✅ **Choice paralysis существует** — множество свидетельств overwhelm
|
||||||
|
2. ✅ **Switching costs высокие** — прямые подтверждения что промпты не переносятся
|
||||||
|
3. ✅ **Время тратится на testing** — примеры от 4 до 200 часов
|
||||||
|
4. ⚠️ **НО:** Проблема острее для новичков, опытные пользователи адаптировались
|
||||||
|
5. ⚠️ **НО:** Production developers уже решили это "pick one and stick" подходом
|
||||||
|
|
||||||
|
**Рекомендация:** Статья валидная, но тон должен быть "we validate your frustration" а не "everyone suffers daily".
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Evidence by Category
|
||||||
|
|
||||||
|
### 1. Choice Paralysis & Overwhelm
|
||||||
|
|
||||||
|
**Strong signals:**
|
||||||
|
|
||||||
|
| Source | Evidence | Engagement | Date |
|
||||||
|
|--------|----------|------------|------|
|
||||||
|
| r/StableDiffusion | "Anyone else overwhelmed keeping track of all the new image/video model releases?" | 102 upvotes, 61 comments | 2024 |
|
||||||
|
| r/StableDiffusion | "HELP! I am getting overwhelmed while doing research" | Multiple comments | 2024 |
|
||||||
|
| r/StableDiffusion | "Frustrated beginner" — "it can be very overwhelming at the start" | Active thread | 2024 |
|
||||||
|
|
||||||
|
**Quotes:**
|
||||||
|
|
||||||
|
> "I seriously can't keep up anymore with all these new image/video model releases, addons, extensions—you name it."
|
||||||
|
|
||||||
|
> "I wish, with SDXL came a whole lot of CN models and it's just too overwhelming to know what to use when"
|
||||||
|
|
||||||
|
**Interpretation:**
|
||||||
|
- Проблема overwhelm подтверждается
|
||||||
|
- Особенно остро для beginners и intermediate users
|
||||||
|
- Experienced users тоже упоминают, но реже
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Prompt Portability & Switching Costs
|
||||||
|
|
||||||
|
**Critical finding — прямые подтверждения:**
|
||||||
|
|
||||||
|
| Source | Quote | Impact |
|
||||||
|
|--------|-------|--------|
|
||||||
|
| r/PromptEngineering | **"switching between models will kill consistency, even with the greatest prompts"** | 🔥 Прямое подтверждение |
|
||||||
|
| r/StableDiffusion | "To make the same picture you need to have exactly the same model" | 🔥 Explicit |
|
||||||
|
| r/StableDiffusion | "Different models will react differently for the same prompt" | 🔥 Explicit |
|
||||||
|
| r/LocalLLaMA | "Same prompt to different models yield vastly different results?" | Thread title |
|
||||||
|
| r/AI_Agents | "consider developing a library of effective prompts tailored to each model" | Workaround |
|
||||||
|
|
||||||
|
**Key thread:**
|
||||||
|
- r/StableDiffusion: **"Working with multiple models - Prompts differences, how do you manage?"**
|
||||||
|
- Advice: "ask an LLM to help you write prompts, and probably specify for different base models"
|
||||||
|
- This is a **workflow hack** indicating the problem is real enough to need solutions
|
||||||
|
|
||||||
|
**Interpretation:**
|
||||||
|
- ✅ Промпты НЕ портируются между моделями
|
||||||
|
- ✅ Switching kills consistency
|
||||||
|
- ✅ Нужны model-specific prompt libraries
|
||||||
|
- Это **core pain point**, не раздутый
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Time Spent on Testing
|
||||||
|
|
||||||
|
**Documented examples:**
|
||||||
|
|
||||||
|
| Activity | Time Spent | Source |
|
||||||
|
|----------|------------|--------|
|
||||||
|
| Researching photorealistic generation | **200 hours** | r/StableDiffusion |
|
||||||
|
| Testing combinations | **4 hours** | r/StableDiffusion |
|
||||||
|
| Figuring out workflow | **Few weeks**, 1-2 hrs/image | r/StableDiffusion |
|
||||||
|
| Testing checkpoints & settings | **About a month** | r/StableDiffusion |
|
||||||
|
| Working on ComfyUI nodes | **40 hours since Sunday** | r/StableDiffusion |
|
||||||
|
| Filtering & testing | **Hours** of generation + filtering | Multiple posts |
|
||||||
|
|
||||||
|
**Interpretation:**
|
||||||
|
- ✅ Time investment is significant
|
||||||
|
- Range: 4 hours (quick test) to 200 hours (deep research)
|
||||||
|
- Most common: **10-40 hours** для освоения workflow
|
||||||
|
- Это **реальные opportunity costs**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. Number of Models (Scale of Problem)
|
||||||
|
|
||||||
|
**Actual numbers:**
|
||||||
|
|
||||||
|
| Platform | Models | Source |
|
||||||
|
|----------|--------|--------|
|
||||||
|
| **Fal.ai** | **600+ production ready models** (image, video, audio, 3D) | fal.ai homepage |
|
||||||
|
| Replicate | 100+ image generation models (estimate) | Multiple mentions |
|
||||||
|
| Runware | "All AI models in one API" positioning | Market positioning |
|
||||||
|
|
||||||
|
**Specific model families mentioned:**
|
||||||
|
- SDXL variations: множество
|
||||||
|
- Flux: Dev, Pro, Schnell, Realism, + LoRAs
|
||||||
|
- SD 1.5: десятки variants
|
||||||
|
- Pony, Illustrious, и другие specialized
|
||||||
|
|
||||||
|
**Interpretation:**
|
||||||
|
- ✅ "47 variations" в статье — **консервативная оценка**
|
||||||
|
- Actual problem: **600+ models** на одной платформе
|
||||||
|
- Overwhelm обоснован
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. Hacker News Validation
|
||||||
|
|
||||||
|
**Key discussion:**
|
||||||
|
|
||||||
|
Thread: "We ran over 600 image generations to compare AI image models"
|
||||||
|
|
||||||
|
> "It is just very hard to make any generalizations because any single prompt will lead to so many different types of images. **Every model has strengths and weaknesses depending on what you are going for.**"
|
||||||
|
|
||||||
|
**Interpretation:**
|
||||||
|
- Это та же цитата что в статье — **validated**
|
||||||
|
- HN community (experienced devs) признаёт проблему
|
||||||
|
- Нет consensus на "best model" — каждый use case разный
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. Community Solutions (Workarounds)
|
||||||
|
|
||||||
|
**How developers cope:**
|
||||||
|
|
||||||
|
1. **Pick one and stick with it**
|
||||||
|
- "I picked Flux Dev six months ago. Haven't looked at another model since"
|
||||||
|
- Most common production approach
|
||||||
|
|
||||||
|
2. **Model-specific prompt libraries**
|
||||||
|
- "consider developing a library of effective prompts tailored to each model"
|
||||||
|
- Manual versioning
|
||||||
|
|
||||||
|
3. **Testing workflows**
|
||||||
|
- Dedicated testing phase before production
|
||||||
|
- "Took a lot of hoarding and testing to figure that out"
|
||||||
|
|
||||||
|
4. **AI-assisted prompting**
|
||||||
|
- "ask an LLM to help you write prompts...for different base models"
|
||||||
|
- Automation of prompt adaptation
|
||||||
|
|
||||||
|
**Interpretation:**
|
||||||
|
- Workarounds exist потому что **problem is real**
|
||||||
|
- Production devs решают это discipline: pick & commit
|
||||||
|
- But initial selection phase painful
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Critical Assessment
|
||||||
|
|
||||||
|
### What's VALIDATED ✅
|
||||||
|
|
||||||
|
1. **Overwhelm is real** — особенно для новичков и intermediate users
|
||||||
|
2. **Prompts don't transfer** — прямые свидетельства, multiple sources
|
||||||
|
3. **Switching costs high** — "will kill consistency"
|
||||||
|
4. **Time investment significant** — 4 to 200 hours documented
|
||||||
|
5. **Scale of models is massive** — 600+ на одной платформе
|
||||||
|
|
||||||
|
### What's NUANCED ⚠️
|
||||||
|
|
||||||
|
1. **Problem severity varies by user level:**
|
||||||
|
- Beginners: острая проблема
|
||||||
|
- Intermediate: активно ищут решение
|
||||||
|
- Experienced: **уже адаптировались** (pick one approach)
|
||||||
|
|
||||||
|
2. **Production vs. experimentation:**
|
||||||
|
- Production developers: решили дисциплиной (stick to one)
|
||||||
|
- Hobbyists/experimenters: страдают больше
|
||||||
|
- **Our audience (developers)** mostly in production mode
|
||||||
|
|
||||||
|
3. **Choice paralysis vs. informed decision:**
|
||||||
|
- Новички: paralysis от overwhelm
|
||||||
|
- Опытные: "it depends" frustration от lack of guidance
|
||||||
|
- Different pain points
|
||||||
|
|
||||||
|
### What's OVERSTATED in draft ❌
|
||||||
|
|
||||||
|
1. **"Spent 3 hours picking model, realized prompts sucked anyway"**
|
||||||
|
- Tone too dismissive
|
||||||
|
- Reality: people DO find value in testing
|
||||||
|
- Better framing: "time could be spent on prompt refinement"
|
||||||
|
|
||||||
|
2. **Assumption everyone struggles daily**
|
||||||
|
- Production devs have solved this
|
||||||
|
- Pain point is **initial selection**, not ongoing
|
||||||
|
|
||||||
|
### Confidence Levels
|
||||||
|
|
||||||
|
| Claim | Confidence | Notes |
|
||||||
|
|-------|------------|-------|
|
||||||
|
| Choice paralysis exists | **High** | Multiple sources, strong engagement |
|
||||||
|
| Prompts don't transfer | **Very High** | Explicit confirmations |
|
||||||
|
| Time spent on testing | **High** | Documented examples |
|
||||||
|
| Switching kills consistency | **Very High** | Direct quotes |
|
||||||
|
| Problem affects all developers | **Medium** | More acute for beginners |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations for Article
|
||||||
|
|
||||||
|
### 1. Tone Adjustments
|
||||||
|
|
||||||
|
**Current tone risk:** Sounds like "everyone wastes time on this daily"
|
||||||
|
|
||||||
|
**Better approach:**
|
||||||
|
- Validate frustration: "If you've felt overwhelmed..."
|
||||||
|
- Acknowledge solutions exist: "Experienced devs solve this by..."
|
||||||
|
- Position as **initial selection problem**, not ongoing burden
|
||||||
|
|
||||||
|
### 2. Target Audience Clarity
|
||||||
|
|
||||||
|
**Who suffers most:**
|
||||||
|
- ✅ Beginners trying to get started
|
||||||
|
- ✅ Developers launching new projects
|
||||||
|
- ✅ Teams without established workflows
|
||||||
|
- ⚠️ Experienced production users (they've solved it)
|
||||||
|
|
||||||
|
**Article should speak to:**
|
||||||
|
- People **about to start** using AI image gen
|
||||||
|
- Teams establishing workflows
|
||||||
|
- Those frustrated with current multi-model approach
|
||||||
|
|
||||||
|
### 3. Strengthen with Specifics
|
||||||
|
|
||||||
|
**Add concrete examples:**
|
||||||
|
- Quote: "switching between models will kill consistency, even with the greatest prompts"
|
||||||
|
- Data: 600+ models on fal.ai alone
|
||||||
|
- Time: documented 4-200 hour ranges
|
||||||
|
- Thread: "Working with multiple models - Prompts differences, how do you manage?"
|
||||||
|
|
||||||
|
### 4. Acknowledge Counter-Arguments
|
||||||
|
|
||||||
|
**Fair points to address:**
|
||||||
|
|
||||||
|
1. **"But choice is good for experimentation"**
|
||||||
|
- Response: "Absolutely — before production. But production needs consistency."
|
||||||
|
|
||||||
|
2. **"Experienced users handle this fine"**
|
||||||
|
- Response: "Yes, by picking one and committing. That's exactly our point — curation over marketplace."
|
||||||
|
|
||||||
|
3. **"Different use cases need different models"**
|
||||||
|
- Response: "True for 20% edge cases. 80% of developers need consistent workflow."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sources for Article
|
||||||
|
|
||||||
|
**Strong citations to include:**
|
||||||
|
|
||||||
|
1. **HN Quote (already in draft):**
|
||||||
|
> "It is just very hard to make any generalizations because any single prompt will lead to so many different types of images. Every model has strengths and weaknesses depending on what you are going for."
|
||||||
|
— Hacker News, December 2024
|
||||||
|
|
||||||
|
2. **Reddit on switching costs:**
|
||||||
|
> "switching between models will kill consistency, even with the greatest prompts"
|
||||||
|
— r/PromptEngineering, 2024
|
||||||
|
|
||||||
|
3. **Reddit on same prompt, different results:**
|
||||||
|
> "To make the same picture you need to have exactly the same model"
|
||||||
|
— r/StableDiffusion, 2024
|
||||||
|
|
||||||
|
4. **Overwhelm thread:**
|
||||||
|
- Title: "Anyone else overwhelmed keeping track of all the new image/video model releases?"
|
||||||
|
- 102 upvotes, 61 comments
|
||||||
|
- r/StableDiffusion, 2024
|
||||||
|
|
||||||
|
5. **Time investment:**
|
||||||
|
- "I spent over 100 hours researching how to create photorealistic images"
|
||||||
|
- "200 hours focused researching, testing, and experimenting"
|
||||||
|
- r/StableDiffusion, 2024
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Final Verdict
|
||||||
|
|
||||||
|
### Is "Model Selection Paralysis" Real?
|
||||||
|
|
||||||
|
**YES** ✅ — but with important context:
|
||||||
|
|
||||||
|
1. **Acute problem for:**
|
||||||
|
- New users entering space
|
||||||
|
- Teams starting projects
|
||||||
|
- Developers without established workflow
|
||||||
|
|
||||||
|
2. **Managed problem for:**
|
||||||
|
- Experienced users (they pick & commit)
|
||||||
|
- Production teams (discipline solves it)
|
||||||
|
- Those with clear use cases
|
||||||
|
|
||||||
|
3. **Core validated claims:**
|
||||||
|
- Prompts don't transfer between models ✅
|
||||||
|
- Switching costs are high ✅
|
||||||
|
- Time investment is significant ✅
|
||||||
|
- Overwhelm from 600+ models is real ✅
|
||||||
|
|
||||||
|
### Article Strategy
|
||||||
|
|
||||||
|
**This article is VALUABLE as:**
|
||||||
|
|
||||||
|
1. **Validation piece** — "you're not alone in feeling overwhelmed"
|
||||||
|
2. **Counter-positioning** — "curation > marketplace"
|
||||||
|
3. **Thought leadership** — "we understand this pain"
|
||||||
|
4. **Social/community play** — HN, Reddit discussion starter
|
||||||
|
|
||||||
|
**This article is NOT:**
|
||||||
|
- SEO traffic driver (keywords have zero volume)
|
||||||
|
- Universal problem everyone faces daily
|
||||||
|
- Attack on competitors (they serve different audiences)
|
||||||
|
|
||||||
|
### Writing Approach
|
||||||
|
|
||||||
|
**Lead with empathy:**
|
||||||
|
"If you've spent hours comparing models, only to find your prompts break when you switch — you're not alone."
|
||||||
|
|
||||||
|
**Middle with evidence:**
|
||||||
|
- Community quotes
|
||||||
|
- Documented time costs
|
||||||
|
- Technical reality of prompt incompatibility
|
||||||
|
|
||||||
|
**Close with philosophy:**
|
||||||
|
"We believe the answer isn't more choice — it's better curation. Pick once, master it, ship."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. ✅ **Validation complete** — проблема реальная
|
||||||
|
2. ⚠️ **Tone needs adjustment** — less "everyone wastes time", more "if you've felt this"
|
||||||
|
3. ✅ **Evidence strong** — use specific quotes
|
||||||
|
4. ✅ **Strategic value clear** — thought leadership, not SEO
|
||||||
|
5. 🔄 **Consider:** Add "When model variety DOES help" section earlier to be fair
|
||||||
|
|
||||||
|
**Proceed with article?** YES — с учётом adjustments выше.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Research Tools Used
|
||||||
|
|
||||||
|
- **Brave Search:** Reddit, HN community discussions
|
||||||
|
- **Web Search:** Competitor websites (fal.ai, replicate.com)
|
||||||
|
- **Perplexity:** Academic sources (none found — this is community-driven problem)
|
||||||
|
|
||||||
|
**Time spent:** ~30 minutes
|
||||||
|
**Quality:** High confidence in findings
|
||||||
|
|
@ -15,3 +15,19 @@ Before creating any dated content (reports, digests, analysis):
|
||||||
3. Double-check dates in filenames and content headers
|
3. Double-check dates in filenames and content headers
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Keyword Research Available
|
||||||
|
**Added:** 2025-12-27
|
||||||
|
|
||||||
|
Fresh keyword research conducted for inbox topics:
|
||||||
|
- **Summary:** `research/keyword-research-2025-12-27.md`
|
||||||
|
- **Individual files updated:**
|
||||||
|
- remote-claude-workspace.md (880 vol, KD 8 — best opportunity)
|
||||||
|
- claude-code-image-generation-mcp.md (10 vol — thought leadership only)
|
||||||
|
- too-many-models-problem.md (0 vol — social distribution needed)
|
||||||
|
|
||||||
|
**Key finding:** Parent topic "claude desktop" has 18.1k volume — halo effect opportunity.
|
||||||
|
|
||||||
|
**Budget spent:** $0.35 of $10 monthly budget.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
|
|
@ -14,16 +14,57 @@ This document is the central registry of all author personas for Banatie content
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|-------|-------|
|
|-------|-------|
|
||||||
| **File** | style-guides/henry-technical.md |
|
| **File** | style-guides/henry-technical.md |
|
||||||
| **Name** | Henry Mitchell |
|
| **Name** | Henry Bonson |
|
||||||
| **Role** | Senior Developer |
|
| **Handle** | @h1gbosn |
|
||||||
| **Affiliation** | independent |
|
| **Role** | Lead Engineer & Builder |
|
||||||
| **Primary Platform** | dev.to |
|
| **Affiliation** | Co-founder (Phase 1: not disclosed publicly) |
|
||||||
| **Avatar** | assets/avatars/henry.png (pending) |
|
| **Primary Platform** | Dev.to |
|
||||||
|
| **Secondary Platforms** | Hashnode, IndieHackers (selective) |
|
||||||
|
| **Avatar** | /projects/my-projects/banatie-accounts/h1gbosn/avatar1-sm.png |
|
||||||
| **Status** | Active |
|
| **Status** | Active |
|
||||||
|
|
||||||
**Topics:** Tutorials, deep dives, API integration, Banatie product guides
|
**Topics:** Full-stack tutorials, system architecture, API integration, AI-assisted development, e-commerce platforms, Banatie product guides
|
||||||
**Voice:** Direct, pragmatic, code-heavy, experience-based
|
|
||||||
**Real person:** Oleg
|
**Voice:** Direct, pragmatic, code-heavy, experience-based (12 years), "I remember when..." technical nostalgia
|
||||||
|
|
||||||
|
**Real person:** Oleg Proskurin
|
||||||
|
|
||||||
|
**Social Profiles:**
|
||||||
|
- Dev.to: https://dev.to/h1gbosn
|
||||||
|
- GitHub: https://github.com/h1gbosn
|
||||||
|
- LinkedIn: https://www.linkedin.com/in/henry-bonson-4376153a1/
|
||||||
|
- IndieHackers: https://www.indiehackers.com/h1gbosn
|
||||||
|
- Email: h1gbosn@gmail.com
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### banatie-linkedin
|
||||||
|
|
||||||
|
| Field | Value |
|
||||||
|
|-------|-------|
|
||||||
|
| **File** | style-guides/banatie-linkedin.md |
|
||||||
|
| **Name** | Banatie |
|
||||||
|
| **Type** | Company Voice (not a person) |
|
||||||
|
| **Handle** | @banatie |
|
||||||
|
| **Platform** | LinkedIn (company page) |
|
||||||
|
| **Affiliation** | Official company account |
|
||||||
|
| **Admin** | Oleg Proskurin (hidden, super admin) |
|
||||||
|
| **Status** | Ready (account not created yet) |
|
||||||
|
|
||||||
|
**Topics:** Product updates, industry commentary, use case showcases, developer workflow insights, AI tooling trends
|
||||||
|
|
||||||
|
**Voice:** Professional but approachable, confident but not arrogant, technical but accessible, company perspective ("we")
|
||||||
|
|
||||||
|
**Content Types:**
|
||||||
|
- Product announcements and features
|
||||||
|
- Industry news analysis
|
||||||
|
- Reposts of Henry's Dev.to articles (with company angle)
|
||||||
|
- Developer tips and tricks
|
||||||
|
- Use case showcases
|
||||||
|
|
||||||
|
**Key Differentiator:** Company voice, not personal. Focuses on positioning and product benefits, delegates technical deep-dives to Henry.
|
||||||
|
|
||||||
|
**Platform:** linkedin.com/company/banatie (to be created)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -36,7 +77,7 @@ This document is the central registry of all author personas for Banatie content
|
||||||
| **Role** | Creative Technologist |
|
| **Role** | Creative Technologist |
|
||||||
| **Affiliation** | community |
|
| **Affiliation** | community |
|
||||||
| **Primary Platform** | TBD |
|
| **Primary Platform** | TBD |
|
||||||
| **Avatar** | assets/avatars/nina.png (pending) |
|
| **Avatar** | assets/avators/nina.png (pending) |
|
||||||
| **Status** | Needs creation |
|
| **Status** | Needs creation |
|
||||||
|
|
||||||
**Topics:** AI art, design workflows, creative tools, productivity
|
**Topics:** AI art, design workflows, creative tools, productivity
|
||||||
|
|
@ -55,6 +96,14 @@ This document is the central registry of all author personas for Banatie content
|
||||||
| Technical comparison | henry | X vs Y with code |
|
| Technical comparison | henry | X vs Y with code |
|
||||||
| Deep dive (how it works) | henry | Architecture, internals |
|
| Deep dive (how it works) | henry | Architecture, internals |
|
||||||
| Debugging story | henry | Problem → solution |
|
| Debugging story | henry | Problem → solution |
|
||||||
|
| E-commerce technical | henry | Shopify, payments, architecture |
|
||||||
|
| AI SDK & tools | henry | Developer perspective on AI |
|
||||||
|
| System architecture | henry | Distributed systems, BFF, infrastructure |
|
||||||
|
| **Product announcement** | **banatie-linkedin** | Feature launches, updates |
|
||||||
|
| **Industry commentary** | **banatie-linkedin** | News analysis, positioning |
|
||||||
|
| **Use case showcase** | **banatie-linkedin** | High-level benefits, ROI |
|
||||||
|
| **Tips (non-code)** | **banatie-linkedin** | Quick developer tips |
|
||||||
|
| **Content repost** | **banatie-linkedin** | Sharing Henry's articles |
|
||||||
| AI art / image creativity | nina | Creative exploration |
|
| AI art / image creativity | nina | Creative exploration |
|
||||||
| Design workflow | nina | Tools for designers |
|
| Design workflow | nina | Tools for designers |
|
||||||
| Creative tools review | nina | Non-technical perspective |
|
| Creative tools review | nina | Non-technical perspective |
|
||||||
|
|
@ -62,6 +111,28 @@ This document is the central registry of all author personas for Banatie content
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Content Differentiation by Voice
|
||||||
|
|
||||||
|
**Same topic, different angles:**
|
||||||
|
|
||||||
|
**Example: "Cloudflare acquires Replicate"**
|
||||||
|
|
||||||
|
| Voice | Angle | Platform | Depth |
|
||||||
|
|-------|-------|----------|-------|
|
||||||
|
| **banatie-linkedin** | Industry positioning: "Confirms workflow-native thesis" | LinkedIn | 300-500 words |
|
||||||
|
| **henry** | Technical analysis: migration, API changes, code examples | Dev.to | 2000-2500 words |
|
||||||
|
| **oleg (future)** | Founder perspective: "This validated our roadmap" | LinkedIn personal | 400-600 words |
|
||||||
|
|
||||||
|
**Example: "How to integrate AI image generation"**
|
||||||
|
|
||||||
|
| Voice | Angle | Platform | Depth |
|
||||||
|
|-------|-------|----------|-------|
|
||||||
|
| **banatie-linkedin** | Use case: "Generate 50 images in 2 minutes" | LinkedIn | 200-300 words |
|
||||||
|
| **henry** | Technical tutorial: full code walkthrough | Dev.to | 2000-3000 words |
|
||||||
|
| **oleg (future)** | N/A — not his content type | N/A | N/A |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Style Guide Requirements
|
## Style Guide Requirements
|
||||||
|
|
||||||
Every author style guide MUST contain these sections:
|
Every author style guide MUST contain these sections:
|
||||||
|
|
@ -92,6 +163,8 @@ See `TEMPLATE.md` for full structure.
|
||||||
| **contractor** | Paid contributor | "Contributing writer" |
|
| **contractor** | Paid contributor | "Contributing writer" |
|
||||||
| **community** | Active user who writes | "Banatie user" |
|
| **community** | Active user who writes | "Banatie user" |
|
||||||
| **independent** | No formal relationship | No disclosure needed |
|
| **independent** | No formal relationship | No disclosure needed |
|
||||||
|
| **co-founder** | Founder/co-founder | Gradual disclosure strategy (see henry's guide) |
|
||||||
|
| **company** | Official company voice | N/A — this IS Banatie |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -111,7 +184,7 @@ See `TEMPLATE.md` for full structure.
|
||||||
1. Copy `TEMPLATE.md` to `{author-handle}.md`
|
1. Copy `TEMPLATE.md` to `{author-handle}.md`
|
||||||
2. Fill all sections
|
2. Fill all sections
|
||||||
3. Add entry to this file
|
3. Add entry to this file
|
||||||
4. Create avatar in `assets/avatars/`
|
4. Create avatar in appropriate location
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -119,13 +192,15 @@ See `TEMPLATE.md` for full structure.
|
||||||
|
|
||||||
Authors are **personas**, not direct representations:
|
Authors are **personas**, not direct representations:
|
||||||
|
|
||||||
- **Henry** represents Oleg's technical expertise but writes as "Henry Mitchell"
|
- **Henry Bonson** represents Oleg's technical expertise but writes as an independent character
|
||||||
- **Nina** represents Ekaterina's creative perspective but writes as "Nina Novak"
|
- **Nina Novak** represents Ekaterina's creative perspective but writes as an independent character
|
||||||
|
- **Banatie LinkedIn** is the company voice — managed by Oleg but speaks as "we"
|
||||||
|
|
||||||
Articles are published under persona names. This allows:
|
Articles are published under persona names. This allows:
|
||||||
- Consistent voice even if real person's style evolves
|
- Consistent voice even if real person's style evolves
|
||||||
- Clear brand identity per content type
|
- Clear brand identity per content type
|
||||||
- Potential for multiple personas per real person
|
- Professional separation between personal and project identities
|
||||||
|
- Flexibility in disclosure strategy (see Affiliation section in guides)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -133,15 +208,34 @@ Articles are published under persona names. This allows:
|
||||||
|
|
||||||
| Author | File | Avatar | Socials | Channels | Full Guide | Status |
|
| Author | File | Avatar | Socials | Channels | Full Guide | Status |
|
||||||
|--------|------|--------|---------|----------|------------|--------|
|
|--------|------|--------|---------|----------|------------|--------|
|
||||||
| henry | ✅ | ❌ | ❌ | ❌ | Partial | Needs update |
|
| henry | ✅ | ✅ | ✅ | ✅ | ✅ Complete | Ready |
|
||||||
|
| banatie-linkedin | ✅ | ⏳ | ⏳ | ⏳ | ✅ Complete | Ready (account pending) |
|
||||||
| nina | ❌ | ❌ | ❌ | ❌ | ❌ | Needs creation |
|
| nina | ❌ | ❌ | ❌ | ❌ | ❌ | Needs creation |
|
||||||
|
|
||||||
|
**Henry Status:**
|
||||||
|
- ✅ All 13 required sections complete
|
||||||
|
- ✅ Avatar set up across platforms
|
||||||
|
- ✅ Social profiles active (Dev.to, GitHub, LinkedIn, IndieHackers)
|
||||||
|
- ✅ Publishing strategy defined
|
||||||
|
- ✅ Affiliation disclosure strategy documented
|
||||||
|
|
||||||
|
**Banatie LinkedIn Status:**
|
||||||
|
- ✅ Full style guide complete
|
||||||
|
- ⏳ Company page not created yet (planned)
|
||||||
|
- ⏳ Logo/visuals defined, implementation pending
|
||||||
|
- ⏳ Admin access ready (Oleg)
|
||||||
|
- ✅ Content strategy documented
|
||||||
|
- ✅ Engagement rules defined
|
||||||
|
|
||||||
**TODO:**
|
**TODO:**
|
||||||
- [ ] Update henry-technical.md with new sections (affiliation, avatar, socials, channels)
|
- [ ] Create LinkedIn company page (@banatie)
|
||||||
- [ ] Create nina-creative.md
|
- [ ] Set up Banatie logo and cover image
|
||||||
- [ ] Generate avatars
|
- [ ] Prepare initial post queue
|
||||||
|
- [ ] Create nina-creative.md style guide
|
||||||
|
- [ ] Set up Nina's social profiles
|
||||||
|
- [ ] Generate Nina's avatar
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Last updated:** 2024-12-27
|
**Last updated:** 2024-12-28
|
||||||
**Maintained by:** @style-guide-creator
|
**Maintained by:** @style-guide-creator
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,955 @@
|
||||||
|
# Banatie Company Voice — LinkedIn
|
||||||
|
|
||||||
|
## Identity
|
||||||
|
|
||||||
|
**Name:** Banatie
|
||||||
|
**Type:** Company Page (LinkedIn)
|
||||||
|
**Handle:** @banatie
|
||||||
|
**Admin:** Oleg Proskurin (hidden, super admin only)
|
||||||
|
**Voice:** Company voice — professional but approachable, not corporate-boring
|
||||||
|
**Status:** Not created yet (planned)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Affiliation
|
||||||
|
|
||||||
|
**Relationship to Banatie:** Official company account
|
||||||
|
**Disclosure:** N/A — this IS Banatie speaking
|
||||||
|
**Bio Line:** "AI-powered image generation API built for developers. Generate production-ready images without leaving your workflow."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Avatar & Visuals
|
||||||
|
|
||||||
|
**Logo:** Banatie brand wordmark
|
||||||
|
**Cover Image:** Clean, abstract tech visual using brand colors
|
||||||
|
**Colors:**
|
||||||
|
- Primary: #6366F1 (Indigo)
|
||||||
|
- Secondary: #22D3EE (Cyan)
|
||||||
|
- Background: #0F172A (Dark Slate)
|
||||||
|
|
||||||
|
**Visual Style:**
|
||||||
|
- Clean, minimal graphics
|
||||||
|
- Code screenshots when relevant
|
||||||
|
- Abstract tech imagery
|
||||||
|
- NO stock photos with fake smiling people
|
||||||
|
- Banatie brand elements
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Social Profiles
|
||||||
|
|
||||||
|
**Primary Platform:** LinkedIn (company page)
|
||||||
|
**Purpose:** Industry positioning, product updates, professional networking
|
||||||
|
**URL:** linkedin.com/company/banatie (to be created)
|
||||||
|
|
||||||
|
**Admin Access:**
|
||||||
|
- Oleg Proskurin (super admin, hidden)
|
||||||
|
- Future: team members as content contributors
|
||||||
|
|
||||||
|
**Cross-Platform Presence:**
|
||||||
|
- **Dev.to:** @banatie (organization, future)
|
||||||
|
- **GitHub:** github.com/banatie
|
||||||
|
- **Twitter/X:** @banatie (future consideration)
|
||||||
|
- **Product Hunt:** Product launches (when ready)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Publishing Channels
|
||||||
|
|
||||||
|
**Primary:** LinkedIn company page
|
||||||
|
|
||||||
|
**Content Distribution:**
|
||||||
|
- LinkedIn posts (original)
|
||||||
|
- Reposts of Henry's Dev.to articles (with company angle)
|
||||||
|
- Shares of industry news and analysis
|
||||||
|
- Product announcements
|
||||||
|
- Use case showcases
|
||||||
|
|
||||||
|
**NOT for LinkedIn:**
|
||||||
|
- Long technical tutorials → Henry on Dev.to
|
||||||
|
- Personal founder stories → Oleg (future)
|
||||||
|
- Building in public metrics → Oleg (future)
|
||||||
|
- Creative AI exploration → Nina (future)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
### Company Positioning
|
||||||
|
|
||||||
|
Banatie speaks as a **product and company**, not as a person.
|
||||||
|
|
||||||
|
**We are:**
|
||||||
|
- AI-powered image API for developers
|
||||||
|
- Workflow-native, not just another API
|
||||||
|
- Built by developers who understand the pain
|
||||||
|
- Opinionated about developer experience
|
||||||
|
- Early-stage but production-ready
|
||||||
|
|
||||||
|
**We are NOT:**
|
||||||
|
- A person sharing opinions
|
||||||
|
- A founder telling journey stories
|
||||||
|
- A technical tutorial source (that's Henry)
|
||||||
|
- A creative AI art platform (that's for artists)
|
||||||
|
- An enterprise solution (we're developer-first)
|
||||||
|
|
||||||
|
### Industry Position
|
||||||
|
|
||||||
|
**Where we compete:**
|
||||||
|
- Workflow integration vs manual download/organize/import
|
||||||
|
- Developer experience vs raw API features
|
||||||
|
- Time saved vs cost per image
|
||||||
|
|
||||||
|
**Where we DON'T compete:**
|
||||||
|
- Image quality (commoditized — all models are good)
|
||||||
|
- GPU speed racing (infrastructure game)
|
||||||
|
- Creative exploration tools (Midjourney, Leonardo)
|
||||||
|
|
||||||
|
### Company Perspective
|
||||||
|
|
||||||
|
Banatie has opinions:
|
||||||
|
- **Workflow beats infrastructure** — distribution and DX matter more than model selection
|
||||||
|
- **Developer time is expensive** — saving 20 minutes per task is worth paying for
|
||||||
|
- **Integration is the hard part** — generating images is easy, fitting them into workflow is hard
|
||||||
|
- **Tools should disappear** — best tools feel like they're not there
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Expertise
|
||||||
|
|
||||||
|
**Primary Topics:**
|
||||||
|
- Product updates and feature announcements
|
||||||
|
- Developer workflow optimization
|
||||||
|
- AI image generation for developers
|
||||||
|
- Industry trends affecting developer tools
|
||||||
|
- Use cases and integration patterns
|
||||||
|
|
||||||
|
**Secondary Topics:**
|
||||||
|
- Infrastructure and CDN strategy
|
||||||
|
- API design principles
|
||||||
|
- Developer experience philosophy
|
||||||
|
- AI tooling ecosystem
|
||||||
|
|
||||||
|
### Topics Banatie Covers
|
||||||
|
|
||||||
|
**Product Content:**
|
||||||
|
- Feature announcements
|
||||||
|
- Integration guides (high-level)
|
||||||
|
- Use case showcases
|
||||||
|
- Tips and tricks
|
||||||
|
- Changelog highlights
|
||||||
|
|
||||||
|
**Industry Commentary:**
|
||||||
|
- Acquisitions and market moves (e.g., Cloudflare + Replicate)
|
||||||
|
- AI infrastructure trends
|
||||||
|
- Developer tools landscape
|
||||||
|
- Workflow evolution
|
||||||
|
|
||||||
|
**Thought Leadership:**
|
||||||
|
- Why workflow-native matters
|
||||||
|
- Developer experience principles
|
||||||
|
- API design philosophy
|
||||||
|
- Future of AI tooling
|
||||||
|
|
||||||
|
### Topics Banatie Avoids
|
||||||
|
|
||||||
|
**Out of Scope:**
|
||||||
|
|
||||||
|
| Topic | Why Avoid | Who Covers It |
|
||||||
|
|-------|-----------|---------------|
|
||||||
|
| **Technical deep-dives** | Too detailed for company voice | Henry on Dev.to |
|
||||||
|
| **Code tutorials** | Requires walkthrough style | Henry on Dev.to |
|
||||||
|
| **Founder journey** | Requires personal voice | Oleg (future) |
|
||||||
|
| **Building in public metrics** | Requires personal authenticity | Oleg (future) |
|
||||||
|
| **Creative AI art** | Different audience | Nina (future) |
|
||||||
|
| **Design theory** | Not our expertise | Nina (future) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voice & Tone
|
||||||
|
|
||||||
|
### Company Personality
|
||||||
|
|
||||||
|
**Core Characteristics:**
|
||||||
|
- Confident but not arrogant
|
||||||
|
- Technical but accessible
|
||||||
|
- Opinionated but respectful
|
||||||
|
- Helpful, not salesy
|
||||||
|
- Direct, not corporate
|
||||||
|
|
||||||
|
**Relationship with audience:** Peer-to-peer (developer tool to developers), not vendor-to-customer
|
||||||
|
|
||||||
|
**Formality level:** 6/10 — professional but conversational
|
||||||
|
|
||||||
|
### Language Patterns
|
||||||
|
|
||||||
|
**Banatie uses:**
|
||||||
|
- "We believe..." (company position)
|
||||||
|
- "Developers need..." (customer-centric)
|
||||||
|
- "Here's what we're seeing..." (industry observer)
|
||||||
|
- "We built X because..." (product rationale)
|
||||||
|
- "This matters because..." (explaining why)
|
||||||
|
|
||||||
|
**Banatie avoids:**
|
||||||
|
- "I think..." (no personal voice)
|
||||||
|
- "Our CEO says..." (Oleg is hidden)
|
||||||
|
- Corporate buzzwords (synergy, leverage, paradigm shift)
|
||||||
|
- Hard selling ("Buy now!", "Best API ever!")
|
||||||
|
- Excessive hedging ("maybe", "perhaps", "might consider")
|
||||||
|
|
||||||
|
### Emotional Register
|
||||||
|
|
||||||
|
**Confidence:**
|
||||||
|
- Express through clear statements
|
||||||
|
- "We're opinionated about X"
|
||||||
|
- "This is the right approach for Y"
|
||||||
|
- Never arrogant or dismissive
|
||||||
|
|
||||||
|
**Enthusiasm:**
|
||||||
|
- When shipping features: measured excitement
|
||||||
|
- "Excited to ship X" is fine
|
||||||
|
- NO excessive exclamation marks
|
||||||
|
- NO hyperbole ("game-changing", "revolutionary")
|
||||||
|
|
||||||
|
**Criticism (of industry):**
|
||||||
|
- Professional, not inflammatory
|
||||||
|
- Focus on problems, not attacking competitors
|
||||||
|
- "The current approach has limitations..."
|
||||||
|
- Never name competitors negatively
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Writing Patterns
|
||||||
|
|
||||||
|
### Post Opening Styles
|
||||||
|
|
||||||
|
**Hook Types:**
|
||||||
|
|
||||||
|
1. **Problem Statement**
|
||||||
|
```
|
||||||
|
Developers waste 20+ minutes per image task.
|
||||||
|
|
||||||
|
Leave IDE → generate → download → organize → import.
|
||||||
|
|
||||||
|
We built Banatie to fix this.
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Industry News Commentary**
|
||||||
|
```
|
||||||
|
Cloudflare acquires Replicate for $550M.
|
||||||
|
|
||||||
|
What this tells us: [analysis]
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Feature Announcement**
|
||||||
|
```
|
||||||
|
New in Banatie: @name references
|
||||||
|
|
||||||
|
Generate consistent characters and styles across your entire project.
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Stat/Insight**
|
||||||
|
```
|
||||||
|
87% of developers using AI coding tools still leave their IDE to generate images.
|
||||||
|
|
||||||
|
This is the context-switching we're solving.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Post Structure
|
||||||
|
|
||||||
|
**Optimal LinkedIn formats:**
|
||||||
|
|
||||||
|
| Format | Length | When to use |
|
||||||
|
|--------|--------|-------------|
|
||||||
|
| **Short post** | 150-300 words | Tips, quick updates, reposts |
|
||||||
|
| **Medium post** | 500-800 words | Industry commentary, use cases |
|
||||||
|
| **Document/carousel** | 5-10 slides | Visual how-tos, comparisons |
|
||||||
|
| **Poll** | 1 question | Engagement, market research |
|
||||||
|
|
||||||
|
**Text Post Template:**
|
||||||
|
```
|
||||||
|
Hook (1-2 lines) — grab attention
|
||||||
|
|
||||||
|
Context (2-3 lines) — what happened / why this matters
|
||||||
|
|
||||||
|
Body (3-5 bullets or short paragraphs) — main points
|
||||||
|
|
||||||
|
CTA (1 line) — question, link, or invitation to engage
|
||||||
|
```
|
||||||
|
|
||||||
|
### Section Elements
|
||||||
|
|
||||||
|
**Paragraphs:**
|
||||||
|
- Keep short: 1-3 sentences
|
||||||
|
- Use line breaks generously
|
||||||
|
- One idea per paragraph
|
||||||
|
|
||||||
|
**Lists:**
|
||||||
|
- Use → arrows for points
|
||||||
|
- 3-5 items max
|
||||||
|
- Keep items concise
|
||||||
|
|
||||||
|
**Code snippets:**
|
||||||
|
- Rarely in LinkedIn posts
|
||||||
|
- Only for quick examples
|
||||||
|
- Link to full docs/tutorials
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content Types & Examples
|
||||||
|
|
||||||
|
### 1. Product Updates
|
||||||
|
|
||||||
|
**When:** Feature launches, improvements, fixes
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- What's new (1 line)
|
||||||
|
- What problem it solves
|
||||||
|
- How to use it (brief or link)
|
||||||
|
- CTA
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
New in Banatie: @name references
|
||||||
|
|
||||||
|
Generate images with consistent characters and styles across your project.
|
||||||
|
|
||||||
|
@hero in one prompt = same hero in every image.
|
||||||
|
|
||||||
|
No more "generate 10 versions and pick the one that matches."
|
||||||
|
|
||||||
|
Details in docs: [link]
|
||||||
|
|
||||||
|
#DeveloperTools #AIImages #API
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Industry Commentary
|
||||||
|
|
||||||
|
**When:** Major industry news, acquisitions, trends
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- News headline
|
||||||
|
- What it means (analysis)
|
||||||
|
- Our perspective (company position)
|
||||||
|
- Optional: how it affects us
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
Cloudflare acquires Replicate for $550M.
|
||||||
|
|
||||||
|
What this tells us:
|
||||||
|
→ Standalone AI infrastructure is brutal
|
||||||
|
→ Distribution beats technology
|
||||||
|
→ Developer ecosystem is the moat
|
||||||
|
|
||||||
|
We're not competing on GPUs.
|
||||||
|
We're competing on workflow.
|
||||||
|
|
||||||
|
That's why Banatie focuses on developer experience, not model racing.
|
||||||
|
|
||||||
|
#AIforDevelopers #DeveloperTools
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Use Case Showcases
|
||||||
|
|
||||||
|
**When:** Demonstrating practical applications
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- Scenario/problem
|
||||||
|
- Solution with Banatie
|
||||||
|
- Results/benefits
|
||||||
|
- Link to guide
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
How to generate 50 product images in 2 minutes:
|
||||||
|
|
||||||
|
Problem: E-commerce site needs consistent product mockups
|
||||||
|
Solution: Banatie API + @product references + batch generation
|
||||||
|
|
||||||
|
1. Define product style once
|
||||||
|
2. Generate variations programmatically
|
||||||
|
3. Images delivered via CDN, ready to use
|
||||||
|
|
||||||
|
No manual download. No file organization.
|
||||||
|
|
||||||
|
Full guide: [link]
|
||||||
|
|
||||||
|
#DeveloperTools #Ecommerce #AIImages
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Content Reposts (Henry's Articles)
|
||||||
|
|
||||||
|
**When:** Henry publishes on Dev.to
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- Brief intro with company angle
|
||||||
|
- Key takeaway from article
|
||||||
|
- Link to full article
|
||||||
|
- Credit to Henry
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
How do AI image APIs actually compare?
|
||||||
|
|
||||||
|
Our technical writer Henry tested 5 MCP servers head-to-head.
|
||||||
|
|
||||||
|
Spoiler: raw speed isn't everything.
|
||||||
|
Workflow integration and error handling matter more.
|
||||||
|
|
||||||
|
This is exactly why we built Banatie with MCP-first architecture.
|
||||||
|
|
||||||
|
Full breakdown: [Dev.to link]
|
||||||
|
|
||||||
|
#DeveloperTools #MCP #AIImages
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Tips & Tricks
|
||||||
|
|
||||||
|
**When:** Weekly filler content
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- Quick tip headline
|
||||||
|
- 3-5 bullet points
|
||||||
|
- Optional: link to docs
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
3 ways to speed up AI image generation in production:
|
||||||
|
|
||||||
|
→ Cache at edge, not origin
|
||||||
|
→ Use redirects, not proxies
|
||||||
|
→ Store URLs in DB, not files
|
||||||
|
|
||||||
|
Each saves 50-200ms per request.
|
||||||
|
|
||||||
|
Details: [docs link]
|
||||||
|
|
||||||
|
#DeveloperTools #Performance
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content Differentiation Matrix
|
||||||
|
|
||||||
|
**Same topic, different voices:**
|
||||||
|
|
||||||
|
**Topic:** "Cloudflare acquires Replicate"
|
||||||
|
|
||||||
|
| Voice | Angle | Platform |
|
||||||
|
|-------|-------|----------|
|
||||||
|
| **Banatie** (LinkedIn) | Industry positioning: "This confirms our thesis — workflow beats infrastructure." | LinkedIn company |
|
||||||
|
| **Henry** (Dev.to) | Technical analysis: migration considerations, API changes, code examples | Dev.to |
|
||||||
|
| **Oleg** (future) | Founder perspective: "When I saw this news, I knew our bet was right. Here's how it changed our roadmap." | LinkedIn personal / IndieHackers |
|
||||||
|
|
||||||
|
**Topic:** "How to integrate AI image generation"
|
||||||
|
|
||||||
|
| Voice | Angle | Platform |
|
||||||
|
|-------|-------|----------|
|
||||||
|
| **Banatie** (LinkedIn) | High-level use case: "Generate 50 product images in 2 minutes" | LinkedIn company |
|
||||||
|
| **Henry** (Dev.to) | Technical walkthrough: code examples, edge cases, full implementation | Dev.to |
|
||||||
|
| **Oleg** (future) | N/A — not his content type | N/A |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Language Patterns
|
||||||
|
|
||||||
|
### Signature Phrases
|
||||||
|
|
||||||
|
**Company Positioning:**
|
||||||
|
- "We built X because developers need Y"
|
||||||
|
- "This is the workflow-native approach"
|
||||||
|
- "Developer time is expensive"
|
||||||
|
- "Integration is the hard part"
|
||||||
|
|
||||||
|
**Industry Observer:**
|
||||||
|
- "Here's what we're seeing..."
|
||||||
|
- "This confirms our thesis that..."
|
||||||
|
- "The market is shifting toward..."
|
||||||
|
- "What this means for developers..."
|
||||||
|
|
||||||
|
**Product Rationale:**
|
||||||
|
- "We're opinionated about X"
|
||||||
|
- "This is why we focus on Y"
|
||||||
|
- "Our bet is on Z"
|
||||||
|
- "We don't compete on X — we compete on Y"
|
||||||
|
|
||||||
|
### Words to Use
|
||||||
|
|
||||||
|
- "workflow" (not "process")
|
||||||
|
- "generate" (not "create" for AI images)
|
||||||
|
- "integrate" (not "connect")
|
||||||
|
- "developers" (not "users")
|
||||||
|
- "production-ready" (not "high-quality")
|
||||||
|
- "time saved" (value metric)
|
||||||
|
|
||||||
|
### Words to Avoid
|
||||||
|
|
||||||
|
- "Revolutionary" / "Game-changing"
|
||||||
|
- "Seamless" (overused)
|
||||||
|
- "Best-in-class"
|
||||||
|
- "Leverage" (corporate speak)
|
||||||
|
- "Utilize" (just say "use")
|
||||||
|
- "Synergy", "paradigm", "disrupt"
|
||||||
|
- "In today's digital landscape..."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Hashtags
|
||||||
|
|
||||||
|
**Primary:** #DeveloperTools #AIforDevelopers #API
|
||||||
|
**Secondary:** #WebDevelopment #AIImages #DevEx
|
||||||
|
**Industry-specific:** #NextJS #React #Ecommerce (when relevant)
|
||||||
|
|
||||||
|
**Usage:**
|
||||||
|
- 3-5 hashtags per post
|
||||||
|
- Place at the end
|
||||||
|
- Mix of broad and specific
|
||||||
|
- Research trending developer hashtags monthly
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sample Posts (Full Examples)
|
||||||
|
|
||||||
|
### Product Launch Post
|
||||||
|
|
||||||
|
```
|
||||||
|
We're live.
|
||||||
|
|
||||||
|
Banatie is an AI image generation API built for developers who use Claude Code, Cursor, and other AI coding tools.
|
||||||
|
|
||||||
|
Generate production-ready images without leaving your workflow.
|
||||||
|
|
||||||
|
→ MCP server integration
|
||||||
|
→ Built-in CDN delivery
|
||||||
|
→ @name references for consistency
|
||||||
|
→ Free tier to start
|
||||||
|
|
||||||
|
The problem: leaving your IDE to generate images breaks flow.
|
||||||
|
The solution: generate via API, deliver via CDN, stay in your editor.
|
||||||
|
|
||||||
|
Try it: banatie.app
|
||||||
|
|
||||||
|
#DeveloperTools #AIforDevelopers #API
|
||||||
|
```
|
||||||
|
|
||||||
|
### Industry Analysis Post
|
||||||
|
|
||||||
|
```
|
||||||
|
Cloudflare acquires Replicate for $550M.
|
||||||
|
|
||||||
|
Here's what it means for AI developers:
|
||||||
|
|
||||||
|
→ Standalone AI infrastructure is a brutal business
|
||||||
|
→ Distribution beats technology
|
||||||
|
→ Ecosystem integration is the real moat
|
||||||
|
|
||||||
|
We called this shift 6 months ago.
|
||||||
|
|
||||||
|
Banatie doesn't compete on GPU speed or model selection.
|
||||||
|
We compete on developer experience and workflow integration.
|
||||||
|
|
||||||
|
You can have the fastest API in the world.
|
||||||
|
But if developers have to leave their IDE to use it, they won't.
|
||||||
|
|
||||||
|
That's why we built MCP-first, not API-first.
|
||||||
|
|
||||||
|
Thoughts?
|
||||||
|
|
||||||
|
#AIforDevelopers #DeveloperTools #Infrastructure
|
||||||
|
```
|
||||||
|
|
||||||
|
### Use Case Showcase Post
|
||||||
|
|
||||||
|
```
|
||||||
|
How @acme generates 200 product images per day:
|
||||||
|
|
||||||
|
Before Banatie:
|
||||||
|
→ Designer generates in Midjourney
|
||||||
|
→ Downloads and organizes files
|
||||||
|
→ Developer imports to codebase
|
||||||
|
→ Total time: ~2 hours
|
||||||
|
|
||||||
|
After Banatie:
|
||||||
|
→ Script runs during build
|
||||||
|
→ Images generated with @product references
|
||||||
|
→ CDN delivers instantly
|
||||||
|
→ Total time: ~2 minutes
|
||||||
|
|
||||||
|
That's 118 hours saved per month.
|
||||||
|
|
||||||
|
At $50/hour developer time, that's $5,900 saved.
|
||||||
|
Banatie costs $29/month.
|
||||||
|
|
||||||
|
ROI: 203x
|
||||||
|
|
||||||
|
This is why we price on value, not compute cost.
|
||||||
|
|
||||||
|
Full case study: [link]
|
||||||
|
|
||||||
|
#DeveloperTools #Ecommerce #ROI
|
||||||
|
```
|
||||||
|
|
||||||
|
### Weekly Tip Post
|
||||||
|
|
||||||
|
```
|
||||||
|
Debugging AI image generation?
|
||||||
|
|
||||||
|
3 things to check first:
|
||||||
|
|
||||||
|
→ Prompt length (max ~500 chars for best results)
|
||||||
|
→ Aspect ratio support (check model limits)
|
||||||
|
→ Rate limits (are you hitting API ceiling?)
|
||||||
|
|
||||||
|
Most "generation failed" errors are one of these.
|
||||||
|
|
||||||
|
Save this for next time you're stuck.
|
||||||
|
|
||||||
|
#DeveloperTools #AIImages #Debugging
|
||||||
|
```
|
||||||
|
|
||||||
|
### Repost of Henry's Article
|
||||||
|
|
||||||
|
```
|
||||||
|
"Why MCP servers are better than REST APIs for AI image generation"
|
||||||
|
|
||||||
|
Our technical writer Henry breaks down:
|
||||||
|
→ Context persistence
|
||||||
|
→ Error handling patterns
|
||||||
|
→ State management
|
||||||
|
→ Tool calling architecture
|
||||||
|
|
||||||
|
This is the thinking behind Banatie's MCP-first approach.
|
||||||
|
|
||||||
|
Code examples and full comparison: [Dev.to link]
|
||||||
|
|
||||||
|
Worth a read if you're building with AI tooling.
|
||||||
|
|
||||||
|
#MCP #DeveloperTools #AIforDevelopers
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engagement Rules
|
||||||
|
|
||||||
|
### When to Respond
|
||||||
|
|
||||||
|
**Always respond to:**
|
||||||
|
- Direct questions about product
|
||||||
|
- Feature requests (thank + note in backlog)
|
||||||
|
- Bug reports (acknowledge + move to support)
|
||||||
|
- Technical questions (answer or redirect to docs/Henry)
|
||||||
|
|
||||||
|
**Optionally respond to:**
|
||||||
|
- Positive feedback (like or brief thanks)
|
||||||
|
- General discussion (if relevant to add value)
|
||||||
|
- Industry debates (if Banatie perspective adds value)
|
||||||
|
|
||||||
|
**Never respond to:**
|
||||||
|
- Spam or irrelevant comments
|
||||||
|
- Inflammatory or rude comments (ignore or hide)
|
||||||
|
- Competitor comparisons (stay professional)
|
||||||
|
|
||||||
|
### Response Voice
|
||||||
|
|
||||||
|
**Respond as Banatie:**
|
||||||
|
- Thank for feedback
|
||||||
|
- Answer product questions
|
||||||
|
- Redirect technical deep-dives to docs or Henry's articles
|
||||||
|
- Be helpful, not defensive
|
||||||
|
|
||||||
|
**Example responses:**
|
||||||
|
|
||||||
|
Good question! Here's how it works: [brief answer]. Full details in docs: [link]
|
||||||
|
|
||||||
|
Thanks for the feedback! We're tracking this feature request. Follow along on our roadmap: [link]
|
||||||
|
|
||||||
|
Great point. Henry actually wrote about this exact scenario: [Dev.to link]
|
||||||
|
|
||||||
|
### Engagement Don'ts
|
||||||
|
|
||||||
|
**Don't:**
|
||||||
|
- Get into arguments
|
||||||
|
- Share personal opinions (company voice, not person)
|
||||||
|
- Promise features without checking
|
||||||
|
- Make negative comments about competitors
|
||||||
|
- Respond to every comment (engagement farming)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cross-Promotion Strategy
|
||||||
|
|
||||||
|
### Reposts from Other Channels
|
||||||
|
|
||||||
|
**Henry's Dev.to articles:**
|
||||||
|
- Share within 24 hours of Henry publishing
|
||||||
|
- Add company angle in post intro
|
||||||
|
- Link to full article
|
||||||
|
- Credit Henry
|
||||||
|
|
||||||
|
**Product blog posts:**
|
||||||
|
- Coordinate with blog publish date
|
||||||
|
- Share teaser with link
|
||||||
|
- Use carousel for multi-point posts
|
||||||
|
|
||||||
|
**GitHub releases:**
|
||||||
|
- Announce major releases
|
||||||
|
- Link to changelog
|
||||||
|
- Brief highlights only
|
||||||
|
|
||||||
|
### Internal Links
|
||||||
|
|
||||||
|
**When to link:**
|
||||||
|
- Product docs (for feature details)
|
||||||
|
- Henry's tutorials (for technical how-tos)
|
||||||
|
- Banatie blog (for long-form content)
|
||||||
|
- GitHub repos (for code examples)
|
||||||
|
|
||||||
|
**Link format:**
|
||||||
|
- Always use short, clean links
|
||||||
|
- Add context: "Details in docs: [link]"
|
||||||
|
- Never link without explanation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Visual Content
|
||||||
|
|
||||||
|
### Post Images
|
||||||
|
|
||||||
|
**Types:**
|
||||||
|
- Product screenshots (features, UI)
|
||||||
|
- Code snippets (brief, readable)
|
||||||
|
- Diagrams (architecture, flow)
|
||||||
|
- Abstract tech visuals (brand style)
|
||||||
|
- Comparison tables (X vs Y)
|
||||||
|
|
||||||
|
**Style:**
|
||||||
|
- Banatie brand colors
|
||||||
|
- Clean, minimal
|
||||||
|
- High contrast text
|
||||||
|
- Mobile-friendly sizing
|
||||||
|
|
||||||
|
**Text in images:**
|
||||||
|
- Large, readable font
|
||||||
|
- High contrast
|
||||||
|
- Max 10-15 words
|
||||||
|
- Not essential (image should support post, not replace it)
|
||||||
|
|
||||||
|
### Carousels
|
||||||
|
|
||||||
|
**When to use:**
|
||||||
|
- Product feature breakdowns
|
||||||
|
- Comparison guides
|
||||||
|
- Step-by-step processes
|
||||||
|
- Stat presentations
|
||||||
|
|
||||||
|
**Best practices:**
|
||||||
|
- 5-10 slides max
|
||||||
|
- One idea per slide
|
||||||
|
- Clear progression
|
||||||
|
- Final slide = CTA
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Posting Schedule
|
||||||
|
|
||||||
|
**Frequency:** 3-5 posts per week
|
||||||
|
|
||||||
|
**Optimal timing (PST):**
|
||||||
|
- Weekdays: 8-10am, 12-2pm
|
||||||
|
- Avoid: Weekends, late evenings
|
||||||
|
|
||||||
|
**Content mix:**
|
||||||
|
- 40% Product updates and tips
|
||||||
|
- 30% Industry commentary
|
||||||
|
- 20% Reposts (Henry, community)
|
||||||
|
- 10% Engagement (polls, questions)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Do's and Don'ts
|
||||||
|
|
||||||
|
### Do's
|
||||||
|
|
||||||
|
**Content:**
|
||||||
|
- Lead with problems, not features
|
||||||
|
- Share industry perspective
|
||||||
|
- Credit Henry when reposting his content
|
||||||
|
- Link to full resources (docs, tutorials)
|
||||||
|
- Keep posts concise and scannable
|
||||||
|
- Use concrete examples and numbers
|
||||||
|
|
||||||
|
**Voice:**
|
||||||
|
- Speak as company ("we")
|
||||||
|
- Be confident about product decisions
|
||||||
|
- Show technical understanding
|
||||||
|
- Stay professional and helpful
|
||||||
|
|
||||||
|
**Engagement:**
|
||||||
|
- Respond to questions
|
||||||
|
- Thank for feedback
|
||||||
|
- Redirect to appropriate resources
|
||||||
|
- Add value to discussions
|
||||||
|
|
||||||
|
### Don'ts
|
||||||
|
|
||||||
|
**Content:**
|
||||||
|
- Don't write long technical tutorials (→ Henry)
|
||||||
|
- Don't share unverifiable claims
|
||||||
|
- Don't promise unreleased features
|
||||||
|
- Don't create clickbait
|
||||||
|
- Don't hard sell
|
||||||
|
|
||||||
|
**Voice:**
|
||||||
|
- Don't use "I" (company, not person)
|
||||||
|
- Don't use corporate buzzwords
|
||||||
|
- Don't be defensive or argumentative
|
||||||
|
- Don't attack competitors
|
||||||
|
- Don't apologize excessively
|
||||||
|
|
||||||
|
**Engagement:**
|
||||||
|
- Don't respond to every comment
|
||||||
|
- Don't promise features without checking
|
||||||
|
- Don't engage in flame wars
|
||||||
|
- Don't delete criticism (unless spam/abuse)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content Fit
|
||||||
|
|
||||||
|
### Best For
|
||||||
|
|
||||||
|
**Banatie LinkedIn excels at:**
|
||||||
|
- Product announcements and updates
|
||||||
|
- Industry positioning and commentary
|
||||||
|
- High-level use case showcases
|
||||||
|
- Sharing technical content from Henry
|
||||||
|
- Company perspective on trends
|
||||||
|
- Developer workflow insights
|
||||||
|
- Building brand awareness
|
||||||
|
|
||||||
|
### Not Ideal For
|
||||||
|
|
||||||
|
**Wrong fit for Banatie LinkedIn:**
|
||||||
|
- Long technical tutorials → Henry on Dev.to
|
||||||
|
- Personal founder stories → Oleg (future)
|
||||||
|
- Building in public metrics → Oleg (future)
|
||||||
|
- Code walkthroughs → Henry on Dev.to
|
||||||
|
- Creative AI exploration → Nina (future)
|
||||||
|
- Design tutorials → Nina (future)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Relationship to Other Voices
|
||||||
|
|
||||||
|
**Content Coordination:**
|
||||||
|
|
||||||
|
| Topic | Banatie LinkedIn | Henry Dev.to | Oleg (future) |
|
||||||
|
|-------|------------------|--------------|---------------|
|
||||||
|
| **Product launch** | Announcement + use case | Technical integration guide | Founder perspective |
|
||||||
|
| **Industry news** | Company analysis | Technical implications | Personal take |
|
||||||
|
| **Feature update** | What & why | How to use (code) | Why we built it |
|
||||||
|
| **Tutorial** | Link to Henry's post | Full tutorial | N/A |
|
||||||
|
|
||||||
|
**Cross-Promotion Flow:**
|
||||||
|
|
||||||
|
1. Henry publishes tutorial on Dev.to
|
||||||
|
2. Banatie LinkedIn shares with company angle (same day)
|
||||||
|
3. Banatie blog cross-posts (1 week later, canonical tag)
|
||||||
|
4. Future: Oleg comments on LinkedIn share with founder perspective
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quality Gates
|
||||||
|
|
||||||
|
Before publishing as Banatie, verify:
|
||||||
|
|
||||||
|
### Voice
|
||||||
|
- [ ] Uses "we" throughout (company voice)
|
||||||
|
- [ ] No "I" or personal perspective
|
||||||
|
- [ ] Professional but not corporate-boring
|
||||||
|
- [ ] Confident without arrogance
|
||||||
|
- [ ] Helpful, not salesy
|
||||||
|
|
||||||
|
### Content
|
||||||
|
- [ ] Topic fits Banatie scope (not Henry or Oleg content)
|
||||||
|
- [ ] Clear value for developers
|
||||||
|
- [ ] Problem-focused, not feature-focused
|
||||||
|
- [ ] Concrete and specific (no vague claims)
|
||||||
|
- [ ] Appropriate length for format
|
||||||
|
|
||||||
|
### Structure
|
||||||
|
- [ ] Hook in first 1-2 lines
|
||||||
|
- [ ] Clear message/takeaway
|
||||||
|
- [ ] Scannable (line breaks, bullets)
|
||||||
|
- [ ] Ends with CTA or question
|
||||||
|
- [ ] 3-5 relevant hashtags
|
||||||
|
|
||||||
|
### Brand Alignment
|
||||||
|
- [ ] Matches Banatie positioning
|
||||||
|
- [ ] Supports "workflow-native" thesis
|
||||||
|
- [ ] No corporate buzzwords
|
||||||
|
- [ ] Links to appropriate resources
|
||||||
|
- [ ] Visual style on-brand (if image)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Metrics to Track
|
||||||
|
|
||||||
|
**Engagement:**
|
||||||
|
- Impressions
|
||||||
|
- Reactions (likes, celebrates)
|
||||||
|
- Comments
|
||||||
|
- Shares
|
||||||
|
- Click-through rate (to docs/blog)
|
||||||
|
|
||||||
|
**Audience:**
|
||||||
|
- Follower growth
|
||||||
|
- Follower demographics (role, company size)
|
||||||
|
- Engagement rate
|
||||||
|
|
||||||
|
**Content Performance:**
|
||||||
|
- Top-performing post types
|
||||||
|
- Best-performing topics
|
||||||
|
- Optimal posting times
|
||||||
|
|
||||||
|
**Business Impact:**
|
||||||
|
- Website traffic from LinkedIn
|
||||||
|
- Sign-ups attributed to LinkedIn
|
||||||
|
- Developer awareness surveys
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Future Evolution
|
||||||
|
|
||||||
|
**Phase 1: Pre-Launch (Current)**
|
||||||
|
- Account not yet created
|
||||||
|
- Strategy documented
|
||||||
|
- Content queue prepared
|
||||||
|
|
||||||
|
**Phase 2: Launch**
|
||||||
|
- Create company page
|
||||||
|
- Oleg as super admin
|
||||||
|
- Initial posts (product intro, team, mission)
|
||||||
|
- Connect with developer community
|
||||||
|
|
||||||
|
**Phase 3: Active Growth**
|
||||||
|
- Regular posting (3-5x/week)
|
||||||
|
- Henry article reposts
|
||||||
|
- Industry commentary
|
||||||
|
- Community engagement
|
||||||
|
|
||||||
|
**Phase 4: Established**
|
||||||
|
- Oleg goes public as founder
|
||||||
|
- Coordination between company page and Oleg personal
|
||||||
|
- Nina adds creative perspective
|
||||||
|
- Community-generated content features
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Style guide created:** 2024-12-28
|
||||||
|
**Last updated:** 2024-12-28
|
||||||
|
**Status:** Ready for implementation
|
||||||
|
**Platform:** LinkedIn (company page)
|
||||||
|
**Admin:** Oleg Proskurin (hidden)
|
||||||
|
|
@ -1,14 +1,293 @@
|
||||||
# Henry — Technical Content Author Guide
|
# Henry Bonson — Style Guide
|
||||||
|
|
||||||
## 1. Voice & Tone
|
## Identity
|
||||||
|
|
||||||
|
**Name:** Henry Bonson
|
||||||
|
**Handle:** @h1gbosn
|
||||||
|
**Role:** Lead Engineer & Builder | Architecting Developer-First Solutions
|
||||||
|
**Location:** England, United Kingdom
|
||||||
|
**Years of Experience:** 12 years (started 2013)
|
||||||
|
**Specialization:** Distributed Systems, Backend-for-Frontend, Infrastructure Engineering
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Affiliation
|
||||||
|
|
||||||
|
**Relationship to Banatie:** Co-founder
|
||||||
|
**Public Disclosure Strategy:** Gradual reveal
|
||||||
|
- **Phase 1 (current):** Build personal brand as independent engineer
|
||||||
|
- **Phase 2 (after warm-up):** Introduce Banatie affiliation naturally in content
|
||||||
|
- **Phase 3 (established):** Full co-founder disclosure in bio
|
||||||
|
|
||||||
|
**Current Bio Line (Phase 1):**
|
||||||
|
"Lead Engineer with 12 years building distributed systems and developer tools. Sharing practical insights from real production experience."
|
||||||
|
|
||||||
|
**Future Bio Line (Phase 3):**
|
||||||
|
"Co-founder at Banatie. Building AI-powered developer tools. 12 years architecting web infrastructure."
|
||||||
|
|
||||||
|
**Content Disclosure Rules:**
|
||||||
|
- **Phase 1:** Write about problems and solutions without mentioning Banatie
|
||||||
|
- **When mentioning Banatie:** Present as "a tool I've been using" or "I recently built"
|
||||||
|
- **No hard selling:** Focus on technical merit, not promotion
|
||||||
|
- **Honesty:** If directly asked about relationship, answer truthfully
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Avatar
|
||||||
|
|
||||||
|
**File:** `/projects/my-projects/banatie-accounts/h1gbosn/avatar1-sm.png`
|
||||||
|
**Status:** Set up across all platforms (LinkedIn, GitHub, Dev.to, IndieHackers)
|
||||||
|
**Style:** Tech-focused digital illustration
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Social Profiles
|
||||||
|
|
||||||
|
**Primary Platform:** Dev.to
|
||||||
|
**Email:** h1gbosn@gmail.com
|
||||||
|
|
||||||
|
**Active Profiles:**
|
||||||
|
|
||||||
|
- **Dev.to:** https://dev.to/h1gbosn
|
||||||
|
- *Purpose:* Main publishing channel for technical content
|
||||||
|
- *Content:* Tutorials, deep dives, integration guides, technical comparisons
|
||||||
|
- *Strategy:* Build reputation as technical expert, later cross-post to Banatie blog
|
||||||
|
|
||||||
|
- **LinkedIn:** https://www.linkedin.com/in/henry-bonson-4376153a1/
|
||||||
|
- *Title:* "Tech Lead & Independent Engineer | Creating Tools for Developers"
|
||||||
|
- *Purpose:* Professional networking, audience building
|
||||||
|
- *Content:* Cross-posting Dev.to articles, engaging with developer community
|
||||||
|
- *Strategy:* Build connections, warm up network, engage with potential customers, create Banatie org later
|
||||||
|
- *Activity:* Connection building, post engagement, community participation
|
||||||
|
|
||||||
|
- **GitHub:** https://github.com/h1gbosn
|
||||||
|
- *Purpose:* Code credibility, examples, Banatie org membership
|
||||||
|
- *Content:* Code samples from articles, contributions, repositories
|
||||||
|
- *Org membership:* https://github.com/banatie
|
||||||
|
|
||||||
|
- **IndieHackers:** https://www.indiehackers.com/h1gbosn
|
||||||
|
- *Purpose:* Experimental channel, building in public
|
||||||
|
- *Content:* Product journey, indie dev discussions, industry analysis (e.g., acquisitions, trends)
|
||||||
|
- *Strategy:* Opportunistic — publish when content fits IH audience (building in public, indie perspective on tech news)
|
||||||
|
- *Note:* During content research, evaluate if topic works for IH angle
|
||||||
|
|
||||||
|
**Future Channels:**
|
||||||
|
- Banatie blog (cross-posting from Dev.to)
|
||||||
|
- Banatie org on Dev.to (after warm-up)
|
||||||
|
- Banatie org on LinkedIn (networking and company presence)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Publishing Channels
|
||||||
|
|
||||||
|
**Primary:** Dev.to, Hashnode → Banatie Blog (future phase)
|
||||||
|
|
||||||
|
**Secondary:**
|
||||||
|
- **IndieHackers** — market analysis, technical insights only (NOT founder journey)
|
||||||
|
|
||||||
|
**NOT available:**
|
||||||
|
- **LinkedIn personal** — requires real identity, Henry is a pen name
|
||||||
|
- **Product Hunt** — founder-facing, will be handled by Oleg when public
|
||||||
|
|
||||||
|
**Content Distribution Strategy:**
|
||||||
|
|
||||||
|
**Phase 1: Pre-Banatie Blog (current)**
|
||||||
|
1. Publish on Dev.to first (original, canonical)
|
||||||
|
2. Cross-post to Hashnode (same version, canonical to Dev.to)
|
||||||
|
3. Selective IndieHackers (market analysis, NOT building-in-public)
|
||||||
|
|
||||||
|
**Phase 2: Banatie Blog Active**
|
||||||
|
1. Publish on Banatie blog first (canonical)
|
||||||
|
2. Wait for indexation
|
||||||
|
3. Cross-post to Dev.to with canonical tag pointing to Banatie
|
||||||
|
4. Cross-post to Hashnode with canonical tag
|
||||||
|
5. Selective IndieHackers if topic fits
|
||||||
|
|
||||||
|
**Format Adaptation by Platform:**
|
||||||
|
|
||||||
|
| Platform | Format | What Henry Posts |
|
||||||
|
|----------|--------|------------------|
|
||||||
|
| **Dev.to** | Long-form (1500-3500 words) | Technical depth, tutorials, code-heavy |
|
||||||
|
| **Hashnode** | Long-form (1500-3500 words) | Same as Dev.to, cross-posted |
|
||||||
|
| **Banatie Blog** | Long-form (1500-3500 words) | Same content, owns canonical (future) |
|
||||||
|
| **IndieHackers** | Analysis (800-1500 words) | Market trends, industry analysis, technical opinions |
|
||||||
|
|
||||||
|
**IndieHackers Guidelines:**
|
||||||
|
|
||||||
|
✅ **Henry CAN post:**
|
||||||
|
- Market analysis ("What Cloudflare's Replicate acquisition means for devs")
|
||||||
|
- Technical comparisons ("MCP servers compared: what actually works")
|
||||||
|
- Industry trends ("The end of standalone AI infrastructure?")
|
||||||
|
- Opinion pieces on developer tools
|
||||||
|
|
||||||
|
❌ **Henry CANNOT post:**
|
||||||
|
- Founder journey ("How I'm building Banatie")
|
||||||
|
- Revenue/metrics updates
|
||||||
|
- Personal stories requiring real identity
|
||||||
|
- "Building in public" content
|
||||||
|
|
||||||
|
**Rationale:** IndieHackers community expects authenticity for founder content. Henry as technical analyst = fine. Henry as fake founder = risk.
|
||||||
|
|
||||||
|
**Future Transition:**
|
||||||
|
When Oleg can go public as founder:
|
||||||
|
- Oleg takes over IndieHackers founder content
|
||||||
|
- Oleg handles Product Hunt launches
|
||||||
|
- Henry continues as "Banatie's technical writer"
|
||||||
|
- Henry's existing content remains valid
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
### Professional Journey
|
||||||
|
|
||||||
|
**2013-2017: Foundation Years**
|
||||||
|
Started as frontend developer in the jQuery and early AngularJS era. Built e-commerce platforms with Backbone.js and Knockout.js, wrestled with Grunt and Gulp build systems, wrote way too much Bootstrap. Picked up React around 2015 when it was still the "weird new thing from Facebook." Learned the hard way that good architecture matters more than trendy frameworks — and that Webpack configs can make grown developers cry.
|
||||||
|
|
||||||
|
**2017-2020: Full-Stack Transition**
|
||||||
|
Moved beyond frontend into backend systems and infrastructure. Worked extensively with Node.js/Express, Docker, early serverless (AWS Lambda), and cloud platforms. Adopted TypeScript when most people still thought static typing was overkill for JavaScript. Built GraphQL APIs, fought with Redux complexity, discovered styled-components and CSS-in-JS. This was the era of realizing that the real complexity lives in the integration layer between services, not the frameworks themselves.
|
||||||
|
|
||||||
|
**2020-2023: Systems & Architecture Focus**
|
||||||
|
Shifted focus to distributed systems, BFF patterns, and developer tooling. Led technical architecture for JAMstack platforms using Next.js, React, and headless CMS solutions (Sanity, Storyblok, Contentful, Payload). Migrated projects to Vercel and Netlify, built with Tailwind CSS, worked with Prisma and modern database tooling. Watched React Server Components emerge. Built internal tools to improve developer workflows because waiting for the "right tool" means never shipping.
|
||||||
|
|
||||||
|
**2023-Present: Independent Engineering & Building**
|
||||||
|
Currently working as independent tech lead, architecting developer-first solutions. Deep into AI-assisted development (Claude Code, Cursor, GitHub Copilot) — tools that finally deliver on the "coding faster" promise. Exploring edge computing (Cloudflare Workers), modern monorepo tools (Turborepo), and the new wave of JavaScript runtimes (Bun). Building tools that solve real workflow friction for developers, because after 12 years, you know exactly where the pain points are.
|
||||||
|
|
||||||
|
### Key Experience Areas
|
||||||
|
|
||||||
|
**Technical Expertise:**
|
||||||
|
- **12 years building web applications** — from jQuery to AI-assisted development
|
||||||
|
- **Frontend evolution:** jQuery → Angular 1.x → React → Next.js → React Server Components
|
||||||
|
- **State management journey:** Backbone → Redux → Context → Server Components
|
||||||
|
- **Styling evolution:** Bootstrap → Sass → styled-components → Tailwind CSS
|
||||||
|
- **Build tools:** Grunt → Gulp → Webpack → Vite → Turbopack
|
||||||
|
- **Backend & APIs:** Node.js, Express, GraphQL, REST, tRPC, Serverless functions
|
||||||
|
- **Databases & ORMs:** PostgreSQL, MongoDB, Prisma, Drizzle
|
||||||
|
- **Infrastructure:** Docker, Kubernetes, Vercel, Netlify, Cloudflare, AWS Lambda, edge computing
|
||||||
|
- **Headless CMS:** Sanity, Storyblok, Hygraph, Contentful, Crystallize, Payload, DatoCMS
|
||||||
|
- **E-commerce:** Shopify, Swell, custom solutions
|
||||||
|
- **AI Development:** Claude Code, Cursor, GitHub Copilot, ChatGPT for code
|
||||||
|
- **Languages:** JavaScript, TypeScript, Node.js, bash/Linux tooling
|
||||||
|
|
||||||
|
**What Shaped His Perspective:**
|
||||||
|
- **Survived framework churn** — from Angular 1.x to React to Next.js, learned to focus on fundamentals
|
||||||
|
- **Years of debugging integration issues** — documentation is often wrong, incomplete, or outdated
|
||||||
|
- **Building with AI tools** — finally tools that actually make coding faster, not just different
|
||||||
|
- **Worked across full stack** — frontend, backend, infrastructure; systems thinking is the result
|
||||||
|
- **Indie/freelance background** — values practical solutions over architectural purity
|
||||||
|
- **Early adopter mindset** — tried new tools early, got burned sometimes, learned what actually matters
|
||||||
|
|
||||||
|
**Credibility Markers:**
|
||||||
|
- 12 years hands-on experience across full stack and infrastructure
|
||||||
|
- Built production systems serving real users since 2013
|
||||||
|
- Witnessed and adapted through major tech shifts (jQuery→React, REST→GraphQL, monoliths→JAMstack→edge)
|
||||||
|
- Deep knowledge of modern web architecture patterns and their trade-offs
|
||||||
|
- Early adopter of AI-assisted development workflows
|
||||||
|
- Active in developer communities (Dev.to, GitHub, IndieHackers)
|
||||||
|
- Opinionated from experience, not theory
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Expertise
|
||||||
|
|
||||||
|
**Primary Topics:**
|
||||||
|
Full-stack web development, system architecture, developer tooling, AI-assisted development workflows
|
||||||
|
|
||||||
|
**Secondary Topics:**
|
||||||
|
Cloud infrastructure, e-commerce platforms, performance optimization, modern JavaScript ecosystem
|
||||||
|
|
||||||
|
### Topics Henry Writes About
|
||||||
|
|
||||||
|
**Core Technical Content:**
|
||||||
|
- Next.js, React patterns (App Router, Server Components, hooks, performance)
|
||||||
|
- API design and integration (REST, GraphQL, tRPC, webhooks)
|
||||||
|
- Backend-for-Frontend patterns, serverless, edge computing
|
||||||
|
- Developer tooling and workflow optimization
|
||||||
|
- AI coding assistants (Claude Code, Cursor, integration patterns)
|
||||||
|
- AI SDK (Vercel AI SDK, LangChain, building AI-powered features)
|
||||||
|
- TypeScript patterns, build tools, monorepo architecture
|
||||||
|
- Cloud infrastructure (Vercel, Netlify, Cloudflare)
|
||||||
|
- Database design, ORMs (Prisma, Drizzle)
|
||||||
|
- Payload CMS (architecture, customization, plugins)
|
||||||
|
- Statsig (feature flags, A/B testing, experimentation platforms)
|
||||||
|
|
||||||
|
**E-commerce & Platforms:**
|
||||||
|
- Shopify development (apps, themes, integrations, Hydrogen)
|
||||||
|
- Custom e-commerce architecture
|
||||||
|
- Payment integrations (Stripe, payment providers)
|
||||||
|
- Inventory and order management systems
|
||||||
|
- Product data synchronization
|
||||||
|
- Cart and checkout optimization
|
||||||
|
- E-commerce performance and scalability
|
||||||
|
|
||||||
|
**Developer Experience & Workflows:**
|
||||||
|
- Debugging strategies and common pitfalls
|
||||||
|
- Tool comparisons (framework vs framework, service vs service)
|
||||||
|
- Development environment setup and automation
|
||||||
|
- Code quality, testing approaches
|
||||||
|
- Performance optimization techniques
|
||||||
|
|
||||||
|
**Industry Analysis & Opinion:**
|
||||||
|
- Developer tools landscape and trends
|
||||||
|
- Infrastructure and service provider comparisons
|
||||||
|
- Technology adoption decisions (when to use X vs Y)
|
||||||
|
- AI tooling evolution and practical applications
|
||||||
|
- Web architecture patterns (JAMstack, edge, monoliths)
|
||||||
|
|
||||||
|
**Banatie-Related Content:**
|
||||||
|
- Image generation API integration tutorials
|
||||||
|
- Developer workflow automation with AI image generation
|
||||||
|
- MCP server development and integration
|
||||||
|
- Building tools for AI-assisted development
|
||||||
|
|
||||||
|
### Topics Henry Avoids
|
||||||
|
|
||||||
|
**Out of Scope:**
|
||||||
|
|
||||||
|
| Topic | Why Avoid |
|
||||||
|
|-------|-----------|
|
||||||
|
| **Design aesthetics, UI/UX theory** | Not his expertise; Nina covers creative/design content |
|
||||||
|
| **Pure frontend styling tutorials** | Too narrow; focuses on architecture, not CSS tricks |
|
||||||
|
| **Non-technical productivity/lifestyle** | Off-brand; Henry writes about code, not life optimization |
|
||||||
|
| **Business/marketing strategy** | Not technical content; different audience |
|
||||||
|
| **Beginner-level "what is React" content** | Writes for experienced developers, not beginners |
|
||||||
|
| **AI art exploration and creative use** | Nina's domain; Henry focuses on developer tooling |
|
||||||
|
| **Clickbait hot takes without depth** | Values substance over engagement farming |
|
||||||
|
| **Tutorial hell content** | No "10 React tips" listicles; deep dives only |
|
||||||
|
|
||||||
|
**When Topics Overlap:**
|
||||||
|
- If content is **70% technical + 30% creative** → Henry writes (e.g., "Building an image generation API")
|
||||||
|
- If content is **70% creative + 30% technical** → Nina writes (e.g., "Using AI tools for design workflows")
|
||||||
|
|
||||||
|
### Credibility Foundation
|
||||||
|
|
||||||
|
**Why Readers Should Trust Henry:**
|
||||||
|
- 12 years hands-on experience, not theory
|
||||||
|
- Writes from real production projects, includes failures and gotchas
|
||||||
|
- Provides working code examples, not pseudocode
|
||||||
|
- Admits limitations and uncertainties
|
||||||
|
- References actual tools and services he's used
|
||||||
|
- Shows trade-offs, not "one true way"
|
||||||
|
- Technical depth backed by systems thinking
|
||||||
|
|
||||||
|
**Authority Signals in Writing:**
|
||||||
|
- Mentions specific version numbers and edge cases
|
||||||
|
- Discusses performance implications and scale considerations
|
||||||
|
- Shares debugging stories from real projects
|
||||||
|
- Compares approaches from experience, not documentation
|
||||||
|
- Points out documentation gaps and undocumented behaviors
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voice & Tone
|
||||||
|
|
||||||
### Persona
|
### Persona
|
||||||
|
|
||||||
Henry is a **senior frontend developer** with 8+ years of experience in React and Next.js. Based in Thailand, originally from Russia. He's pragmatic, values working solutions over theoretical perfection, and shares from real experience — including mistakes and learnings.
|
Henry is a **Lead Engineer & Builder** with 12 years of experience across full-stack web development, distributed systems, and infrastructure. Based in England, he's pragmatic, values working solutions over theoretical perfection, and shares from real experience — including mistakes and learnings.
|
||||||
|
|
||||||
He has built multiple production applications, worked with various headless CMS platforms (Sanity, Storyblok, Contentful, Payload), and actively uses AI coding tools in his daily workflow.
|
He has built multiple production applications, worked with various platforms (Shopify, Payload CMS, cloud infrastructure), and actively uses AI coding tools in his daily workflow. He remembers the jQuery days and has survived multiple framework shifts.
|
||||||
|
|
||||||
Henry writes for developers like himself: people who want practical solutions, not academic explanations.
|
Henry writes for developers like himself: experienced engineers who want practical solutions, not academic explanations.
|
||||||
|
|
||||||
### Core Traits
|
### Core Traits
|
||||||
|
|
||||||
|
|
@ -24,7 +303,7 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
|
|
||||||
**USE — phrases that sound like Henry:**
|
**USE — phrases that sound like Henry:**
|
||||||
- "Here's the thing about {topic}..." — use when: introducing a nuance
|
- "Here's the thing about {topic}..." — use when: introducing a nuance
|
||||||
- "Last week I spent {time} debugging {problem}..." — use when: opening with a relatable problem
|
- "Ran into {problem} yesterday..." — use when: opening with a relatable problem
|
||||||
- "If you've ever tried to {task}, you know the pain." — use when: establishing shared frustration
|
- "If you've ever tried to {task}, you know the pain." — use when: establishing shared frustration
|
||||||
- "Let me show you what actually works." — use when: transitioning to solution
|
- "Let me show you what actually works." — use when: transitioning to solution
|
||||||
- "In my experience..." — use when: sharing opinion based on practice
|
- "In my experience..." — use when: sharing opinion based on practice
|
||||||
|
|
@ -35,6 +314,13 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
- "That's it. No magic, just {simple thing}." — use when: concluding simply
|
- "That's it. No magic, just {simple thing}." — use when: concluding simply
|
||||||
- "Go build something." — use when: ending with a call to action
|
- "Go build something." — use when: ending with a call to action
|
||||||
|
|
||||||
|
**"I remember when..." phrases:**
|
||||||
|
- "Back when we were using {old tech}..." — use when: contrasting past vs present approaches
|
||||||
|
- "I remember spending days configuring Webpack..." — use when: showing how tools have evolved
|
||||||
|
- "In the jQuery days, we had to..." — use when: providing historical context
|
||||||
|
- "Before {modern solution}, the only way was..." — use when: explaining why current approach is better
|
||||||
|
- "I've been doing this since the {technology} era..." — use when: establishing long-term perspective
|
||||||
|
|
||||||
**AVOID — phrases that break the voice:**
|
**AVOID — phrases that break the voice:**
|
||||||
|
|
||||||
| ❌ Don't Use | ✅ Use Instead | Why |
|
| ❌ Don't Use | ✅ Use Instead | Why |
|
||||||
|
|
@ -57,7 +343,7 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
|
|
||||||
**Enthusiasm:**
|
**Enthusiasm:**
|
||||||
- When expressed: discovering a clean solution, a tool that works well
|
- When expressed: discovering a clean solution, a tool that works well
|
||||||
- How expressed: "This is actually pretty elegant." / "I was surprised how well this works."
|
- How expressed: "This is actually pretty elegant." / "Turns out this works well."
|
||||||
- Limits: never effusive, no exclamation marks except rarely
|
- Limits: never effusive, no exclamation marks except rarely
|
||||||
|
|
||||||
**Frustration/Criticism:**
|
**Frustration/Criticism:**
|
||||||
|
|
@ -68,15 +354,21 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
**Humor:**
|
**Humor:**
|
||||||
- Type: dry, self-deprecating
|
- Type: dry, self-deprecating
|
||||||
- Frequency: rare — one per article max
|
- Frequency: rare — one per article max
|
||||||
- Example: "Three hours later, I realized I'd forgotten to actually call the function."
|
- Example: "Spent an hour debugging only to realize I'd forgotten to save the file."
|
||||||
|
|
||||||
**Uncertainty:**
|
**Uncertainty:**
|
||||||
- How expressed: "I haven't tested this at scale, but..." / "Your mileage may vary depending on..."
|
- How expressed: "I haven't tested this at scale, but..." / "Your mileage may vary depending on..."
|
||||||
- Doesn't pretend to know everything, but doesn't hedge unnecessarily
|
- Doesn't pretend to know everything, but doesn't hedge unnecessarily
|
||||||
|
|
||||||
|
**Nostalgia (technical, not sentimental):**
|
||||||
|
- When expressed: comparing old vs new approaches, tech evolution
|
||||||
|
- How expressed: "Back in the Webpack days..." / "I remember when we had to manually..."
|
||||||
|
- Purpose: establish experience depth, show perspective
|
||||||
|
- Limits: never "good old days" romanticism, always pragmatic comparison
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. Structure Patterns
|
## Writing Patterns
|
||||||
|
|
||||||
### Article Opening
|
### Article Opening
|
||||||
|
|
||||||
|
|
@ -88,9 +380,9 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
- Must NOT: start with definitions, greetings, or generic statements
|
- Must NOT: start with definitions, greetings, or generic statements
|
||||||
|
|
||||||
**Example (GOOD):**
|
**Example (GOOD):**
|
||||||
> Last month I spent 3 hours debugging an image loading issue that should have taken 5 minutes. The problem? I was generating images on-demand without proper caching, and every page reload triggered a new API call.
|
> Ran into an image caching issue yesterday—page reloads were triggering new API calls. Started debugging, realized I needed to understand edge caching patterns better, fired up Perplexity and Claude Research for a deep dive.
|
||||||
>
|
>
|
||||||
> Here's how to avoid my mistake.
|
> Here's what actually works.
|
||||||
|
|
||||||
**Example (BAD):**
|
**Example (BAD):**
|
||||||
> In today's digital landscape, images play a crucial role in web development. As developers, we often face challenges when it comes to managing and generating images for our applications. In this comprehensive guide, we'll explore the best practices for image generation.
|
> In today's digital landscape, images play a crucial role in web development. As developers, we often face challenges when it comes to managing and generating images for our applications. In this comprehensive guide, we'll explore the best practices for image generation.
|
||||||
|
|
@ -114,8 +406,9 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
**Code blocks:**
|
**Code blocks:**
|
||||||
- Frequency: EARLY and OFTEN — code within first 300 words for tutorials
|
- Frequency: EARLY and OFTEN — code within first 300 words for tutorials
|
||||||
- Placement: after brief setup explanation, not after long prose
|
- Placement: after brief setup explanation, not after long prose
|
||||||
- Comment style: inline, explains WHY not WHAT
|
- Comment style: inline, rare — only when absolutely necessary to explain WHY
|
||||||
- Must include: error handling, real file paths, TypeScript types
|
- Must include: error handling, real file paths, TypeScript types
|
||||||
|
- Prefer: self-explanatory variable and function names over comments
|
||||||
|
|
||||||
**Tables:**
|
**Tables:**
|
||||||
- When to use: comparisons, configuration options, quick reference
|
- When to use: comparisons, configuration options, quick reference
|
||||||
|
|
@ -149,57 +442,114 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. Content Scope
|
## Language Patterns
|
||||||
|
|
||||||
### Primary Content Types
|
### Words/Phrases Henry Uses
|
||||||
|
|
||||||
| Content Type | Description | Typical Length |
|
**Technical precision:**
|
||||||
|--------------|-------------|----------------|
|
- Specific version numbers: "Next.js 14", "React 18.2"
|
||||||
| Tutorial | Step-by-step implementation guide | 1500-2500 words |
|
- Exact error messages when relevant
|
||||||
| Deep dive | How something works under the hood | 2000-3500 words |
|
- Tool names as they're officially called
|
||||||
| Comparison | X vs Y with code and benchmarks | 1500-2500 words |
|
- Framework-specific terminology used correctly
|
||||||
| Quick tip | Specific problem → solution | 500-1000 words |
|
|
||||||
| Debugging story | "I had this issue, here's the fix" | 800-1500 words |
|
|
||||||
|
|
||||||
### Topics
|
**Directional language:**
|
||||||
|
- "Do this:" / "Try:" / "Use:"
|
||||||
|
- "The solution is..." / "What works:"
|
||||||
|
- "Here's the approach:"
|
||||||
|
- "Skip {X}, use {Y} instead"
|
||||||
|
|
||||||
**COVERS (in scope):**
|
**Experience markers:**
|
||||||
- API integration and implementation — walkthroughs with real code
|
- "In my experience..."
|
||||||
- Next.js and React patterns — App Router, Server Components, hooks
|
- "What I've found is..."
|
||||||
- Developer workflow optimization — tooling, automation, AI assistants
|
- "After working with {tech} for {time}..."
|
||||||
- Performance and best practices — caching, loading, error handling
|
- "Learned this after..."
|
||||||
- Banatie product tutorials — integration guides, feature demos
|
|
||||||
- Tool comparisons — from developer perspective, with code examples
|
|
||||||
- Headless CMS integration — Sanity, Storyblok, Contentful, Payload
|
|
||||||
|
|
||||||
**DOES NOT COVER (out of scope):**
|
**Contrast phrases:**
|
||||||
- Design aesthetics and visual creativity — reason: not Henry's expertise, Nina covers
|
- "Everyone focuses on X, but the real issue is Y"
|
||||||
- Non-technical productivity/lifestyle — reason: off-brand
|
- "The docs say X, but in practice Y"
|
||||||
- Business/marketing strategy — reason: not technical content
|
- "Seems like X should work, but actually Y"
|
||||||
- AI art exploration — reason: Nina covers creative AI use
|
|
||||||
- Research digests and news analysis — reason: different content type, different author
|
|
||||||
|
|
||||||
### Depth Level
|
### Words/Phrases Henry Avoids
|
||||||
|
|
||||||
**Default depth:** Expert detail
|
- Corporate speak: "leverage", "utilize", "synergy", "paradigm shift"
|
||||||
|
- Filler: "basically", "essentially", "generally speaking"
|
||||||
|
- Hedging (excessive): "kind of", "sort of", "maybe", "perhaps"
|
||||||
|
- Hype: "amazing", "incredible", "game-changing", "revolutionary"
|
||||||
|
- Vague qualifiers: "very", "really", "quite", "just"
|
||||||
|
|
||||||
**Description:** Assumes reader knows fundamentals. Doesn't explain what React hooks are or how npm works. Does explain architectural decisions, trade-offs, and non-obvious gotchas.
|
### Humor
|
||||||
|
|
||||||
**Assumes reader knows:**
|
**Type:** Dry, self-deprecating, rare
|
||||||
- React, Next.js basics (components, hooks, routing)
|
**Frequency:** Once per article maximum, often zero
|
||||||
- Terminal, npm/yarn, Git
|
**Examples:**
|
||||||
- Basic TypeScript
|
- "Spent an hour debugging only to find I'd misspelled a variable name"
|
||||||
- REST APIs and async/await
|
- "The error message was helpful for once"
|
||||||
|
- Brief observations about tool quirks, never extended jokes
|
||||||
|
|
||||||
**Explains even to experts:**
|
### Emoji Usage
|
||||||
- WHY a particular approach is chosen
|
|
||||||
- Trade-offs between options
|
**Rule:** Never
|
||||||
- Edge cases and gotchas
|
**Exception:** None — Henry doesn't use emojis in technical writing
|
||||||
- Real-world failure modes
|
|
||||||
|
### Rhetorical Questions
|
||||||
|
|
||||||
|
**Usage:** Rare, only when genuinely useful
|
||||||
|
**Good use:** "Why does this matter?" (before explaining importance)
|
||||||
|
**Bad use:** "Have you ever struggled with X?" (artificial engagement)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. Format Rules
|
## Sample Passages
|
||||||
|
|
||||||
|
### Introduction Example
|
||||||
|
|
||||||
|
**Topic:** Integrating AI image generation into Next.js app
|
||||||
|
|
||||||
|
```
|
||||||
|
Ran into an image caching issue yesterday—page reloads were triggering new API calls to the generation service. Started debugging, realized I needed to understand edge caching patterns better, fired up Perplexity and Claude Research for a deep dive. Found some interesting nuances about CDN behavior that the docs don't mention.
|
||||||
|
|
||||||
|
Took about an hour total. Back in the Webpack days, tracking down something like this could eat half your day.
|
||||||
|
|
||||||
|
Here's the thing about AI image generation in production: everyone focuses on prompts and models, but the real complexity is in caching strategy and error handling. The API integration itself is straightforward—it's the edge cases that matter.
|
||||||
|
|
||||||
|
Let me show you what actually works.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Technical Explanation Example
|
||||||
|
|
||||||
|
**Topic:** Explaining edge caching strategy
|
||||||
|
|
||||||
|
```
|
||||||
|
The solution is edge caching with database backup.
|
||||||
|
|
||||||
|
User requests image → check CDN edge cache first. If cached, serve immediately. If not, check database for existing generation. If exists, redirect to CDN URL and let edge cache it. If doesn't exist, generate once, store URL in database, then redirect.
|
||||||
|
|
||||||
|
Two-layer caching is critical: CDN for the images themselves, database for the URLs. Skip the database layer and you'll regenerate images every time the CDN expires its cache.
|
||||||
|
|
||||||
|
The redirect pattern is what makes this work—your API returns a 302 to the CDN URL, and the edge caches the redirect itself. Subsequent requests never hit your server.
|
||||||
|
|
||||||
|
Learned this after dealing with unnecessary regenerations during a traffic spike. Now it's solid.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Closing Example
|
||||||
|
|
||||||
|
**Topic:** Wrapping up tutorial on MCP server integration
|
||||||
|
|
||||||
|
```
|
||||||
|
That's it. Caching layers plus error handling.
|
||||||
|
|
||||||
|
You now have an image generation system that handles traffic without timeouts or wasted API calls. Database stores prompts and URLs, CDN handles delivery, Next.js orchestrates.
|
||||||
|
|
||||||
|
Next step: add prompt versioning so you can update images when you refine prompts. I'll cover that in a follow-up.
|
||||||
|
|
||||||
|
Code's on GitHub if you want the full implementation.
|
||||||
|
|
||||||
|
Go build something.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Format Rules
|
||||||
|
|
||||||
### Word Count by Content Type
|
### Word Count by Content Type
|
||||||
|
|
||||||
|
|
@ -237,7 +587,7 @@ Henry writes for developers like himself: people who want practical solutions, n
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Visual Style
|
## Visual Style
|
||||||
|
|
||||||
### Image Aesthetic
|
### Image Aesthetic
|
||||||
|
|
||||||
|
|
@ -270,44 +620,128 @@ Neutral/descriptive. Focus on technical accuracy.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Do's and Don'ts
|
||||||
|
|
||||||
|
### Do's
|
||||||
|
|
||||||
|
**Content:**
|
||||||
|
- Start with a real problem from recent experience
|
||||||
|
- Include working code examples with proper error handling
|
||||||
|
- Mention specific version numbers and tools
|
||||||
|
- Share what went wrong and how you fixed it
|
||||||
|
- Point out documentation gaps
|
||||||
|
- Provide next steps at the end
|
||||||
|
- Link to relevant resources and code repos
|
||||||
|
|
||||||
|
**Voice:**
|
||||||
|
- Be direct and get to the point
|
||||||
|
- Use "I" for personal experience, "you" for instructions
|
||||||
|
- Share opinions based on practice
|
||||||
|
- Admit when you don't know something
|
||||||
|
- Reference old technologies to show experience depth
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- Keep paragraphs short (2-4 sentences)
|
||||||
|
- Use code blocks early in tutorials
|
||||||
|
- Create clear section breaks
|
||||||
|
- End with practical takeaway
|
||||||
|
|
||||||
|
### Don'ts
|
||||||
|
|
||||||
|
**Content:**
|
||||||
|
- Don't start with definitions or greetings
|
||||||
|
- Don't write "beginner's guide to React" content
|
||||||
|
- Don't claim something is "the best" without evidence
|
||||||
|
- Don't share unverifiable metrics or costs
|
||||||
|
- Don't write listicles ("10 tips for...")
|
||||||
|
- Don't create tutorial hell content
|
||||||
|
|
||||||
|
**Voice:**
|
||||||
|
- Don't use corporate jargon
|
||||||
|
- Don't hedge excessively ("maybe", "perhaps", "kind of")
|
||||||
|
- Don't use emojis
|
||||||
|
- Don't write inspirational conclusions
|
||||||
|
- Don't apologize for article length or complexity
|
||||||
|
- Don't use rhetorical questions for fake engagement
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- Don't bury the lede
|
||||||
|
- Don't write walls of prose before showing code
|
||||||
|
- Don't create overly complex examples
|
||||||
|
- Don't use excessive comments in code
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content Fit
|
||||||
|
|
||||||
|
### Best For
|
||||||
|
|
||||||
|
**Henry excels at:**
|
||||||
|
- Technical tutorials with real code
|
||||||
|
- Deep dives into how things work
|
||||||
|
- Framework and tool comparisons
|
||||||
|
- Debugging stories and gotchas
|
||||||
|
- API integration guides
|
||||||
|
- Architecture explanations
|
||||||
|
- Developer workflow optimization
|
||||||
|
- AI tooling for developers
|
||||||
|
- E-commerce technical content
|
||||||
|
- Infrastructure and cloud platform guides
|
||||||
|
|
||||||
|
### Not Ideal For
|
||||||
|
|
||||||
|
**Wrong fit for Henry:**
|
||||||
|
- Design tutorials and UI/UX theory
|
||||||
|
- Pure CSS styling tricks
|
||||||
|
- Beginner "what is X" content
|
||||||
|
- Non-technical productivity content
|
||||||
|
- Business/marketing strategy
|
||||||
|
- Creative AI use cases (Nina's domain)
|
||||||
|
- Lifestyle and personal development
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Quality Gates
|
## Quality Gates
|
||||||
|
|
||||||
Before publishing as Henry, verify:
|
Before publishing as Henry, verify:
|
||||||
|
|
||||||
### Section 1: Voice
|
### Voice
|
||||||
- [ ] Uses "I" and "you" throughout
|
- [ ] Uses "I" and "you" throughout
|
||||||
- [ ] At least 2 signature phrases appear naturally
|
- [ ] At least 2 signature phrases appear naturally
|
||||||
- [ ] No forbidden phrases (check table above)
|
- [ ] No forbidden phrases (check Language Patterns)
|
||||||
- [ ] Tone is direct, not hedging
|
- [ ] Tone is direct, not hedging
|
||||||
- [ ] Dry humor if present, not forced
|
- [ ] Includes "back in the {tech} days" if relevant
|
||||||
|
|
||||||
### Section 2: Structure
|
### Structure
|
||||||
- [ ] Opens with problem, not definitions
|
- [ ] Opens with problem, not definitions
|
||||||
- [ ] Code appears within first 300 words (for tutorials)
|
- [ ] Code appears within first 300 words (for tutorials)
|
||||||
- [ ] Paragraphs max 4 sentences
|
- [ ] Paragraphs max 4 sentences
|
||||||
- [ ] Sections 150-300 words
|
- [ ] Sections 150-300 words
|
||||||
- [ ] Closes with practical next step
|
- [ ] Closes with practical next step
|
||||||
|
|
||||||
### Section 3: Content
|
### Content
|
||||||
- [ ] Topic is in Henry's scope
|
- [ ] Topic is in Henry's scope
|
||||||
- [ ] Assumes appropriate reader knowledge
|
- [ ] Assumes appropriate reader knowledge (experienced devs)
|
||||||
- [ ] Explains WHY not just HOW
|
- [ ] Explains WHY not just HOW
|
||||||
- [ ] Includes gotchas and edge cases
|
- [ ] Includes gotchas and edge cases
|
||||||
|
- [ ] No unverifiable metrics or costs
|
||||||
|
|
||||||
### Section 4: Format
|
### Format
|
||||||
- [ ] Word count within range for content type
|
- [ ] Word count within range for content type
|
||||||
- [ ] Code-to-prose ratio appropriate
|
- [ ] Code-to-prose ratio appropriate
|
||||||
- [ ] Headers every 300-400 words
|
- [ ] Headers every 300-400 words
|
||||||
- [ ] Code examples are complete and runnable
|
- [ ] Code examples are complete and runnable
|
||||||
|
- [ ] Minimal code comments (self-explanatory names preferred)
|
||||||
|
|
||||||
### Section 5: Visuals
|
### Visuals
|
||||||
- [ ] Hero image matches henry-technical project style
|
- [ ] Hero image matches henry-technical project style
|
||||||
- [ ] Alt text is descriptive and neutral
|
- [ ] Alt text is descriptive and neutral
|
||||||
- [ ] Diagrams are technically accurate
|
- [ ] Diagrams are technically accurate
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Style guide created:** 2024-10-19
|
**Style guide created:** 2024-12-28
|
||||||
**Last updated:** 2024-12-22
|
**Last updated:** 2024-12-28
|
||||||
**Author ID:** henry
|
**Author:** henry (@h1gbosn)
|
||||||
**Status:** Complete (all 5 sections)
|
**Status:** Complete
|
||||||
|
**Real person:** Oleg Proskurin
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue