Skip to main content

How to promote a developer tool on Reddit without getting banned

Web development is a large niche and a strict one. Of the thirteen communities tagged for it in our directory, r/programming and r/learnprogramming prohibit promotion outright and almost all the rest sit at the strictest tolerance short of that. Weekly showcase threads exist precisely so that product posts stay out of the main feed.

The reason is not that developers are hostile. It is that they can evaluate you. A marketing claim about performance invites someone to check it, a screenshot invites someone to ask about the implementation, and a landing page with no repository behind it invites the question of what you are actually selling. Every framing shortcut available in other niches fails here.

That leaves one thing that reliably works, and it works very well: the technical writeup. Explain a problem properly, show what you tried, include the numbers and the thing that surprised you, and this audience will read to the end and argue with you in the comments. If the code is public, r/coolgithubprojects will take the project itself — the one room in the niche where sharing your own repo is the expected post.

Where developer tools can actually be promoted

Each of these is a real community with its own rule. The rule is the part that matters — a good post in the wrong thread is still a removed post.

  • r/coolgithubprojectsPromo tolerated

    The one room where posting your own repository directly is the intended use rather than a violation — but only if the code is genuinely public.

    The rule here: Share the repo itself, ideally with real traction to point to. A closed-source product has nothing legitimate to post here.

  • r/web_designConditional

    More tolerant than the engineering rooms, and receptive to a build if you explain the design reasoning.

    The rule here: Site showcases with design rationale, or tool discussion. The rationale is the requirement — a showcase without it is a portfolio drop.

  • r/webdevStrict

    The largest general room, with a weekly thread that exists specifically to keep builds out of the main feed.

    The rule here: Technical questions or open-source shares in the main feed; build and product posts belong in Showoff Saturday, not outside it.

  • r/nextjsStrict

    Framework-specific and genuinely interested in implementation detail, which suits a real technical finding.

    The rule here: A real technical insight about building on Next.js, with your product as the example rather than the point.

  • Values libraries and writeups on their own merits, and is quick to dismiss anything that reads as a launch.

    The rule here: Genuinely useful open-source libraries or technical writeups. A product announcement has no standing here.

  • Enormous reach, listed here so you know it is closed to promotion of any kind.

    The rule here: Self-promotion is prohibited. Substantive technical writeups or open-source releases with no ask attached are what survive.

Rules change and moderators enforce their own reading of them. Check the sidebar before you post, every time, and see the full directory of 104 communities for the rest.

What this audience actually upvotes

A number you had to measure. Bundle size before and after, a query that went from 400ms to 40ms and why, memory behaviour under a load you actually generated. Developers read for the measurement, and an unmeasured claim is worse than no claim.

The bug that took days. A subtle race condition, a caching layer that served stale data only under a specific header, a dependency that behaved differently in production. These posts get read to the end because everyone reading has lost a week to something similar.

Public code. It converts a claim into something checkable, and in this niche that is the difference between an assertion and evidence. It is also the only thing that makes r/coolgithubprojects available to you at all.

The two ratios that decide whether you get removed

Enforcement on Reddit is account-level, not post-level. A moderator opens your profile after one post trips their attention and skims what fraction of the account is about its product. That is why a reasonable post attached to a promotional profile still goes.

9:1 — comments to posts. Reddit's self-promotion guidance implies about nine contributions that have nothing to do with your product for every one that does. It comes from Reddit's 2014 moderator clarification and its current small-business guide restates it as “be a user first”.

3:1 — value posts to promotional posts. Among your submissions, at most one in four should promote anything. Clearing 9:1 while every post you make is a plug still reads as a marketing account.

The mention-deletion test. Delete your product name from the post and reread it. If nothing of value is left, it was an advertisement with context attached and it will be removed. If it still teaches something, the mention is a footnote on a real contribution.

New accounts have a further problem: most large subreddits silently filter posts from accounts under a karma or age threshold, so the post looks live to you and is invisible to everyone else. Check yours with the karma and warmup calculator before you post at all.

