Guide

How do you promote a GitHub project without feeling like a spammer?

Updated July 19, 2026 · WarmStars

Short answer

Stop promoting. Start being useful in public. The cringe comes from dropping a link where nobody asked for one. Instead, write about the problem your project solves, show up where your users already are, and answer real questions. Then talk to the people who already starred you. That is not spam. That is a conversation you earned.

  • Link-dropping is not promotion. Being useful in public is the whole reframe.
  • Post where your users already spend time, not where it is easiest for you to post.
  • The launch-day spike fades in about 72 hours. Steady, quiet proof is what compounds.
  • Your best and quietest channel is the developers who already starred you. [See who starred your repo](/guides/see-who-starred-your-github-repo).

Why does promoting your own project feel so gross?

Here is the thing nobody tells you when you ship: the reason self-promo feels gross is that most of it actually is gross. Not you. The format. Dropping a bare link into a thread that was not about you, with a "Check out my project!" and a rocket emoji, is not promotion. It is litter. Your body knows it, which is why you feel the ick before you even hit post.

The reframe that fixed this (and it is small, and it is annoying, and it works): stop trying to promote the project, and try to be useful in public instead. Same energy, opposite feeling. When you answer someone's actual question, or write down the thing you learned the hard way, the link to acme/rocketdb becomes a footnote to something helpful, not the whole point of the message. Nobody has ever felt spammed by a person who was genuinely trying to help them.

You do not have to become an extrovert. (I would know.) You just have to move the value to the front and the ask to the back, or leave the ask off entirely and trust people to find it.

Where should you actually post it?

The instinct is to post where it is easiest, which is usually your own timeline, to the fourteen people who already like you. That feels safe. It also does close to nothing. Promotion is not broadcasting into your own room. It is going to the room where the people with your problem already gather.

So do the boring homework first. Who is acme/rocketdb for? Where do those people complain about the thing you fixed? A specific subreddit, a Discord, a language-specific forum, the comments under a related post, a newsletter that already covers your niche. That is where you show up, and not to plug. Answer three questions before you ever mention you built something. Earn the room before you use it.

If you are staring at a blank list of rooms, there is a whole guide on finding your first users for an open-source project. The short version: they are almost never on the platform that is most convenient for you.

Should you write about the product or the problem?

People do not search for your product. They cannot. They do not know it exists yet. They search for their problem. So write about the problem.

"How I stopped X from happening" will always outperform "Introducing acme/rocketdb v2." The first is a story someone can see themselves inside. The second is a press release, and nobody has ever forwarded a press release to a friend. Write the debugging session, the wrong turn you took, the config that finally worked. Put the tool in as the thing that helped, not the hero. (The trick, which is not really a trick: the honest post about the problem is also just easier to write, because you actually lived it.)

This is slower. It does not spike. But a good problem-post keeps getting found months later by someone typing your exact pain into a search bar, and that person shows up already half-trusting you.

What do you do after launch day?

Launch day is a sugar high. You post to the big aggregators, the number goes up, your notifications light up, and for about seventy-two hours you feel like a genius. Then it fades. It always fades. (You can watch the exact shape of it on a star-history chart: the vertical cliff of launch day, then the long flat plain after.) This is normal. It is not failure. It is physics.

The mistake is treating launch as the strategy. Launch is one day; momentum is a habit. The projects that compound are not the ones with the biggest spike, they are the ones that keep posting quiet proof: a changelog, a fix, a small before-and-after, a user's win you got permission to share. None of it is loud. All of it says "this thing is alive and getting better," which is the only signal that turns a curious star into a real user.

So after the confetti, keep turning that interest into something real with the least glamorous work there is: showing up next week, and the week after, with one more small true thing to say.

Who is the audience you already forgot?

Here is the channel everyone skips, and it is the best one: the developers who already starred your repo. They raised their hand. They saw acme/rocketdb, felt something, and clicked the one button GitHub gives them to say so. That is the warmest audience you will ever have, and most people ignore it entirely to go chase colder strangers.

The catch (there is always a catch) is that GitHub restricted the public stargazers list in 2026 to a repo's own admins and collaborators, so the general public can no longer browse who starred you. As the owner you keep that access, but even a full page of usernames is not the same as knowing who those people are. The count is still public. The people got harder to know. But a star count is aggregate: it tells you how many, not who. And the who is the entire value. dev-priya starring you is worth more than a hundred anonymous ticks, because dev-priya is a person you could actually talk to.

This is the one honest place a tool earns its keep. WarmStars takes your OWN repo's stargazers and turns them back into named people from public data, with a public email for many of them, so you can send a real, specific thank-you instead of shouting into a feed. Not a blast. A note: you starred acme/rocketdb, I am the person who built it, was it the thing you needed? See how to see who starred your repo and how to actually reach them. That is the least cringe promotion there is: talking to someone who already told you they were interested.

1
the star: the single click a developer uses to tell you your project mattered to them

Common questions

Is it ever okay to just post a link to my repo?
Sometimes, in the right room. If a thread is literally asking "what tool does X" and yours does X, a link is a gift, not spam. The test is simple: did someone ask, or are you interrupting? Answer first, link second, and never lead with the ask in a space that was not about you.
How often should I post about my project?
Less about the project, more about the problem. A good rule: for every post that mentions `acme/rocketdb`, publish three that just help someone with the problem it solves. If you would be embarrassed to read your own feed back, you are posting too much about yourself and too little that is useful to anyone else.
What if I have zero audience to start?
Then you borrow other people's rooms, politely. You do not need a following to be useful in a subreddit, a Discord, or the comments of a post your users already read. Show up, help, repeat. The following is a side effect of being useful, not a prerequisite for it. Start with [getting your first users](/guides/how-to-get-your-first-users-for-an-open-source-project).
Should I ask my friends to star the repo?
A few, sure, on day one, to get off zero. Just know that friend-stars are aggregate padding: they lift the count, but they are not the who that becomes a user. Real momentum comes from strangers with the problem, not favors from people who already love you. Do not confuse a kind number with a pipeline.
My launch flopped and got almost no traffic. Is the project dead?
Almost certainly not. Most projects do not die from a quiet launch. They die from the author quitting after it. Launch is one day. The problem-posts, the changelog, the slow proof: that is where projects actually get found. A flat launch with a persistent maintainer beats a viral launch with an absent one every time.
Isn't emailing my stargazers the same cold outreach I am trying to avoid?
No, and the difference is consent. A cold email goes to a stranger who never heard of you. A note to someone who starred your OWN repo goes to a person who already raised their hand. Keep it to your stargazers, keep it specific and short, and make it a thank-you before it is anything else. That is a conversation, not a campaign.
get started

Meet the people behind your stars.

Free to start. Two scans a month, no credit card.