You built the thing. You shipped it. You posted it on Hacker News, tweeted about it, maybe wrote a dev blog. And then you waited for users who never showed up, because everyone else did the exact same thing on the exact same day.
The problem is not your product. The problem is that digital-only promotion puts you in a line with ten thousand other side projects competing for the same eyeballs on the same platforms. What almost nobody tries is the simplest differentiation available: putting something physical into someone's hands.
If you ever attend a hackathon, a local dev meetup, a tech conference, or a co-working demo night, you already have the distribution channel. You just need the material. A one-page handout with your project name, a one-sentence pitch, a QR code to your app or repo, and maybe a screenshot. That is it.
The person you talked to for three minutes at a meetup will forget your project name by the time they get home. If they have a card or a sheet in their bag, they find it later and actually visit the link. I have watched this happen repeatedly at small events. The projects people remember are the ones that gave them something to carry.
This is not a big spend. A hundred short-run color copies on decent stock costs somewhere around ten to fifteen dollars through an online printer that batches small jobs together. That is cheaper than most .io domain renewals and certainly cheaper than any ad experiment you could run.
If you are not sure what paper weight to pick, you can order a free sample kit and feel the options before committing. Heavier stock feels like a business card. Lighter stock folds into a pocket. Either works depending on whether you want people to keep it or just scan the code and move on.
Most developers I know, myself included, are not designers. That is fine. Several online print shops will handle the file setup at no charge. You give them your logo, your text, and a rough layout. They fix the margins, convert the colors, and send a proof. You approve it from your phone and pay after you are happy with it.
The whole process takes less time than configuring a CI pipeline. And unlike a CI pipeline, it gives you a stack of paper that works offline, requires no authentication, has zero downtime, and never throws a 500 error.
Developers tend to solve distribution problems with more code. Another integration, another platform, another bot. Sometimes the answer is simpler. A hundred printed sheets at your next meetup might generate more real conversations about your project than a month of posting into the void. Try it once. If it does not work, you lost the price of a coffee. If it does, you found a channel nobody in your space is using.