What gets developer tools removed

  • Posting a build in the main r/webdev feed

    The community runs a weekly showcase thread for exactly this, so posting outside it is not an oversight the moderators will excuse — the thread's existence is the rule being broken.

    Instead: Use Showoff Saturday for the build, and post in the main feed only when you have a genuine technical question or an open-source release that stands on its own.

  • Making a performance claim without the measurement

    "Blazing fast" and "10x faster" are read as marketing by people who benchmark for a living, and the first comment will ask what you measured, on what hardware, against what. Being unable to answer costs more than the claim gained.

    Instead: State the method and the environment alongside the number, and include the case where your approach is slower. The caveat is what makes the rest believable.

  • Linking a landing page instead of a repository

    In a developer community a marketing site with no code behind it raises the question of what is actually being offered, and in most of these rooms the link alone is the removal trigger regardless.

    Instead: Link the repo, or link nothing and put the substance in the post. If the project is closed source, write the technical piece and let people ask what it is.

  • Cross-posting one release to r/webdev, r/javascript and r/reactjs

    The membership overlaps heavily and each community wants its own specifics. A post general enough to suit all three demonstrates it was written for none of them, and moderators across the overlap see the pattern together.

    Instead: Write one deep post for the community whose stack you actually engaged with. If another genuinely applies, wait and rewrite it around that framework's details.

A post that would survive

Written for r/nextjs. Adapt the specifics; keep the shape.

Our largest page went from 4.1s to 0.9s LCP and the fix was a font, not the framework

Spent three weeks blaming the framework for something that was our own doing. Writing it down in case it saves someone the same detour. Setup: App Router, mostly server components, a catalogue page with about 90 items. LCP on mobile was 4.1s on a throttled 4G profile. What I tried first, and what it bought: - Splitting the page into more granular server components: no measurable change. - Moving the item grid to streaming with Suspense: about 200ms, and it made the layout shift worse. - Reducing the image payload with better sizes attributes: roughly 400ms, real but not the problem. What it actually was: we self-hosted two font weights but declared four, so the browser was synthesising two and, worse, our @font-face block sat in a CSS file imported by a client component near the top of the tree. That put a render-blocking request in front of the largest element, and the largest element was text. The fix, in about an hour: 1. Moved to next/font/local with only the two weights we ship, declared with display: swap. 2. Preloaded the one weight used above the fold and nothing else. 3. Deleted the CSS import that was dragging the font declaration into the client bundle. LCP went to 0.9s. The framework work I did first was not wasted, but it was worth about 600ms of the 3.2s. The lesson I keep relearning: I profiled the parts I found interesting rather than the parts the waterfall was pointing at. The network panel had this on screen the whole time.

Why it survives: It is a genuine technical insight about building on Next.js, which is exactly what the community permits, with no product name and no link. Every step reports what it actually bought including the two that bought almost nothing, the surprise is specific and reproducible, and it ends admitting the author profiled the wrong thing. Developers finish posts like this and argue with them, which is the outcome you want.

Frequently asked questions

Can I post my developer tool on r/webdev?
In the weekly Showoff Saturday thread, yes. In the main feed, no — the thread exists specifically to keep builds out of it, so posting outside it is the rule being broken rather than an oversight. The main feed takes genuine technical questions and open-source shares that stand on their own merits.
Why does r/programming remove my project post?
It prohibits self-promotion outright. What survives there is a substantive technical writeup or an open-source release with no ask attached — no signup, no landing page, nothing requested from the reader. If your post has an objective beyond being read, it is not a fit for that community.
Where can I share my open-source project on Reddit?
r/coolgithubprojects is the one room in this niche where posting your own repository directly is the expected format, and it helps to have real traction to point at. Beyond that, r/javascript will take a genuinely useful library on its merits, and r/webdev accepts open-source shares in the main feed.
How do I talk about performance without sounding like marketing?
Give the method and the environment with every number, and include the case where your approach loses. "Blazing fast" is read as marketing by people who benchmark professionally, and the first comment will ask what you measured and against what. The caveat is what makes the number believable.
Should I link my landing page or my repo?
The repo, or nothing at all. In a developer community a marketing site with no visible code raises the question of what is actually on offer, and in most of these rooms the link alone triggers removal anyway. If the project is closed source, write the technical piece and let people ask what it is.

Free tools for this

Last reviewed: July 2026