Beyond Awesome Lists

What is an Awesome list?

An Awesome List is a community curated list of code projects within a specific domain, application, or use case. You can read more in the “Awesome Manifesto” on sindresorhus/awesome.

What Makes Awesome Lists so Successful?

This is mostly guesswork on my part, but I’d say the success of the “Awesome List” form is some combination of the following characteristics:

  1. Easy to start (Start a repository with a single README.md file)
  2. Easy to contribute to (Edit a single line in a markdown file)
  3. Fills a need (Every developer searches for new code tools)
  4. Builds a community (They have a very large number of contributors. People come back to check the list from time to time. People send links to it to others.)

What do Awesome Lists Not do Well?

As a curated list, they provide a signal of potential value. To be included on an Awesome List, someone has to say a project is “Awesome”.

  1. How popular each code project is?
  2. Is the rate this new code project is growing in popularity unusual relative to similar code projects in the past?
  3. What code projects are used by other code projects within the domain space as a dependency and therefore you might want to learn about?
  4. What code projects share dependencies and probably do related things?
  5. What code projects share contributors?
  6. What organizations own the most code projects in that domain/problem/solution space?

Lawerence Livermore National Laboratory’s Software Catalog’s Explore Pages

A great example of harvesting this type of metadata using GitHub’s API and turning it into insightful visualizations is the explore section of Lawerence Livermore National Laboratory’s Software (LLNL) Catalog.

Images from the Explore Section of the website.

Beyond “curated list” and into “community level view”

Additional Questions that Could be Answered that Would “Nudge” Developers

As you might have already concluded from the questions that the visualizations help answer above, visualizing these type of information can nudge developers in ways the help direct development activity. This means visualizing the community of open source subsurface geoscience code has the potential to change how it develops in small ways. Thinking about it in this framing also helps suggest what future visualizations might have value.

The tech stack to get “Community Level View” from “Curated List”

So is this code at a place where anyone with an Awesome List, software catalog, or other type of list of repositories could easily re-run and deploy their own version?

  1. An Awesome List scrapper to pull out GitHub repository links. [No work done on this yet]
  2. A GitHub Actions script to do number 2 above and popular the input_list.json file of all the repositories to be visualized. This could be scheduled to check for updates on some interval. [No work done on this yet]
  3. Documentation for how to easily add new or update existing visualizations in the explore section pages, such that changes can be easily integrated into already deployed forks. [No work done on this yet]
  4. Remove more of the list specific content in HTML and Markdown files and have it instead be populated programmatically from the key:value pairs in the _config.yml file in order to get the initial deployment down to a couple hours from several days. [This is 50% complete.]

How You Can Contribute

This post shared a half-formed idea and working prototype, not a polished easily reusable product. If the idea of an Awesome List add-on that creates visualizations of an open source community interests you and you’d like to contribute, check out this issue on the original LLNL repository or this markdown files on current and future changes in my repository. You might also appreciate this slide pack on Observeablehq.com. It talks about some of the potential benefits from a slightly different angle.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Justin Gosses

Justin Gosses

Geology, Space, Maps, Machine-Learning, Data Visualization. Traded figuring things out for building new things.