Open-source project
sindresorhus/awesome avatar
sindresorhus/awesome

sindresorhus/awesome: the index of awesome lists, and how to actually use it

😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]

511,903 stars37,151 forksUnknownCC0-1.0

At a glance

What is it?
The sindresorhus/awesome repository is a curated index of curated lists, not a software package. It is a single readme that links out to hundreds of topic lists, licensed CC0-1.0, with the last push on 2026-09-02.
Who is it for?
Adopt it as a discovery layer when you are starting a topic from zero and want a maintained pointer to lists that others already curate. Do not adopt it if you need a package, an API, or a guarantee that every link inside a linked list still works; the repository holds no code and does not verify third-party lists.
Can I use it commercially?
Yes. CC0-1.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 27 days ago.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What sindresorhus/awesome actually is, and who it is for

This repository is an index of indexes. The readme is a categorized table of contents that points to other GitHub repositories, each of which is itself a curated list on one topic: Node.js, iOS, Android, Electron, React Native, AWS, Raspberry Pi, Home Assistant, and so on. The repository contains no runtime, no library and no CLI. Its top-level entries are documents: readme.md, awesome.md, contributing.md, create-list.md, code-of-conduct.md, license, media/, and GitHub metadata files such as .github/, pull_request_template.md, .editorconfig and .gitattributes.

The audience is therefore narrow and specific. It suits an engineer who has just picked up a topic and wants a starting set of links that someone else already filtered, rather than a search engine result page. It also suits list maintainers, because the repository defines what an awesome list is and how to create one, via awesome.md and create-list.md. It does not suit anyone looking for a dependency to add to a build file, and it does not suit anyone who needs the linked material to be current, because the index only records that a list exists, not that its entries still resolve.

How the index is organized and how entries get in

The mechanism is a hand-edited markdown file. The readme opens with a Contents block that links to sections such as Platforms, Programming Languages, Front-End Development, Back-End Development, Computer Science, Big Data, Theory, Books, Editors, Gaming, Development Environment, Entertainment, Databases, Media, Learn, Security, Content Management Systems, Hardware, Business, Work, Networking, Decentralized Systems, Health and Social Science, Events, Testing, Miscellaneous and Related. Under each heading, entries are markdown links to other repositories, usually with a one-line description. Nesting is used for subcategories: under Linux there are entries for Containers, eBPF, Arch-based Projects, AppImage and Omarchy; under macOS there are Screensavers, Apps and Open Source Apps; under .NET there are Core and Roslyn.

The important design choice is that the list is a pointer, not a mirror. Nothing is vendored, so the index stays small and the content lives with the community that maintains it. The cost of that choice is that the index cannot enforce anything about the targets. A linked list can go stale, change scope, or stop accepting contributions, and the readme will keep linking to it until someone edits the readme. The repository does publish a contribution guide and a code of conduct, and it carries a pull_request_template.md, so there is a review process, but the readme itself states that pull requests are temporarily disabled until the maintainer catches up with existing ones. Plan around that if you intend to submit an entry.

Reading the index: nothing to install, just the readme

There is nothing to install. The project's own framing is that you type awesome.re to reach the page, and the readme links to its own documents for contributors. The practical first step is to read the index in a browser, where the Contents block and the category headings let you jump to a topic. The readme also offers an RSS feed for commits, linked as Subscribe (RSS) at the top.

The readme itself is the only artifact you need. It links to four companion documents: awesome.md, described as What is an awesome list?, contributing.md, the Contribution guide, create-list.md, Creating a list, and code-of-conduct.md. If you are evaluating whether a topic is worth entering, read awesome.md first, because it is the document that defines the criteria a list has to meet; create-list.md is the companion for starting one.

The repository is a git repository, so a local copy is a clone away for anyone who prefers to read the markdown offline or keep it beside other notes. The default branch is main, and the top-level entries visible in the repository are .editorconfig, .gitattributes, .github/, awesome.md, code-of-conduct.md, contributing.md, create-list.md, license, media/, pull_request_template.md and readme.md. Nothing in that list is executable, and no release artifacts are published.

Where it breaks down: stale links, scope drift, and no verification

