The Awesome repository is a community-curated directory of 'awesome lists' — categorized GitHub repositories that collect high-quality resources, tools, libraries, and learning materials for specific technologies and topics.
What is the Awesome repository?
The Awesome repository is a GitHub project maintained by Sindre Sorhus that aggregates hundreds of curated awesome lists on topics spanning programming languages, platforms, front-end and back-end development, computer science, security, gaming, media, and more. Each entry links to a separate awesome list repository that maintains its own README with hand-picked resources, so this repository functions purely as a central index. It takes links to individual lists as input and produces a navigable, categorized table of contents as output. The project also includes supporting documentation pages: "What is an awesome list?", a contribution guide, and a guide for creating new lists.
Key Features
- Categorized directory: The README organizes lists into 27 top-level sections, including 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.
- Nested sub-lists: Many categories contain deeper sub-lists; for example, JavaScript links to sub-lists for promises, npm, ESLint, functional programming, observables, and ponyfills, while Python includes asyncio and data science lists.
- Curated quality standards: The repository links to documentation that defines what an awesome list is and provides contribution guidance, implying a review process for accepted lists.
- Broad topical coverage: Entries range from mainstream ecosystems like Node.js, React, and Kubernetes to niche topics like esolangs, position-based quantum cryptography, and Omarchy (an Arch Linux desktop environment).
- Community funding and sponsors: Sindre Sorhus's open-source work is supported via GitHub Sponsors, and sponsor acknowledgements (Depot, Circleback) appear in the README.
- Shortcut URL: The project advertises awesome.re as a quick way to navigate to the repository.
Who should use the Awesome repository?
- Software developers: Find a starting point for any language or framework, from JavaScript and Python to Rust and Go, with lists linking to libraries, tools, and best practices.
- Students and self-learners: Use education-focused lists like Free Programming Books, Open Source Society University, and Learn to Program to structure self-study.
- Open-source maintainers: Follow the "Creating a list" guide to build a new curated list and the contribution guide to submit it to the directory.
- Technology enthusiasts: Explore niche interests such as game development, lockpicking, or esoteric programming languages through specialized awesome lists.
What can you do with the Awesome repository?
- Discover resources: Browse lists for platforms like iOS, Android, Electron, and Cloudflare, or for programming languages such as Haskell, Elixir, and Coq, each linking directly to a maintained resource collection.
- Learn new topics: Dive into curated learning paths like Machine Learning Tutorials, Deep Learning Papers, and Computer Science courses.
- Find tools and apps: Use lists such as Command-Line Apps, Quick Look Plugins, and macOS Apps to discover practical tooling for your development environment.
- Contribute your own list: If you maintain a high-quality list on a topic not yet covered, you can submit it following the contribution guide.
How does the Awesome repository work?
The repository is a single README file that groups links to individual awesome lists under category headings. Each linked list is its own GitHub repository with a README that gathers resources, tools, and references. To add a new list, a contributor reads the "Creating a list" guide, prepares their repository, and submits a pull request via the process described in the contribution guide. The repository itself does not host the resources — it only points to them.
