If you use GitHub, youâre probably familiar with âawesome-listsâ.
Awesome-lists are a series of open source GitHub projects. They offer curated content around a specific topic that readers will find⌠awesome. Each list uses the âawesome-â naming convention and most of them give credit to other awesome lists that inspired them to create their own.
Theyâve become so popular that GitHub now displays âAwesome Listsâ as one of the options in the mobile app Explore tab:
Youâll find awesome-lists ranging from mainstream tech topics like awesome-react to random stuff like awesome-falsehoods (âa curated list of falsehoods programmers believe in.â), awesome-board -games (âa curated list of awesome and exceptional board gamesâ) and awesome-veganism (âa curated list of awesome resources, pointers, and tips to make veganism easy and accessible to everyoneâ).
My Progress From Consumer â Maintainer
For me, awesome-lists were love at first site when I was introduced to the concept a few years ago. Iâm now a maintainer of my very own list, having recently started awesome-opensearch together with my friends at Pulse.
đ đ [Would you mind giving my awesome list a GitHub star â ? Iâd really appreciate it! đ đ
Researching the Origins of awesome-lists
All of this got me thinking - where did this awesome-list concept come from in the first place?
Who started it?
Did they do anything to promote the idea early on?
And why âawesomeâ of all possible superlatives?
I looked around and could not find anyone who had written about this, so I decided to fill the gap myself and write the first comprehensively researched history of awesome-lists in history.
Itâs helpful that GitHub is built to leave digital fingerprints and clues, and so after sifting through lot of commit histories, READMEs and PR comments Iâve pieced together an authoritative timeline and history of awesome-lists.
Where it All Began
The first awesome-list in history was awesome-php, launched January 25, 2012 by Jamie York (@ziadoz on GitHub).
In his initial commit he wrote:
Here's some awesome PHP libraries that are awesome. Yes, so awesome I've used the word three times! You should be using them already:
Two years later, on January 17, 2014 another awesome-list came to life when Jan Van Ryswyck launched awesome-talks. And while this project carried a similar naming convention to awesome-php, Jack didnât make any connection in his initial commits.
The first signal of influence and attribution would come a month later, on February 10, 2014 with the launch of awesome-sysadmin. In the initial commit, Francisco Augusto wrote:
A curated list of amazingly awesome sysadmin open source resources inspired by Awesome PHP.
Later that day, Francisco edited the README by adding more context:
A curated list of amazingly awesome sysadmin open source resources inspired by [Awesome PHP](https://gist.github.com/Xanza/7663627)
Notice that the reference is a GitHub Gist URL. Gist is a GitHub feature that lets you store and distribute code snippets without setting up a full-fledged repository. Itâs sort of like GitHubâs version of a post or a tweet.
It turns out that the specific Gist reference that Francisco added is a dead link. Looks like he meant to reference: https://gist.github.com/ziadoz/1677679 which is where Jamie York had posted awesome-php back in January of 2012.
Early Traction
It seems then, that the initial awesome-lists were not actually repositories - they were Gists. And the initial traction and visibility of the awesome-list concept was thanks to the social and sharing nature of the Gists feature.
After almost 2 years on Gists, awesome-php had reached 260 forks and 1400 stars. And on Nov 29, 2013, Francisco announced that "Awesome PHP has been relocated permanently to its own Github repository](https://github.com/ziadoz/awesome-php). No further updates will made to this gist".
Awesome-lists had outgrown Gists and it was time to finally find their permanent home as stand-alone projects in GitHub proper.
The Wild Summer of 2014
The real inflection point for awesome-list growth was the summer of 2014 as several new awesome-list GitHub projects were launched during June and July.
On June 28, 2014, awesome-python was started. In the initial commit, Vinta Chen wrote:
A curated list of awesome Python frameworks, libraries and resources. Inspired by awesome-php.
On July 3rd, Marc Anguera launched awesome-ruby. There was no reference to other lists in the initial commit, but the timing and naming convention suggest that this was inspired by other awesome-lists that preceded it.
Awesome-lists were also starting to gain wider promotion on other social platforms. Take this tweet for example on July 9th 2014 telling people about the awesome-ruby project:
The rapid growth signals continued a couple of days later on July 6, 2014 when @avelino launched awesome-go. The initial commit reads:
A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.
Whereas other awesome-lists had referenced awesome-php as their OG awesome inspiration, awesome-go had taken inspiration from the awesome-python project that was launched just a week prior.
The next day (July 7th) awesome-shell was launched by Caleb Xu. People throughout the GitHub ecosystem had apparently took notice of the awesome-list trend and they were joining with lists of their own.
Awesome-lists Filled With awesome-lists
By July 8th, there were enough awesome-lists out there with enough exposure to inspire the first awesome-list of other awesome-lists.
awesome-awesomeness was started by Alexander Bayandin as what he described as:
A curated list of amazingly awesome awesomeness
The list collected all of the above awesome-lists that came before it in one convenient place.
On July 10th of that year, the awesome-list trend continued with the arrival of awesome-devenv. In the initial commits Dotan J. Nahum highlighted the progression:
A curated list of awesome tools, resources and workflow tips making an awesome development environment.
Inspired by [awesome-go](https://github.com/avelino/awesome-go), which was in turn inspired by [awesome-python](https://github.com/vinta/awesome-python).
On July 11th, another awesome-list aggregate was started when Sindre Sorhus launched awesome, which was described as:
âA curated list of awesome lists.â
Itâs notable that one of the lists in this projectâs first commit was frontend-dev-bookmarks. This list was started by Tim Navrotskyy on Jun 22, 2013, a year before the explosive growth of 2014.
The frontend-dev-bookmarks project obviously did not use the awesome- naming convention and itâs not clear that it was inspired by the budding awesome-list trend. It appears that this was a parallel, similar effort to curate useful information, as Tim suggests in the initial commit:
A badass list of frontend development resources I collected over time. Pull requests are welcome.
The pull of the awesome-list ecosystem was so strong, that even parallel efforts such as this one were pulled in.
Awesome-lists Become a âThingâ
On the same day Sindre Sorhus launched awesome, he also launched awesome-nodejs which was described as:
A curated list of delightful Node.js packages and resources. Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing.
Awesome-lists had arrived at scale.
They were officially âthingâ.
What Caused the Wild Summer of 2014?
I reached out to several of these early awesome-list creators to understand what prompted the rapid growth during that summer of 2014.
I assumed there must of been an event or conference that put the awesome-list concept on display to the entire dev community, but it turns out that it was completely organic. This was a trend that caught on thanks to social media sharing and algorithms.
Balancing Scale and Quality
One of the interesting corollaries of awesome-list adoption was the challenge in maintaining them. How does one ensure that the links are correct? How do you identify links that become broken over time?
This was something that the early adopters thought about, with Dotan of awesome-devenv sharing an article at the end of 2015 explaining how he used Travis CI to automatically review and validate awesome list content.
Why âawesomeâ?
As we referenced at the beginning of this article, Jamie York used the word âawesomeâ to describe the very first awesome-list: âHere's some awesome PHP libraries that are awesome. Yes, so awesome I've used the word three times! You should be using them already:â
Awesome was used as an emotional measure of how delightful a resource of piece of content was. If it wasnât delightful, then it didnât belong on the list. The word âawesomeâ captured the ethos of the awesome-list movement and solidified the key distinction between collection and curation. The objective was to curate only the best content, and leave the other stuff out.
As Sindre Sorhus puts it in his contribution guidelines:
[Make sure the list] only has awesome items. Awesome lists are curations of the best, not everything.
Closing Thoughts
The rest, as they say, is history. Awesome lists are here to stay as an important part of GitHub culture. Collectively, these projects have gained millions of GitHub stars and they hav proven to be a valuable set of resources for the dev community and beyond.
The prolific growth of the awesome-list trend highlights the value of thoughtful content curation, and emphasizes the collaborative nature of open source.
You're awesome for sticking around until the end! If you've already come this far and have an extra 8 seconds to spare, Iâd appreciate it if you would give awesome-opensearch a star!
Thank you!
I'm Zevi, a global marketing and growth advisor. I help early-stage companies become awesome with their organic growth.
If you're looking for more amazingly genius growth and marketing wisdom - subscribe to my Growth Notes (launching soon).
Top comments (0)