# How to Handle Free Resources That Require Email Signup in free-programming-books

> Learn how to handle free resources that require email signup for the free-programming-books repository. Discover the specific guidelines for contribution to ensure acceptance.

- Repository: [Free Ebook Foundation/free-programming-books](https://github.com/EbookFoundation/free-programming-books)
- Tags: how-to-guide
- Published: 2026-02-23

---

**Resources that require an email address are accepted in the free-programming-books repository only when contributors append a parenthetical note specifying whether the email is requested or required.**

The EbookFoundation/free-programming-books repository maintains strict guidelines to ensure transparency about access requirements. When curating educational materials, contributors must clearly identify resources that gate content behind email signup or account creation. Understanding how to properly handle free resources that require email signup ensures your submissions meet the repository's quality standards and help users make informed decisions.

## Contribution Guidelines for Email-Required Resources

The definitive policy resides in [`docs/CONTRIBUTING.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/docs/CONTRIBUTING.md), which mandates explicit disclosure of any email or account requirements. According to the source code documentation, links to pages requiring an email address are permitted **only if** accompanied by a standardized parenthetical note.

The guidelines recognize two distinct categories:

- **Email requested** – Optional signup where the resource remains accessible without providing an email
- **Email required** – Mandatory signup or account creation necessary to access content

This distinction allows readers to quickly assess whether they can access materials immediately or must complete a registration step first.

## How to Format Entries with Signup Requirements

When adding resources to lists such as [`more/problem-sets-competitive-programming.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/more/problem-sets-competitive-programming.md) or [`books/free-programming-books-subjects.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-subjects.md), follow the exact notation patterns established in the contribution guidelines.

### Optional Email Requests

For resources where an email address is solicited but not mandatory, use the format `*(email address *requested*, not required)*`.

```markdown
* [Data brokering with Node.js: Process data at the speed of technology](https://heynode.com) – Osio Labs Inc. *(email address *requested*, not required)*

```

This notation, as implemented in the repository's linter rules, signals to readers that they can bypass the signup prompt if desired.

### Mandatory Email Requirements

When access depends entirely on providing an email or creating an account, indicate this restriction using `*(email address *required*)*` or similar explicit language.

```markdown
* [GitHub Learning Lab – Communicating using Markdown](https://lab.github.com/githubtraining/communicating-using-markdown) – GitHub Learning Lab *(GitHub account or email address required)*

```

The [`free-programming-books-subjects.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/free-programming-books-subjects.md) file demonstrates this pattern extensively with Leanpub resources using the note `*(Leanpub account or valid email requested)*`.

### Incorrect Formatting

Entries lacking the parenthetical note will be flagged during the contribution review process. For example, this entry would be rejected:

```markdown
* [Some Free Resource](https://example.com) – Provider

```

The absence of signup requirement disclosure violates the transparency standards defined in [`docs/CONTRIBUTING.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/docs/CONTRIBUTING.md).

## Summary

- **Parenthetical notes are mandatory** for any resource requiring email signup or account creation, as specified in [`docs/CONTRIBUTING.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/docs/CONTRIBUTING.md).
- **Distinguish between requested and required** email addresses using the exact phrasing: `email address *requested*, not required` versus `email address *required*`.
- **Apply consistent formatting** across all localized versions of the repository, including French, Spanish, and Korean contribution guides.
- **Reference existing examples** in [`more/problem-sets-competitive-programming.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/more/problem-sets-competitive-programming.md) and [`books/free-programming-books-subjects.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-subjects.md) for proper syntax.

## Frequently Asked Questions

### Are resources that require email signup allowed in free-programming-books?

Yes, but only when the requirement is explicitly disclosed. The repository accepts email-gated resources provided contributors append the standardized parenthetical note describing the signup requirement. This policy balances access to valuable educational content with transparency about access barriers.

### What is the exact format for noting email requirements?

Use parentheses immediately following the resource title and author, containing one of these phrases: `*(email address *requested*, not required)*` for optional signups, or `*(email address *required*)*` for mandatory registration. Variations like `*(GitHub account or email address required)*` are also acceptable when they clearly communicate the access prerequisite.

### Where can I find examples of correctly formatted entries?

Examine [`more/problem-sets-competitive-programming.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/more/problem-sets-competitive-programming.md) for numerous instances of `*(email address *requested*)*` annotations, or review [`books/free-programming-books-subjects.md`](https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-subjects.md) to see how Leanpub listings use `*(Leanpub account or valid email requested)*`. These files demonstrate the live implementation of the contribution guidelines.

### Why does the repository require parenthetical notes for email signup?

The notation serves dual purposes: it enables readers to make informed decisions about which resources to pursue based on their privacy preferences, and it allows automated linting scripts to verify compliance with repository standards. This systematic approach maintains consistency across thousands of curated programming resources.