I have two projects with a total of almost 7k stars. [0]
It’s worth noting that GitHub stars truly don’t translate into anything worthwhile in the vast majority of cases. You can have a massively popular project, but it doesn’t automatically translate into Twitter followers or newsletter subscribers. And those things don’t directly translate into wealth or happiness either.
Just get a job and make friends and have a life. That route has the highest expected value. I have been chasing GitHub stars for a long time, and it has never been fulfilling. I wouldn’t recommend it.
I wonder why anyone would want to have a popular project in the first place.
Do you think you'll get famous? Rich? Have higher status?
Well, perhaps you will get some status in a few niche circles, like when applying for conference talks perhaps?!
But other than that, all you'll get is a load of entitled users complaining about bugs, usually filling low quality bug reports, and very few actual meaningful contributions.
Most people are just like you and want THEIR PROJECT to be popular, not to contribute almost anonymously to some other random guy's popular project. Those who are more likely to contribute are usually junior devs trying to learn new skills, so expect their contributions to require lots of reviews and help from you.
> But other than that, all you'll get is a load of entitled users complaining about bugs, usually filling low quality bug reports, and very few actual meaningful contributions.
I agree that entitled users can be a real problem. I have had my share of dealing with entitled and impolite users complaining about "issues" that eventually turn out to be something that is already easily addressed by the README. Interacting with such users can indeed be disappointing.
However, except for the occasional discourteous user, most users of my tiny projects have been quite supportive. Most of them are polite while submitting bug reports. Some even leave comments to express their appreciation for the project![1] So it's not all bad!
> Most people are just like you and want THEIR PROJECT to be popular, not to contribute almost anonymously to some other random guy's popular project.
Wanting one's own project to be popular and contributing to other projects need not be mutually exclusive. Many people write their own projects as well as contribute to other projects. For example, I got into open source first by contributing[2][3] to other projects before I began publishing my own projects.
> Many people write their own projects as well as contribute to other projects
Yeah, I know, I do the same thing myself! The question still remains: why would you want to have a popular project? It makes no sense to desire that...
Desiring that a project exists that solves a problem well... that yes, we should all desire that, but who created it doesn't really matter... if I create a project these days, it's to solve a problem I really can't find anything else to solve, not because I want to write something popular... TBH if it becomes popular, I might see that as a problem rather than a good thing given what comes with it: feature requests, bug reports, PRs that you need to spend time on while sometimes just not wanting to accept the change, self-awareness that you can no longer just change stuff at will if you want it...
I have a few slightly popular projects, but the ones I like the most are the obscure ones I use by myself :)
My main project has gathered some stars (low hundreds) and a few followers, the occasional fork, etc. I think the project is both important and useful ... but at the same time I'm also very grateful that there seems to be such a lack of interest in it*
Why? Well I've been following my competitors' projects (other 2D canvas libraries) for a few years now. Most of these projects are being maintained by just one or two people. Their dedication to maintaining and improving these libraries - which they often took over from the original creators - is wonderful to see.
But the amount of crap the maintainers of the more popular libraries have to put up with is astonishing. People who demand immediate fixes for obscure bugs. People not willing to produce even a minimal code example to help the maintainers understand and fix the issue. People - developers! - who are too lazy to do their research and expect the maintainers to build their products for them.
So, yes. If that stress is the price to pay for having a popular project on GitHub ... I think I'll stay hidden in my little corner of the internets!
*A couple of issues raised, and no contributions, over past 3 years. On the bright side I can release updates without having to worry about backwards compatibility.
> I wonder why anyone would want to have a popular project in the first place.
It's literally the second item in the ToC of the article.
> Why Bother? Popular Projects = More Contributors = Better Project
The author does go on to talk about how it becomes a challenge, dealing with people that are the opposite of helpful, as you also mention many people are, but the point still stands. The more popular the project, the more contributions, even if many are in the form of bugs/complaints, those are still useful. If the ratio of complaints to actual code contributions is even remotely consistent, the more complaints, the more actual code contributions. :shrug: To each their own, but at least read the article before criticizing.
Maybe a story from a maintainer would help. To contextualize, the main SheetJS open source project https://github.com/SheetJS/sheetjs has over 28K stars.
tl;dr: the project involves "crowdsourced research" which benefits from popularity.
The main social goal with the project is data preservation and integrity. Large-scale economic and political decisions are made from data and analyses in spreadsheets. For example, last year in the UK, COVID cases were underreported thanks to Excel minutiae https://www.bbc.com/news/technology-54423988
Due to various corporate stratagems, the older data representations were intentionally obfuscated. To support Excel, many developers poked around at Excel files and guessed at the structures.
In this environment, the biggest challenge is finding worksheets with random corner cases. These types of files are not easy to create and fuzzing has limited effectiveness. This is where open source and popularity come into play. The open source and JS nature of the project helps reduce testing friction (https://oss.sheetjs.com/ runs in the web browser, no need to install anything) and encourage bug reports with test cases.
There will always be "entitled users" and "low quality bug reports" but that comes with the territory. There are also meaningful issues and code contributions. Efforts at trying to prevent the low quality contributions also discourage higher quality contributions.
I have a bunch of small projects[1] that have a total of about 6k stars (with the top one having about 2k stars). Except for a few donations to my Buy Me a Coffee page, I agree that they don't translate to anything else.
All of my projects are tiny, minimal, and try to solve a small problem I encountered while doing something else. All of these tools were written for myself or my wife or just for fun! But I shared the code on the web anyway just for the joy of sharing! The joy of sharing code is something I discovered with my first encounter with computers while learning to write programs using IBM/LCSI PC Logo.[2]
The joy of sharing is the real reason for making my projects open source. In case it turns out to be useful for others, that's a bonus! If someone cares about it enough to star it, fork it, contribute to it, or send a donation, that's an additional bonus! However, my primary objective is to have fun and share the fun with others. In my opinion, computing should be fun[3] and open source is one way of the ways that computing remains fun for me.
Have you tried doing a "Show HN" post for your project? Creating a "Show HN" post is often a good way to get some attention and feedback for your project provided your post receives a few early upvotes in the first 30-40 minutes and reaches the front page.
I had considered but it's not quite good enough yet. I posted on reddit once and got 1 upvote and 1 comment. aha. Think it's as I did it really late on a sunday. Timing is everything. But it hepled me a lot with not stressing too much about posting.
For this project and content on the net in general, You should generally show a compelling answer to the following questions within a few seconds:
What is this? Why do I care? Why is this exciting? Do I like this?
At least for me I can't answer those questions when I see your project. Maybe I'm stupid or ignorant and you simply don't want to reach me, alright fine.
Also some projects simply cannot fit into this box.
Sometimes reader enlightenment is required to see value. Those are the hardest ones.
Essentially your task is to convince the reader that you have an answer to things they never thought to question or connect together and your proposed way of doing things fixes problems they thought were just the way of the world.
That's why my more sophisticated projects do much worse than my simpler fun ones and why silly things do so well and hard things do so poorly.
There is value to solving hard problems but as the new patterns form, people forget so the appreciation of great achievement is often fleeting.
So I dunno, people suck and life is hard. Whatever
I think you're right. The project changed direction several times. from being a tag generator and a general wrapper before settling on trying to port the DOM. I still need to take it beyond being a curiosity. In ways I avoid wokring on those aspects that make something 'useful' as for me it kills the drive so I work around that aspect doing all the other bits first. And end up picking up on lots of tits bits that others don't. But I should probably fill in more of the expected functionality. It's a habit I got into to keep me engaged on a project.
I've done a 10K+ one which did translate to followers, but keep in mind those followers are following the project, not you :) While people are grateful and supportive, do what makes you happy inside, because chasing clout and JSConf stages gets old.
For what it’s worth, I love `zod` and use it for almost every TypeScript project I work on. Most coworkers I show it to agree with me that it is incredibly useful and powerful.
> Just get a job and make friends and have a life.
That really is a narrow, normie view. Obviously it didn't work out for you but for others (and I'd put myself in the category) stars can be very meaningful, especially for work which you're proud of. In a small way you're being judged by people who understand, or at least use, what you've created and that can be more rewarding than other work, money or social interactions.
(Also, I'd rather kill myself than get a job and friends are generally not that stimulating)
Wow! Where did that come from? Especially the boot. Living life however you feel regardless of societal norms seems to be the opposite of living under a boot, doesn't it?
And who are these people exactly? It really does sound like you're projecting there.
I understand the benefit of being talked out of ending a bad week early, but fundamentally we as a society do not care about suicide or people's lives as much as we pretend to, and to me this is very sad.
Are you Gen-Z? One of my observations is that people born in since the late 90's have known social media and metrics like Likes and Hearts since their teens. I wonder how damaged many of them are.
It's not to say that me, someone just born after the Gen-X era's declared end, isn't? also addicted to these numbers.
You're reading way too much into what I wrote. I'm certainly not addicted to numbers or social media. I don't participate in the latter really (yet here I am!) and I generally don't care what people think. I don't have any projects or stars on github and I'm not seeking them.
I was just expressing an alternative to view that seem to dismiss nerdy people who derive pleasure and satisfaction from github and a fairly smug sounding "be normal."
Being exposed to these things from an early age means they form a part of your early philosophy. Notably, they're around and salient during the “cynical about everything” phase that lots of teenagers go through. It might not have as big of an impact as all that.
Wow. That's a mind blown for me. I've never thought of that, but you're right. When my kids watch a YouTube video, the first thing they talk about is how many views, subscribers.
You might ask them why, because views and subscribers are interesting metrics.
I always pay attention to them because they reflect how the general public respond to different things. So they might be thinking "wow this is so stupid but it's got so many views!"
haha yeah that's nuts. It's funny because my kids don't watch tv or movies, and so they wouldn't know a single Hollywood celebrity, but thinking now, I guess their way of judging if someone is a YouTube "celebrity" is by subscribers alone.
... thinking now, why should Hollywood > YouTube given that the content they consume is more localised. Maybe it's me who's wrong!
This all seems to rest on the assumption that more (drive-by, wooed by flashy logos) contributors => better software quality / functionality.
That's... quite a bold claim.
EDIT: And if you really want contributors, then maybe instead of building yet another logging or command parsing library with a cute mascot: contribute to and fix existing codebases, or discuss design and suggest changes to a standard library? There's plenty of existing communities of people that you can work with on a 'popular' library. If the target space is so crowded that what makes a difference is pure marketing, then maybe you don't need to make that space even more crowded in the first place...
Demos sure are important, however I would advocate using videos (.mp4) instead of GIF. That way you can pause and seek the video, to get better idea what's going on.
So many times I've come across demo GIFs/animated shell sessions that "type" at about 1000 characters a minute, and the animation loops over before I even had a chance to blink.
Wow, this looks like a great resource for a difficulty I've been struggling for myself since a long time.
For the love of it, I can't understand what makes other GitHub repositories stand out over mine.
I'm blogging about my work, I've added more information in the readme and over the course of a view years, I've also gradually shifted course to a more appropriate process. I always wanted to be the owner of a busy open source repo. I find the idea of making this experience fascinating.
But many of my repos are still stale though I think my code is good enough.
Actually, seeing that the repository probably needs a much better designed readme makes me sad to realize that also for something so deeply rational: it's the looks that count.
On the other hand, it's true. Deeply living with a problem and solving it in code is a though challenge and I'm not sure I'm committing enough for my work to be popular.
But I'm anyways happy to now realize that I'll have to market my repos better too.
Have you tested your writing? project titles, readme, docs, etc?
I learned to test everything. Basically SEO, but for good.
I've done UI design, technical writing, ad copy, and so forth. Draft project plans, press releases, headlines. I've spent a ridiculous amount of time naming things, crafting pose, framing, messaging, etc. I even obsess over my trolling, sharpening my zingers.
I just scanned your repos. Know that I am not your target audience. So I have no direct feedback. At least none that should be trusted.
Your project for running C++ in a browser, via WASM, is the one I'd be most curious about. My guess is that's the one with the broadest appeal.
I'd compare your written artifacts with similar projects. Push and poke it every way you can think of. Stuff like dropping each project's keywords and phrases into google to assess discoverability.
I'd also test your writing on everyone you can. Peers, non-peers, randos. Both native English and German speakers.
IIRC, didn't @danluu do something about naming repos? I'm probably misremembering.
FWIW, for my last FOSS project, I spent a bit more time on writing than programming. Roughly 55/45 split. (I logged my time on that project. I was curious.)
Lastly, testing writing is in addition to all the other good suggestions. "Yes and", not "Ya but".
OK interesting. Great idea on trying to compare my projects with others and then adjusting the copywriting.
Then about testing for engagements: I've done similar things with the headlines of my blog articles. I usually have a few different ideas and I can test the engagement by e.g. resubmitting after a while on HN.
Do you have ideas on how to get improve the pace of my feedback loop? E.g. for testing three headlines of a blog post: Where can I test their engagement quickly such that I get live results?
Sorry, I don't. Learning how to do that is on my to do list. I've read articles about using Ad Words to validate notions, but have never tried. My own efforts to date have been torturous unending manual trial and error. Not optimal.
Actually, Veritasium posted a brilliant way for optimizing thumbnails and headlines to improve click-through rate on Youtube: https://m.youtube.com/watch?v=S2xHZPH5Sng
I plead guilty and say that I've repeatedly posted the same link on HN but with different query parameters to understand its performance.
But I've come to understand that users will notice this behavior and start to generally downvote.
As a creator with a small audience, the only success with tapping into a high throughput feedback loop has been by painstakingly write articles and submit them one by one to HN.
I've gotten much better at it already and frankly I've also noticed that engagement and "likes" isn't everything either.
I've realized too that if you truly do what you believe in consistently, I've found that I suddenly start having "impact", which I think is different from engagement.
How I see it:
- Engagement: clicks, views, comments
- Impact: The world changes, there's consequences and substantial changes as a reaction
But I think you can't have one without the other. High engagement means you're a popstar. High impact means you're a politician. Ideally, I want to be able to pick my position on the gradient.
Mea culpa: Rereading my initial reply, I see that I was more telling than asking, contrary to my stated intent.
Engagement and impact. Absolutely. Where do you choose to put your focus? I've always preferred "finding my tribe". Building tools for other people like me. Others who have needs like my mine which aren't fulfilled by today's popular hammerspoon.
Instead of persuading people to use my tools, I hope to be found by people who have framed their problem like I have and just haven't found a suitable solution.
For instance, one niche tool I made was a UI layout manager rooted in graphic design's notions for a "design grid". Kids today would call my bespoke solution "opinionated". At the time I described it as "visually and logically correct".
Alas. My strategy has not made me rich.
I'm actually semi-blocked on releasing more of my tools, because I haven't figured out how to pay the mortgage.
> im beginning to realize tons of things in life MUST be sold (or a case built which i see as a form of "selling")
While this is true, one is better off from thinking about this from first principles, such as what are some undeniable truths that are constant over time given an intractable problem space. Evolving software over and over around those constants, under the constraint of that one problem space, makes for a viable sell (but one does have to sell) especially in a b2b setting. Note that, early adopters don't need much of a selling-to, by definition, if the software as much as interests them and fulfills a tiny modicum of their needs.
I recently submitted a 2 character fix because someone used . instead of \. in their regex. Terse explanation because obvious. Rejected!
More seriously, some of the best friends I have made is because I randomly took the initiative to start a study group with them despite the fact that we had never spent time together as a group. There is always an animator making things work. If you want to actually do interesting things, you very often need to be that person. While you might not get the ego boost of being a 'chosen' one, you will occasionally receive thanks from those who recognize what you did to make things happen for everyone.
Isn't this just making the metric the target? We want popular projects because popularity is a sign of quality[0], but by focusing on becoming popular we're just gaming the metric.
Ah, but the real secret to maintaining open source projects is to make them popular enough to be useful to the right people, but not so immensely popular that maintenance becomes a burden.
An "Ultimate Guide on how to make a Just-A-Little-Bit-But-Not-Overwhelmingly-Popular Open Source Project" would be much more helpful :)
That's the thing I don't get about open source. Where do these maintainers find the time to volunteer ? I wouldn't wish super success for my project if all that means is more unpaid work.
sure, there are growing platforms that generate revenue for them, but from what I've seen, it's all dependent on volunteer donations.
I suppose it would be a dream job to get paid to develop my own code, but developing a closed commercial software product seems like an easier route to success. Linqpad is one that comes to mind.
For me, the priority is not open source, but rather the growth of my own creative invention. What I want is to get paid to grow my own vision, not that of someone else.
For me, creating software is an expression of Creativity. I to be able to explore my creative interests. Not those of someone else. I want to create things that interest primarily myself. I suppose the key to that success is to find a topic which has enough people are of interest that would be willing to give me revenue to work on that topic.
These are impressive! The use of screenshots and figures really helps. I've also always thought Groue's GRDB is an example of great documentation and readme combination[1].
Why not? There's tons of reasons to do it, other than craving attention. I'm really enthusiastic about the tech I do, and I like to share my enthusiasm. Also, it helps to lend credence to what I say, if I can back it up.
And some folks even like the stuff I post. Go figure.
Another thing that I try not to do, is immediately attack others, on this (or any other) forum.
It buys me absolutely nothing. I don't feel good about it, most folks around the place don't appreciate it, and it tends to make immediate enemies of potential friends.
Pretty much the Platonic Ideal of "Zero Sum Gain."
I've always found that life is easier for me, if I have more friends, and fewer enemies.
I run a web app with 2k monthly users and 15k registered users (and about 14k downloads, which happen through the GitLab release page). I have 40 stars. It's just a silly metric.
"""
The Ultimate Guide to creating a popular open source project in only 3 steps from someone with 10s of thousands of GitHub stars.
"""
These are tips to gain a person exposure.
Look at me I am famous. I have so many stars.
and all I did was write a 67 line Python code. yay.
You can do it too!!!!!
Marketing, logos, shiny, shiny.
You are hyper focusing on the wrong metric
To me, and I am too old to matter, it highlights a fairly substantial perversion
of the reason and motivation to create great software that you give away for free.
It sets you up to chase fame on GitHub just like people do in every other social medium, Twitter and Instagram followers. Look people love me!!!!
So excited in the quest for brief moments of stardom.
You get there by feeding the lowest common denominator.
What does the mass of followers want? How can i get 1000 more.
Oh they like my bikini shots. Ill just make it a little skimpier. yay.
They like the drama with my momma, Ill stir up some real shit tonight yay.
Oh I see the dig it when I go off cussing about politics and today Ill cuss like never before. Yay.
With this type of mindset, you will not create anything original ot beautiful.
It's a fast-food junkie stuck in a feedback loop with a race towards the bottom.
It becomes an unhealthy addiction.
I have 0 stars, 0 twits, 0 Instagram, 0 all of social media because I am a quarrelsome luddite. I would not get an account in any of those systems
even if they paid me.
It is a distraction. at best. more commonly an obsession and no good can come from it.
It used to be that modesty was a virtue.
A compliment from one my sensei when I was studying martial arts,
Honest praise from my Lt when I had the misfortune of ending up in the army.
The camaraderie from the band of brothers I discovered.
A professor seeking me and giving me some life changing advice based on a couple of my essays he graded.
Having one of my most respected "master" developers reach out to me to point out that I
had made some errors in my code, but he liked these two other things.
Meant he had actually spent some time looking.
Praise should be earned, and it should not be given out freely.
Seek it from those who really matter. The rest is noise.
I don't even know how many stars I have. Maybe the tens of thousands. On npm alone I have an upwards of billions of downloads a week. None of that really means anything, so I don't view that as a signal of authority on this subject.
This article is exactly what's wrong with GitHub. Flashy logos and jargon-ey readmes fooling folks into thinking something is high quality, secure, thoughtful code that will benefit instead of hurt.
These things are important for garnering views, sure, but open source isn't a marketing channel. You're optimizing for the wrong thing here.
Further, in my experience this applies primarily to web (see: Javascript) and ML spaces. Most other areas of focus don't worry as much about this.
great article, i know a few talented devs who would benefit greatly from these tips. I think some people are averse to hacking the growth of their project and think they just need to put up a terse readme and the people will come. But these tips seem innocuous enough, no dark patterns to motivate growth here, simply basic advertising and economics applied to github repos. i almost feel like the intro about stars may turn people away before they get to the article, which hopefully shouldnt happen.
I have a lot of little things I'm going to work on no matter what, a few that I'd appreciate help with but I'm not so bothered that I'm going to start 'hacking the growth', and none where the goal is to have a 'successful' repo with lots of stars and users or whatever. (I do help maintain/triage a couple of popular ones now, but I didn't get them where they are.)
Right. Sometimes I put up my code because I think it might be useful or educational to someone else, and I'd actually rather it not become popular because I don't want to deal with people giving much of a shit about it.
"if you build it, they will come" and "terse readmes" work very well in problem domains that don't have a few compelling open source solutions. Fanciful READMEs and marketing matter a lot more in a competitive/saturated space.
the article points out that the only way your repo will get attention if theres nobody else in the problem space, or your lib is much simpler then the other tools, so i think it can be both efficient in terms of description and mildly attractive visually. Also i think "fanciful" is a bit misleading here. Sure they recommend an icon, and/or an animation. i dont think thats necessarily overkill for some projects
Just a note: It is okay to not censor yourself (though, you could always leave a note that you're being overly critical). Criticism often lays bare the hard-truths everyone else has learned to ignore / suppress. The prospects that end up doing well, tend to address shortcomings pointed out by their harshest skeptics more often than not.
It’s worth noting that GitHub stars truly don’t translate into anything worthwhile in the vast majority of cases. You can have a massively popular project, but it doesn’t automatically translate into Twitter followers or newsletter subscribers. And those things don’t directly translate into wealth or happiness either.
Just get a job and make friends and have a life. That route has the highest expected value. I have been chasing GitHub stars for a long time, and it has never been fulfilling. I wouldn’t recommend it.
[0] https://github.com/colinhacks/zod