The staged decision framework used to take AFFiNE from 0 to 60K GitHub stars.
By Iris Wei (生姜) · ex-COO of AFFiNE (60K+ GitHub stars) · 30× Product Hunt #1
Stars don't come from a great repo — they come from a great repo placed in front of the right developers, in the right order. This is the exact staged decision framework used to take AFFiNE from 0 to 60K stars, with 10K reached in 43 days.
| AFFiNE GitHub stars (24 months) | 60,000+ |
| Time to first 10K stars | 43 days |
| GitHub Trending appearances | 28× |
| Dev-tool startups advised | 150+ |
| Stars in launch week (AFFiNE) | ~6,000 (80% overseas) |
| Angel round before open source | ~400 investor meetings over ~12 months |
| Pre-A locked after open-sourcing | $8M in ~1 month |
| Pricing inquiries from a vague pricing page | Dozens in 2 weeks |
Stage 1 · Pre-launch (T-30 → T-0)
Get the README English-first and readable in under 3 seconds, ship a captioned 60-second demo, choose your license deliberately (MIT / Apache-2 / AGPL each carry traps), line up 3–5 early contributors, and open an English-first Discord or Telegram.
Stage 2 · Launch (T-0 → T+14)
Run the Product Hunt sequence, post Show HN (Tuesday 9am ET or Saturday), seed 3 relevant subreddits, publish deep technical posts on dev.to / Zenn / CSDN, and line up 3–5 KOLs (activity beats follower count).
Stage 3 · Growth (T+14 → T+180)
Ship one technical blog per week, turn GitHub Issues into FAQ content, send a monthly update to the mailing list + Discord, and localize for Japan/Korea first when going global.
Sustain · the monthly loop
Keep a 300-stars/month cadence: weekly content, Reddit 2–3×/week, a monthly AMA, and 10+ Good First Issues so contributors compound the growth.
Sequence channels to their strengths; don't spray the same post everywhere on day one.
| Channel | Best for | Note |
|---|---|---|
| Show HN | Credibility spike + dev traffic | Tue 9am ET / Sat; engage all day |
| Reddit (3 subs) | Targeted developer reach | Post once per sub, never drive-by |
| Product Hunt | Broad visibility + social proof | Run the dedicated launch sequence |
| dev.to / Zenn / CSDN | Long-tail SEO + discovery | Deep technical posts, weekly |
How long does it realistically take to reach 10K stars?
AFFiNE hit 10K in 43 days from public launch with this sequence (README readiness → 3-niche seeding → Show HN → 48-hour star push → sustained content). Generic launches without structure typically take 6–18 months for the same milestone.
How do I get on GitHub Trending?
Coordinate a 48-hour star push from warm contacts + community alongside a Show HN or Reddit post. The algorithm rewards star velocity, not absolute count — 150–300 stars in 48 hours usually lands a niche-language list.
Which license should I pick?
Choose deliberately — MIT maximizes adoption, Apache-2 adds patent protection, AGPL protects against closed-source forks but scares some enterprises. Decide based on whether you plan to monetize a hosted version.
Who built this?
Iris Wei (生姜) — former cofounder/COO of AFFiNE (60K+ GitHub stars), who led its organic 0 → 60K growth and advised 150+ dev-tool startups.
What is the minimum launch kit if I only have one week to prepare?
Ship exactly four assets: a one-liner website (headline + subline + GitHub link on the first screen), an illustrated README that lands the value in 30 seconds with a direct star CTA, one 'open source X alternative' benchmark article reused across every channel, and a 4-page minimal dev-docs set (who we are, features, per-OS deploy guides, how to contribute). AFFiNE launched with exactly this in a one-week window.
Does open source actually help fundraising?
It changes what investors see. AFFiNE's angel round took ~400 investor meetings over ~12 months; after open-sourcing it reached ~6,000 stars in week one (80% overseas), 10K stars in 43 days, and locked an $8M Pre-A about one month post-launch. Investors buy star growth velocity, not the absolute count — some even run crawlers during due diligence to verify stars aren't botted.
How do I test monetization before the paid product exists?
Put up a pricing page with deliberately vague tiers, each with a contact-us typeform. AFFiNE received dozens of pricing inquiries within 2 weeks and the question shifted from 'is this free?' to 'how much?' — interest split roughly 70% community free / 20% personal / 10% team. Announce the paid model early to fight the 'open source = free' stereotype.