The ultimate reference guide to platforms, communities, and strategies for promoting your open-source or side project on GitHub.
- Hacker News
- Product Hunt
- Dev Communities & Blogs
- Social Media
- GitHub-Specific Methods
- Aggregators & Directories
- Messaging & Chat Communities
- Newsletters & Email
- How to Polish Your Repository
- Tips for Writing Posts
- Launch Checklist
Reddit is one of the best platforms to promote your project. The key is picking the right subreddits and never spamming.
| Subreddit | Members | Notes |
|---|---|---|
| r/programming | ~6M | High quality bar β must be genuinely interesting |
| r/webdev | ~1.5M | Web development, frontend/backend |
| r/learnprogramming | ~4M | Great if your project is educational |
| r/compsci | ~700K | CS theory, algorithms, systems |
| r/coding | ~300K | General coding discussions |
| r/tech | ~15M | Broad tech audience |
| Subreddit | Description |
|---|---|
| r/coolgithubprojects | Made specifically for sharing GitHub repos |
| r/SideProject | Pet projects, indie apps, side hustles |
| r/opensource | Any kind of open-source project |
| r/github | All things GitHub |
| r/selfhosted | Self-hosted tools and services |
| r/devops | DevOps, CI/CD, infra tooling |
| r/hacking | Security tools (if relevant) |
| r/netsec | Network security, must be high quality |
| r/MachineLearning | ML/AI research and projects |
| r/artificial | AI projects for a broader audience |
| r/datascience | Data science tools and libraries |
| r/gamedev | Game engines, frameworks, tools |
| Subreddit | Language |
|---|---|
| r/Python | Python |
| r/rust | Rust |
| r/javascript | JavaScript |
| r/golang | Go |
| r/java | Java |
| r/cpp | C++ |
| r/typescript | TypeScript |
| r/swift | Swift |
| r/kotlin | Kotlin |
| r/dotnet | .NET / C# |
| r/ruby | Ruby |
| r/php | PHP |
| r/haskell | Haskell |
| r/elixir | Elixir |
| r/scala | Scala |
| r/zig | Zig |
| Subreddit | Topic |
|---|---|
| r/reactjs | React |
| r/vuejs | Vue.js |
| r/svelte | Svelte |
| r/nextjs | Next.js |
| r/node | Node.js |
| r/docker | Docker |
| r/kubernetes | Kubernetes |
| r/androiddev | Android development |
| r/iOSProgramming | iOS development |
| r/emacs | Emacs plugins |
| r/neovim | Neovim plugins |
| r/vscode | VS Code extensions |
| r/commandline | CLI tools |
| r/linux | Linux tools & distros |
| r/homelab | Homelab / self-hosted infrastructure |
- Read the rules of each subreddit before posting β many ban direct self-promotion.
- Use the
[Project]orShow r/...:prefix in the title where accepted. - Reply to every comment β it boosts the post's ranking and shows you care.
- Best time to post: TuesdayβThursday, 9β11 AM EST.
- Don't cross-post the same text to multiple subreddits simultaneously β it gets flagged.
- Karma matters: have some history on the platform before posting.
- Engage with the community first β upvote others, leave comments.
Hacker News is one of the most influential platforms in tech. Hitting the front page is a massive boost.
- Show HN: [Name] β [One-line description] β the standard format for showing projects.
- Example:
Show HN: I built a CLI tool that auto-generates commit messages using GPT
- Example:
- Ask HN β use when you genuinely want feedback or opinions.
- The title must be honest and descriptive β no hype or clickbait.
- In your first comment, tell the story: why you built it, what problem it solves, what's interesting technically.
- Never ask for upvotes β it violates the rules and can get your post flagged.
- Best time: MondayβFriday, 7β9 AM Eastern (US audience wakes up).
- Aim for quality over frequency β one great Show HN beats ten mediocre ones.
- Engage with every comment, especially critical ones.
- If it doesn't land the first time, you can repost after a few weeks with improvements.
Product Hunt is the go-to platform for indie makers and developers launching products.
- Create your account weeks before launch β build some karma by commenting on others' projects.
- Prepare your assets: logo (240Γ240px), screenshots, optional demo video, and a punchy tagline.
- Launch on Tuesday or Wednesday β highest traffic days.
- Build a supporter list in advance β you need upvotes in the first few hours.
- Write a detailed maker comment explaining the problem, solution, and your journey.
- Link your GitHub repo prominently in the description.
- Actively answer all comments and questions on launch day.
- Share your launch link in communities, newsletters, and social media on launch day.
- Don't game it with fake accounts β PH detects it.
- A coming soon page helps you gather followers before the launch.
- Good products with great stories beat polished products with no story.
dev.to β a massive, friendly community of developers.
- Write articles in the "I built X, here's how" format.
- Use tags:
#opensource,#showdev,#programming,#webdev,#buildinpublic. - A series of posts (e.g., "Building X in public β Part 1, 2, 3...") outperforms a single post.
- Cross-post from your own blog using the canonical URL feature.
hashnode.com β developer blogging on your own domain.
- Create a blog on your custom domain powered by Hashnode.
- Publish technical deep-dives about building your project.
- Cross-post with dev.to.
- Great for ML, data science, or business-oriented projects.
- Submit to large publications to reach their existing audience.
- "Towards Data Science" has millions of readers for ML/AI content.
lobste.rs β a curated, invite-only community with a very technical audience.
- Requires an invitation to join, but high signal-to-noise ratio.
- Great for systems programming, security, and niche topics.
indiehackers.com β platform for indie developers and entrepreneurs.
- Add your project to the "Products" section.
- Join and post in topical groups.
- Share revenue/growth milestones β the community loves transparency.
dzone.com β technical articles aggregated by topic zones.
- Submit articles about technical aspects of your project.
- Good for enterprise/Java/DevOps audience.
Twitter/X remains the primary social network for developers.
- Use hashtags:
#buildinpublic,#opensource,#100daysofcode,#indiedev,#sideproject,#showdev. - Thread format works best: problem β solution β demo β link.
- Tag accounts related to the technologies you use (e.g., @reactjs, @rustlang) β they often retweet cool projects.
- Post GIFs or short screen recordings β they get dramatically more engagement than plain text.
- Build in public (
#buildinpublic) before your release to grow an audience beforehand. - Reply to popular devs in your niche β visibility through conversation.
- Post updates consistently, not just at launch.
- Best for projects related to productivity, business, enterprise, or career development.
- Personal posts outperform company page posts β always post from your personal account.
- LinkedIn articles get strong organic reach.
- Use hashtags:
#opensource,#programming,#developer,#softwareengineering.
- Record a short demo video (2β5 minutes) showing what your project does.
- Format "I built X in N days" performs very well as both a long video and a Short.
- YouTube Shorts and TikTok for quick demos (<60 seconds).
- Tutorials that use your project as an example attract ongoing traffic.
- Short code/project demos get surprisingly large organic reach.
- "Day in the life of a developer" content with your project featured.
- Active tech community at fosstodon.org and hachyderm.io.
- Use hashtags:
#foss,#opensource,#programming.
- Add relevant topics in Settings β About β Topics.
- Use popular ones:
awesome,hacktoberfest,machine-learning,cli,rest-api,productivity,developer-tools, etc. - Topics make your repo discoverable through GitHub's Explore and search.
- Find
awesome-[your-topic]lists on GitHub and submit a Pull Request. - Examples: awesome-python, awesome-rust, awesome-selfhosted.
- Being listed here is a permanent, passive source of traffic and stars.
- Make sure your PR follows the list's contribution guidelines exactly.
- Getting on Trending is a massive boost. It requires many stars in a short window.
- A coordinated launch (all promotions on the same day) maximizes your chances.
- Check github.com/trending to understand the volume needed.
- Add the
hacktoberfesttopic to your repo every October. - Create beginner-friendly issues labeled
hacktoberfestorgood first issue. - This attracts contributors, PRs, and organic attention.
- Enable GitHub Sponsors to make it easy for users to support you.
- Use GitHub Discussions as a community forum β it signals an active project.
- Respond to issues quickly β responsiveness is visible and builds reputation.
- Thank users who open issues or contribute β they often star and share.
- Add a "Give a β if this helped you" line in your README.
| Resource | Description |
|---|---|
| LibHunt | Library catalog β you can submit your project |
| AlternativeTo | Add your tool as an alternative to known software |
| SourceForge | Old but still has significant traffic |
| Slant | Q&A format β add as an option to relevant questions |
| Openbase | Open-source package catalog with reviews |
| GitHunt | GitHub Trending browser extension |
| OSSInsight | GitHub analytics, useful for showcasing growth |
| Repography | Generates visual activity cards for your README |
| TLDR pages | If your project is a CLI tool, submit a tldr page |
| Terminal Trove | Directory of CLI/TUI tools |
| Toolbox for Startups | Tool catalog for developers and founders |
| Futurepedia | AI tools directory (for AI projects) |
| There's An AI For That | AI tools aggregator |
| Free for Dev | If your tool has a free tier, get listed here |
Discord has thousands of developer servers, most with a #show-and-tell or #projects channel.
| Server | Focus |
|---|---|
| Reactiflux | React ecosystem |
| Python Discord | Python |
| Rust Community | Rust |
| The Programmer's Hangout | General programming |
| Nodeiflux | Node.js |
| Vue Land | Vue.js |
| Svelte | Svelte |
| TypeScript Community | TypeScript |
| DevCord | General dev community |
| Machine Learning | ML/AI |
- Always read the server rules before posting.
- Engage with the community first β don't just drop a link and leave.
- Write a short, interesting description when sharing, not just a bare URL.
Many professional Slack workspaces have project showcase channels.
- Frontend Developers Slack
- DevOps Slack
- iOS Developers Slack
- DataTalks.Club (data/ML)
- Elixir Slack, Ruby on Rails Link, etc.
Thousands of developer groups exist on Telegram. Search for your tech stack.
- Many language/framework specific channels with tens of thousands of members.
- Search
@usernamestyle channels in your niche.
Most newsletters have a submission form β use it. Editors are always looking for interesting projects.
| Newsletter | Focus | Submit |
|---|---|---|
| TLDR | General tech | tldr.tech/submit |
| JavaScript Weekly | JavaScript | Has submission link in footer |
| Python Weekly | Python | Has submission link |
| Golang Weekly | Go | Has submission link |
| This Week in Rust | Rust | Open PR on GitHub |
| Node Weekly | Node.js | Has submission link |
| Bytes | JavaScript | Has submission link |
| React Status | React | Has submission link |
| DB Weekly | Databases | Has submission link |
| DevOps Weekly | DevOps | Has submission link |
| StatusCode Weekly | General dev | Has submission link |
| Hacker Newsletter | HN top links | Depends on HN performance |
| Console | Developer tools | Via their website |
- Find bloggers, YouTubers, and newsletter authors in your niche.
- Write a short, personal email β explain the project and why their audience would care.
- Offer to write a guest post or be interviewed.
- Don't mass-email β personalize each message.
A great repo promotes itself. Before announcing anything, make sure these are in order.
- One-liner description at the very top β what does it do and for whom.
- Screenshot or GIF near the top β people decide in seconds whether to read further.
- Clear sections: Features, Installation, Usage, Configuration, Contributing, License.
- Badges: build status, version, license, code coverage, downloads.
- A "Why this project?" or "Motivation" section builds connection.
- Demo link or hosted example if possible.
- Fill in the About section with description, website, and topics.
- Set correct Topics (see above).
- Keep Releases updated with changelogs.
- Add a
CONTRIBUTING.mdβ lowers the barrier for contributors. - Add
IssueandPull Requesttemplates. - Pin the most important issue or discussion.
- MIT or Apache 2.0 are the most popular and permissive choices.
- Without a license, people legally cannot use your code.
- Add a
LICENSEfile to the root of the repo.
- CI badge (GitHub Actions, CircleCI).
- Test coverage badge.
- No broken links in README.
- Clear and consistent commit history.
- Tell a story: why you built it, what problem you had, how you solved it.
- Show results: screenshots, GIFs, demo links β always lead with visuals.
- Be honest: mention challenges, failures, and lessons learned β it builds trust.
- End with a question to invite comments and discussion.
- Mention your tech stack β developers are always curious about the tools used.
- Keep it concise β developer audiences skim.
I built X to solve Y problemShow HN: [Name] β [what it does in 5 words]After N months, I finally released [Project]Why I rewrote X in Rust/Go/etc[Project]: open-source alternative to [known tool]I got tired of paying for X, so I built my own[Project] β a [language] library for doing Y
- Clickbait and exaggeration β developer audiences see through it immediately.
- Spamming links in comment sections of unrelated posts.
- Cross-posting the same text without adapting it to each community.
- Launching without a working demo, screenshots, or README.
- Being defensive about criticism β constructive feedback is gold.
- Posting and ghosting β always stay engaged in the discussion.
Track where your traffic comes from:
- GitHub Insights β built-in traffic, clones, and referrer data.
- UTM parameters on your links to know which platforms convert best.
- Example:
github.com/you/repo?utm_source=reddit&utm_medium=post&utm_campaign=launch
- Example:
- star-history.com β visualize your star growth over time.
- ossinsight.io β deep GitHub analytics and comparisons.
[ ] README.md ready: description, screenshots/GIF, install + usage instructions
[ ] License added (MIT recommended)
[ ] Topics set in GitHub About
[ ] Demo link or hosted example ready
[ ] Dev.to / Hashnode article written
[ ] Reddit posts prepared (adapted per subreddit)
[ ] Show HN post drafted
[ ] Product Hunt launch planned (assets ready)
[ ] Tweet / thread written with screenshot
[ ] Newsletter submissions sent
[ ] Awesome list PR submitted
[ ] Discord/Slack communities identified
[ ] UTM links ready for tracking
- Post on r/coolgithubprojects and r/SideProject with the format:
[Project] Name β what it does - Submit Show HN on Hacker News (morning EST for best timing)
- Write an article on dev.to with the tag
#showdev - Post a tweet with
#buildinpublicand a screenshot or GIF - Find the relevant awesome-[topic] list and submit a Pull Request
- Write tutorials that use your project β brings in search traffic for years.
- Answer Stack Overflow questions in your domain and mention your tool when genuinely relevant.
- Speak at meetups or conferences β even local ones matter.
- Integrate with popular tools β being listed in official docs of a major framework is huge.
- Maintain the project actively β users share and recommend maintained projects.
- Build a community around the project (Discord server, mailing list).
- Respond to every issue β reputation spreads by word of mouth.
Found a platform that's missing? Open an issue or submit a PR β contributions welcome!