# Main Categories Present in the Sindresorhus/Awesome List: A Complete Overview

> Explore the sindresorhus awesome list's 27 main categories for curated dev resources. Discover Platforms, Programming Languages, Front-End Dev, Computer Science and more in this complete overview.

- Repository: [Sindre Sorhus/awesome](https://github.com/sindresorhus/awesome)
- Tags: overview
- Published: 2026-07-07

---

**The sindresorhus/awesome repository organizes curated development resources into 27 top-level categories including Platforms, Programming Languages, Front-End Development, and Computer Science, all anchored in the Contents section of README.md.**

The sindresorhus/awesome list serves as the definitive directory for high-quality open-source resources across the technology landscape. Understanding the main categories present in this repository allows developers to quickly locate relevant tools, frameworks, and learning materials without sifting through unstructured results. Each category functions as a curated gateway to specialized awesome lists maintained by domain experts.

## The 27 Top-Level Categories in sindresorhus/awesome

The repository's [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md) file defines a hierarchical organization system that segments thousands of resources into logical disciplines. According to the source code analysis of the `main` branch, the following categories comprise the complete taxonomy:

- **Platforms** – Operating systems and runtime environments
- **Programming Languages** – Language-specific ecosystems and tools
- **Front-End Development** – Client-side frameworks and UI libraries
- **Back-End Development** – Server-side technologies and APIs
- **Computer Science** – Theoretical foundations and algorithms
- **Big Data** – Data processing and analytics frameworks
- **Theory** – Computational theory and formal methods
- **Books** – Recommended reading and educational resources
- **Editors** – Development environments and text editors
- **Gaming** – Game development engines and assets
- **Development Environment** – Tooling and workflow optimization
- **Entertainment** – Media and leisure-related development projects
- **Databases** – Data storage and management systems
- **Media** – Audio, video, and graphics processing
- **Learn** – Educational resources and tutorials
- **Security** – Cryptography and cybersecurity tools
- **Content Management Systems** – Publishing and content platforms
- **Hardware** – Embedded systems and IoT resources
- **Business** – Enterprise and startup tools
- **Work** – Productivity and career resources
- **Networking** – Communication protocols and infrastructure
- **Decentralized Systems** – Blockchain and distributed technologies
- **Health and Social Science** – Healthcare and research computing
- **Events** – Conferences and community gatherings
- **Testing** – Quality assurance and automation frameworks
- **Miscellaneous** – Uncategorized but valuable resources
- **Related** – External meta-lists and companion resources

Each entry in the Contents section links directly to an anchor within the document, creating navigable sections that aggregate related awesome lists.

## How Categories Are Structured in README.md

In the [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md) file, the category hierarchy begins with the **Contents** section, which serves as the primary navigation interface. This section uses markdown headers to define category boundaries, with each top-level category rendered as a linkable anchor.

The structure follows a consistent pattern: the Contents section lists all categories as bullet points, followed by detailed sections for each category containing the actual curated links. This separation allows both quick scanning and deep exploration of resources.

## Key Repository Files

The sindresorhus/awesome repository maintains several critical files that govern category organization and contribution guidelines:

| File | Purpose |
|------|---------|
| [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md) | Central documentation containing the table of contents and all category sections |
| [`awesome.md`](https://github.com/sindresorhus/awesome/blob/main/awesome.md) | Defines the "awesome list" concept and links back to the main README |
| [`contributing.md`](https://github.com/sindresorhus/awesome/blob/main/contributing.md) | Guidelines for proposing new categories or adding resources to existing ones |
| [`create-list.md`](https://github.com/sindresorhus/awesome/blob/main/create-list.md) | Instructions for authors creating derivative awesome lists |

These files collectively ensure that the category structure remains consistent and that new contributions align with the repository's organizational standards.

## Programmatically Extracting Category Data

Developers can programmatically retrieve the main categories present in the sindresorhus/awesome list using Node.js to parse the raw README content. The following script extracts category names from the Contents section:

```javascript
import https from 'https';
import { JSDOM } from 'jsdom';

const url = 'https://raw.githubusercontent.com/sindresorhus/awesome/main/README.md';

https.get(url, res => {
  let data = '';
  res.on('data', chunk => (data += chunk));
  res.on('end', () => {
    const doc = new JSDOM(data).window.document;
    const contentHeader = [...doc.querySelectorAll('h2')]
      .find(h => h.textContent.trim() === 'Contents');
    const categories = [];
    
    if (contentHeader) {
      let node = contentHeader.nextElementSibling;
      while (node && node.tagName !== 'H2') {
        if (node.tagName === 'UL') {
          // The categories appear as bullet points after the "## Contents" heading

          node.querySelectorAll('li > a').forEach(a => 
            categories.push(a.textContent.trim())
          );
        }
        node = node.nextElementSibling;
      }
    }
    console.log('Main categories:', categories);
  });
}).on('error', err => console.error(err));

```

This implementation fetches the raw markdown, converts it to a DOM representation, and traverses the sibling elements following the Contents header to extract category anchor text.

## Summary

- The sindresorhus/awesome repository contains **27 top-level categories** ranging from Platforms to Related resources.
- All categories are defined in the **Contents section** of [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md) and serve as anchor points for detailed resource lists.
- The category structure covers the full spectrum of software development, including **Programming Languages**, **Computer Science**, **Security**, and **Decentralized Systems**.
- Four key files govern the repository structure: [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md), [`awesome.md`](https://github.com/sindresorhus/awesome/blob/main/awesome.md), [`contributing.md`](https://github.com/sindresorhus/awesome/blob/main/contributing.md), and [`create-list.md`](https://github.com/sindresorhus/awesome/blob/main/create-list.md).
- Categories can be programmatically extracted using standard HTTP requests and HTML parsing libraries.

## Frequently Asked Questions

### How many main categories are in the sindresorhus/awesome list?

The repository currently maintains **27 top-level categories** spanning diverse technology domains. These include 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.

### Where are the category definitions located in the repository?

Category definitions reside exclusively in the **Contents section** of [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md) at the repository root. This section serves as the table of contents, with each category name linking to an in-document anchor that precedes the corresponding curated list. The [`awesome.md`](https://github.com/sindresorhus/awesome/blob/main/awesome.md) file provides definitional context but does not contain the actual category enumeration.

### Can I programmatically fetch the list of categories without manually parsing the README?

Yes. You can retrieve the raw [`README.md`](https://github.com/sindresorhus/awesome/blob/main/README.md) content via the GitHub raw content URL and parse the markdown structure using libraries like `jsdom` for Node.js or similar HTML/markdown parsers in other languages. The script traverses the DOM elements following the "Contents" header to extract the text of each category link, yielding the complete taxonomy without manual intervention.

### How are new categories added to the sindresorhus/awesome repository?

New categories follow the guidelines outlined in [`contributing.md`](https://github.com/sindresorhus/awesome/blob/main/contributing.md). Proposals must demonstrate sufficient ecosystem maturity and available curated resources to populate the category. The category structure emphasizes quality over quantity, requiring that new sections contain substantial, well-maintained awesome lists rather than ephemeral or narrowly scoped collections.