DEV Community

Cover image for How I got my Python library listed on Awesome Python (and what I learned along the way)
Tlaloc-Es
Tlaloc-Es

Posted on

How I got my Python library listed on Awesome Python (and what I learned along the way)

I've had a GitHub account for a while, mostly for private projects and work. Every now and then I'd push a small library I'd built, pick up a few stars from a course… but breaking 10 without a social following or friends to share it felt practically impossible. Something experience would later confirm.

I saw YouTubers whose course boilerplates and templates hitting 500 stars and set myself a challenge: get at least 100 stars on a project, improve my portfolio, and get some hands-on experience building a brand.


The idea: cleaning Python environments

I work with a lot of ML and deep learning projects. That means virtual environments eating up disk space, __pycache__ folders everywhere, and all that noise that — when you're working on-site without GitHub access for security reasons — makes copying an entire directory a nightmare. The usual fix:

find . -name "__pycache__" | xargs rm -rf
Enter fullscreen mode Exit fullscreen mode

I decided to turn those cleanup scripts into a TUI/CLI tool called killpy. Part of it was genuine necessity, part of it was inspiration from npkill, a similar tool from the Node ecosystem with a solid following. If it works for Node, why not Python?


The journey: from 0 to Awesome Python

First round — Reddit + LinkedIn (~35 stars)

I started last year. I built the library, learned how virtual environments were structured, figured out which file types were worth cleaning, put together a basic setup, published it on PyPI and started sharing it.

  • Reddit: good interactions, some quality comments… but only 5 stars.
  • LinkedIn: around 30 stars. Running total: 35 stars.

I followed a bunch of dev.to tutorials on getting your first X stars, but I'll be straight with you: if you don't have an exceptional idea, a decent social following, or a bit of luck, it's not going to work.

One of those tips was "submit it to awesome-X and you'll get stars". So with my 35 stars I went for it, opened the PR… and almost a year later: rejected. I remember hitting F5 on that PR every day for the first month.

Pause and refactor

I put the project on hold — I have a job and other things going on. But shortly after the PR was rejected, I did a pretty big refactor: improved the functionality, expanded it, added more pre-commit options, a proper demo GIF and a cleaner logo.

Second round — The LinkedIn "viral" post (~95 stars)

Tried Reddit again… and the post got removed. Reason: "this is AI", with a wave of negative comments. I obviously used AI like any developer does these days, but there you go.

LinkedIn, on the other hand, exploded: nearly 200,000 impressions, 200 reactions, and around 70 more stars. Running total: ~95 stars.

After that, stars trickled in daily. A contributor to Awesome Python had advised me to wait until I hit 100 before reopening the PR. I did. And finally, after just over a week of waiting… I got listed.


What I learned

1. You can build something great, but if nobody knows it exists, it doesn't

Promotion matters, whether you like it or not. An invisible project is a useless project, no matter how well built it is.

2. Reddit is a coin flip

Sometimes it works, sometimes it doesn't. It depends heavily on the first comment, the day, the luck of the draw. If the first comment is negative, the ones that follow tend to pile on. Don't treat it as your only channel.

3. Some people just criticize to criticize

Don't take it personally. On LinkedIn, for example, there were plenty of comments from very organized developers saying that if you properly cleaned your environments from the start you'd never need a tool like this. Maybe they're right for their workflow — but not for mine, and apparently not for the 108+ people who've starred the repo either.

4. Dev.to is not a short-term promotion channel

I published several articles about Python environments over nearly a month, including posts directly related to killpy, and the result in terms of stars was basically zero (two, at best). Dev.to might be useful for other things, and maybe SEO will pay off down the line, but if you're looking for quick traction for a project, don't count on it unless a post genuinely goes viral.

5. It doesn't matter if similar projects already exist

The differentiator, whether people like it or not, is promotion — giving yourself a shot — and then executing well enough that people talk about you. You post on Reddit, you need the luck of people receiving it well and actually trying it. They try it, and that's where skill comes in: you show it works, that it solves the problem properly. You leave a good impression, they share it.

Because even if similar projects exist, if they don't solve the problem well, haven't been updated in a while, or you simply do it better, you can carve out your niche. Just ask uv — it came after Poetry, pipenv, conda and the humble requirements.txt, and it's now the de facto standard for Python environments.

6. Getting into Awesome Python won't give you thousands of stars

It gives you something different: validation. A major repository has reviewed your project, deemed it useful for the community, and endorsed it. That's worth more than it sounds when you're just starting out.

7. Your README is your landing page

It's your business card and your storefront at the same time. A good README with a demo GIF, badges, clear instructions and a polished logo is the difference between someone staying or closing the tab in 3 seconds. It's no coincidence that one of the most impactful refactors I did had nothing to do with code — it was documentation and visual presentation.

8. Timing is not trivial

Posting on Reddit on a Friday afternoon is not the same as posting on a Tuesday at noon. The time and day you launch can determine whether your post gets early traction or dies before anyone sees it.

9. Stars are not the only metric

PyPI downloads, open issues, forks, mentions in other projects… sometimes a project with 50 stars has more real-world usage than one with 300. Stars are visibility, not necessarily utility. Don't obsess over that number alone.

10. Language limits your reach

Publishing in English gets you an order of magnitude more people. It sounds obvious but it's a hard step to take when it's not your first language. In my case it's still something I'm working on, and I've probably left a lot of stars on the table by not doing it sooner.

11. Consistency beats spikes

A viral post gives you a short-term boost, but keeping the project active — fixing bugs, doing regular releases, responding to issues — is what turns that spike into sustained growth. People who find you after a viral moment will check your last commit date. If it's been six months, they'll move on.


What's next? Goal: 1,000 stars

Will I get there? I honestly don't know. But I have a roadmap:

  • Keep promoting and giving the project visibility
  • Keep fixing bugs and improving the tool
  • Keep accepting PRs from people who want to contribute

And as a final thought: if you don't want to deal with everything that comes with starting a company — paperwork, legal, tax — but you want to learn how to build something, manage it, promote it and collaborate with others, maintaining an open source project is an incredibly good option. You learn development, communication, community management and personal branding, all at once and without the bureaucracy.

I don't know if I'll hit 1,000. But the journey has already been worth it.


🔗 killpy on GitHub

If you've been through something similar or have questions about the process, I'd love to read about it in the comments. 🐍

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.