The index has no mechanism to check that a linked list is alive, that its entries still resolve, or that it still matches the topic it was filed under. It records a link and a description. Everything past that point is the responsibility of the sub-list maintainer, who may have stopped working on it years ago. If you need a resource that is known to be current, this repository is the wrong tool: it is a starting point for a search, not a substitute for one.

Scope drift is the second failure mode. A list filed under one heading can gradually accumulate entries that belong elsewhere, and the index's one-line description will not reflect that. The readme does not document any automated validation of linked lists, and no release artifacts are published, so there is no versioned snapshot you can pin to. The only stable identifier is the repository itself at a given commit.

The third constraint is contribution throughput. The readme states plainly that pull requests are temporarily disabled until the maintainer catches up with the existing queue. If your goal is to get a list indexed, that is a real blocker rather than a matter of following the template correctly. The template and the contribution guide exist, but the intake is paused.

Alternatives and how they differ in approach

The closest structural alternative is to skip the index and use GitHub topic pages or a search engine, which invert the model: instead of a human curating a link to a curated list, the platform ranks repositories by its own signals and the reader filters. The difference matters when a topic is new or niche, because ranking has little to work with; a human index can point you at a small list that search would bury.

A second alternative is to maintain your own short list of bookmarks or a private markdown file. That gives you control over scope and freshness, and it costs you the cross-checking that comes from many contributors. The trade-off is maintenance: the index spreads the cost of curation across the maintainers of each sub-list, while a personal file concentrates it on you.

A third option is to read the sub-lists directly and ignore the index. This works once you already know which community owns a topic, for example going straight to a Node.js list rather than through the Platforms section. The index is most valuable exactly when you do not yet know which sub-list exists, which is why its category structure is the part worth reading.

Licence, maintenance and the cost of following it

The repository is licensed CC0-1.0, which places the work in the public domain to the extent the licence permits. That is permissive for reuse of the index text, but it applies to this repository only. Each linked list carries its own licence, and the index does not summarize those. If you intend to copy entries from a sub-list into your own documentation, check that sub-list's licence separately; CC0-1.0 here tells you nothing about the targets. This is a description of the licence identifier, not legal advice.

Maintenance is best judged by the commit stream rather than by the folder structure. The last push to the default branch was on 2026-09-02, and the repository is not archived. There are no releases, so there is no version to upgrade and no migration path to plan. Upgrading means pulling the readme again and re-reading the section you care about, which is cheap. The real ongoing cost is the attention you spend checking whether a linked list is still maintained, because that check is manual and the index does not do it for you.

Editorial conclusion

Adopt it as a discovery layer when you are starting a topic from zero and want a maintained pointer to lists that others already curate. Do not adopt it if you need a package, an API, or a guarantee that every link inside a linked list still works; the repository holds no code and does not verify third-party lists. Before you rely on it, read awesome.md for the inclusion criteria, check contributing.md for the current pull request status, and open the specific sub-list you care about to see whether it has been touched recently.

Frequently asked questions

How do I use sindresorhus/awesome?

Read the readme as an index: it groups links to other curated lists by category, from Platforms and Programming Languages to Security and Testing. Follow the link for your topic, and use awesome.md and create-list.md if you want to understand the criteria behind the lists.

Is there anything to install for sindresorhus/awesome?

No. The repository contains documents, not software: readme.md, awesome.md, contributing.md, create-list.md, code-of-conduct.md, license and media/. If you want a local copy you clone the repository and read the markdown.

Can I submit my own list to sindresorhus/awesome?

The readme states that pull requests are temporarily disabled until the maintainer catches up with the existing ones. The contribution guide and pull request template are present, but intake is paused, so a correctly formatted submission may still wait.

What licence does sindresorhus/awesome use?

The repository is licensed CC0-1.0. That covers this index only; each linked list has its own licence, which the index does not restate.

Official sources

  1. Issues
  2. License: CC0-1.0
  3. README
  4. sindresorhus/awesome on GitHub
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/sindresorhus-awesome.svg)](https://hysenlabs.com/projects/sindresorhus-awesome)
Community notes

Community notes