# Contributing

Thank you for helping keep this collection small, sharp and useful.

## Every resource must be

- **Legitimately free.** State the access precisely: `Free`, `Free to audit`, `Open access`, or `Free tier`.
- **High quality.** Would you recommend it to a friend?
- **Relevant** to the subject page it is on.
- **Accessible.** The link works and needs no unusual barriers.
- **Clearly described.** Concise, useful, honest.
- **Properly linked** to the official or author-hosted source.

## The 3–5 rule

Each subject gets about **3–5 entries per relevant resource type**. This is a *curation limit*, not a target. Two excellent resources beat five mediocre ones. If you want to add a sixth, propose which one it should replace.

Not every type belongs on every page. Do not add research papers to a Python page.

## Entry template

```markdown
### Resource Title
**Type:** University course
**Access:** Free
**Level:** Beginner → Intermediate
**Format:** Lectures + notes + exercises
Short explanation of what the resource teaches.
**Best for:** Who should use it.
**Prerequisites:** What to know first.
[Open resource →](URL)
```

## Rejected

- Pirated books, stolen PDFs, torrents, cracked courses, unauthorized mirrors
- Dead links
- Spam and affiliate links
- Duplicates
- Low-quality or link-dump collections
- Resources that are only partly free but labeled as free

## Assets

Only add images or GIFs that are original, public domain, or under a permissive license. Record source and license in [assets/README.md](assets/README.md). Do not commit copyrighted movie or meme GIFs.

## Pull request checklist

- [ ] I opened the link and it works
- [ ] Access label is accurate
- [ ] Not a duplicate
- [ ] Fits the page and stays within the 3–5 limit
