Skip to content

Commit 3f91f4f

Browse files
author
Cursor
committed
update marketing documentation for current ruby ecosystem
Restore the marketing plan and refresh README positioning to reflect current supported integrations, modern Ruby/Faraday usage, and a concrete growth strategy. Made-with: Cursor
1 parent 0f3d832 commit 3f91f4f

2 files changed

Lines changed: 203 additions & 2 deletions

File tree

MARKETING_PLAN.md

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# Marketing Plan for ruby-proxy-headers (2026 Refresh)
2+
3+
This document restores and updates the project marketing plan with current Ruby ecosystem priorities, newer library positioning, and additional growth ideas.
4+
5+
## Positioning
6+
7+
`ruby-proxy-headers` helps Ruby teams send and read custom proxy headers during HTTPS `CONNECT` tunneling, with practical support for:
8+
9+
- `Net::HTTP` (core patch/integration)
10+
- `Faraday` (via net-http adapter path)
11+
- `HTTParty` (via Net::HTTP adapter)
12+
- `Excon` (send-side CONNECT headers; response-header caveat documented)
13+
14+
Primary user segments:
15+
16+
1. Web scraping teams that need geotargeting and sticky sessions.
17+
2. API integrators using managed proxies in Ruby apps.
18+
3. Platform/tooling engineers building shared HTTP clients in Rails services.
19+
20+
## Ecosystem and "Newer Libraries" Angle
21+
22+
Use compatibility language that matches modern Ruby stacks:
23+
24+
- Ruby 3.x-first messaging (especially 3.1-3.3 usage in CI/docs when possible).
25+
- Faraday 2.x usage examples (most teams are now on 2.x).
26+
- HTTParty recent usage patterns with explicit proxy options.
27+
- Net::HTTP as the baseline for any library that delegates to it.
28+
29+
Keep the messaging accurate: this project should market implemented integrations clearly and avoid claiming unsupported adapters until shipped.
30+
31+
## Core Messaging Pillars
32+
33+
1. **Control proxy routing at CONNECT time**
34+
Set country/session/IP directives via proxy headers.
35+
2. **Observe what proxy assigned**
36+
Capture proxy CONNECT response headers for debugging and sticky-session workflows.
37+
3. **Works with mainstream Ruby HTTP workflows**
38+
Net::HTTP, Faraday, HTTParty, and Excon send-side support.
39+
4. **Practical, production-oriented docs**
40+
Copy/paste examples, troubleshooting steps, and live integration tests.
41+
42+
## Distribution Channels
43+
44+
## 1) Package and Registry Presence
45+
46+
- Publish and maintain on RubyGems (`ruby_proxy_headers`).
47+
- Ensure gem metadata is complete: homepage, source code URI, changelog URI, bug tracker URI.
48+
- Keep release cadence visible with changelog updates and GitHub releases.
49+
50+
## 2) GitHub Discoverability
51+
52+
- Repository topics:
53+
- `ruby`, `proxy`, `https`, `connect`, `faraday`, `httparty`, `net-http`, `web-scraping`
54+
- Repository description should include: "custom proxy headers", "HTTPS CONNECT", and supported libraries.
55+
- Add issue templates for:
56+
- New integration request
57+
- Proxy compatibility report
58+
- Bug report with minimal reproducible example
59+
60+
## 3) Documentation Footprint
61+
62+
- Keep README short and task-oriented; move detail to `docs/`.
63+
- Add/refresh:
64+
- Compatibility matrix by Ruby version and library family.
65+
- "Choose your integration" page for Net::HTTP vs Faraday vs HTTParty vs Excon.
66+
- Troubleshooting page for CONNECT header visibility limitations.
67+
68+
## 4) Community Placement
69+
70+
- Submit to curated lists:
71+
- Awesome Ruby (HTTP/tooling sections)
72+
- Awesome Web Scraping (Ruby networking/proxy sections)
73+
- Share launch/update posts in:
74+
- Ruby subreddit
75+
- Web scraping communities
76+
- Ruby Discord/Slack groups
77+
78+
## 5) Maintainer and Partner Outreach
79+
80+
- Open documentation PRs/issues on related libraries where appropriate.
81+
- Reach out to proxy providers (including ProxyMesh ecosystem references) for potential "community integrations" listing.
82+
- Cross-link with sibling repos:
83+
- `python-proxy-headers`
84+
- `javascript-proxy-headers`
85+
- `proxy-examples`
86+
87+
## New Growth Ideas (2026)
88+
89+
## 1) "Recipes" Content Series
90+
91+
Create short practical recipes and publish in repo docs + blog:
92+
93+
- "Rotate country per request in Faraday"
94+
- "Sticky IP sessions with HTTParty"
95+
- "Debug CONNECT handshake in Net::HTTP"
96+
- "Excon send-only CONNECT headers: what to expect"
97+
98+
## 2) CI-Verified Example Matrix
99+
100+
Add tiny runnable examples per integration with CI smoke checks.
101+
Marketing value: "all examples are tested on every push."
102+
103+
## 3) Migration Guides
104+
105+
Publish "from ad-hoc proxy monkey patch to ruby-proxy-headers" guide:
106+
107+
- Before/after snippets
108+
- risk reduction talking points
109+
- observability improvements
110+
111+
## 4) Benchmark + Reliability Notes
112+
113+
Provide lightweight benchmark docs (not hype):
114+
115+
- baseline Net::HTTP vs patched path overhead
116+
- expected overhead statements with reproducible script
117+
118+
## 5) AI/LLM Discovery Optimization
119+
120+
Many developers now ask coding assistants first.
121+
Improve machine-readable discoverability:
122+
123+
- FAQ section with direct Q/A phrasing.
124+
- "How do I send CONNECT headers in Ruby?" exact-match wording in README/docs.
125+
- Keep examples minimal and copy/paste ready.
126+
127+
## 6) Integration Request Funnel
128+
129+
Add a public roadmap issue for new adapters and let users vote with reactions.
130+
This converts interest into visible demand signals and prioritization data.
131+
132+
## 90-Day Execution Plan
133+
134+
### Days 1-15 (Foundation)
135+
136+
- Restore and update marketing plan (this document).
137+
- Refresh README positioning for current supported integrations.
138+
- Confirm gem metadata and repository topics.
139+
- Prepare 2 recipe docs with runnable examples.
140+
141+
### Days 16-45 (Visibility)
142+
143+
- Publish gem update + GitHub release notes.
144+
- Submit 2-3 awesome-list/documentation PRs.
145+
- Publish one technical post (CONNECT headers in Ruby, practical guide).
146+
- Share to Ruby/web-scraping communities.
147+
148+
### Days 46-90 (Compounding)
149+
150+
- Add CI-verified example matrix badge/workflow.
151+
- Publish migration guide and troubleshooting deep dive.
152+
- Launch integration-request roadmap issue.
153+
- Track inbound issues/stars/download trend and adjust messaging.
154+
155+
## KPIs and Targets
156+
157+
Track monthly:
158+
159+
- RubyGems downloads (total + monthly delta)
160+
- GitHub stars/forks/watchers
161+
- Docs page views (README + docs pages)
162+
- Referral sources (awesome lists, social, direct)
163+
- Community conversion:
164+
- issue reports from new users
165+
- successful integration confirmations
166+
167+
Suggested 6-month directional goals:
168+
169+
- 5k+ cumulative downloads
170+
- 100+ GitHub stars
171+
- 3-5 meaningful external references (listings, docs links, articles)
172+
173+
## Immediate Action Checklist
174+
175+
Actions that can be done directly in repo/GitHub:
176+
177+
1. Keep `MARKETING_PLAN.md` current each release cycle.
178+
2. Add or verify repository topics and concise description.
179+
3. Create docs pages for compatibility matrix and recipes.
180+
4. Add issue templates for integration requests and compatibility reports.
181+
5. Publish release notes that mention supported libraries and caveats.
182+
183+
Human-led actions:
184+
185+
1. Community posting and engagement.
186+
2. Maintainer outreach conversations.
187+
3. Blog/newsletter placements.
188+
189+
## Suggested Outreach Blurb
190+
191+
Use this short form for PR descriptions, posts, or issues:
192+
193+
> ruby-proxy-headers adds practical support for sending and reading custom proxy headers during HTTPS CONNECT in Ruby workflows (Net::HTTP, Faraday, HTTParty, Excon send-side). Useful for geotargeting, sticky sessions, and proxy observability with providers like ProxyMesh.
194+

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Ruby Proxy Headers
22

3-
Extensions for Ruby HTTP libraries to support **sending and receiving custom proxy headers** during HTTPS `CONNECT` tunneling (for example [ProxyMesh](https://proxymesh.com) `X-ProxyMesh-IP` / `X-ProxyMesh-Country`).
3+
Send and receive custom proxy headers during HTTPS `CONNECT` tunneling in modern Ruby HTTP workflows (for example [ProxyMesh](https://proxymesh.com) `X-ProxyMesh-IP` / `X-ProxyMesh-Country`).
44

55
## The problem
66

@@ -9,7 +9,13 @@ Most Ruby HTTP clients use `Net::HTTP`, Faraday, or libcurl without exposing:
99
1. Extra headers on the `CONNECT` request to the proxy.
1010
2. Headers from the proxy’s `CONNECT` response (often discarded after the tunnel is established).
1111

12-
This library adds opt-in support for **Net::HTTP**, **Faraday**, **HTTParty**, and documents **Excon**’s built-in `:ssl_proxy_headers` for sends.
12+
This library adds opt-in support for **Net::HTTP**, **Faraday** (2.x via `faraday-net_http`), **HTTParty**, and documents **Excon**’s built-in `:ssl_proxy_headers` for sends.
13+
14+
## Why teams use this
15+
16+
- **Geo-targeting at tunnel setup**: Send country/session directives on `CONNECT`.
17+
- **Sticky-session observability**: Read proxy-assigned headers like `X-ProxyMesh-IP`.
18+
- **Works with common Ruby stacks**: Useful for scraping and API clients using Net::HTTP-based flows.
1319

1420
## Installation
1521

@@ -124,6 +130,7 @@ bundle exec ruby test/test_proxy_headers.rb -v
124130

125131
- [Library research](LIBRARY_RESEARCH.md) — proxy header support by client
126132
- [Implementation plan](IMPLEMENTATION_PRIORITY.md) — phased roadmap
133+
- [Marketing plan](MARKETING_PLAN.md) — positioning, channels, and 90-day growth plan
127134
- [Deferred items](DEFERRED.md) — Typhoeus, Mechanize, Excon CONNECT response caveats
128135

129136
## Related

0 commit comments

Comments
 (0)