A practical mental model
  1. 01Inspect the source
  2. 02Check the renderer
  3. 03Verify the destination

Each step answers a different question. Verify the final document in its actual destination.

A project README is an entry point, not a complete manual. Put the project's purpose, a working first-run path, the main usage example, and support or contribution links near the top. Move detailed design notes into a docs folder and link them from the README.

Copy the README template

Keep only sections that apply. Replace every placeholder and test each command or link before publishing.

# Project name

One sentence: what this project does and who it helps.

## Why this project?
Describe the problem and what makes this repository useful.

## Features
- List capabilities that exist in the current release.
- Link to detailed docs for complex behavior.

## Requirements
- Runtime and version
- Required service or account, if any

## Quick start
1. Install the actual dependencies.
2. Run the tested command.
3. Open the expected URL or output file.

## Usage
Show the smallest useful example and explain its expected result.

## Configuration
List supported settings. Never paste real credentials here.

## Limitations
Describe known constraints readers should understand before use.

## Contributing
Explain how to report issues, propose a change, and run checks.

## License
Name the license and link to the repository's license file.

Choose a useful order

Lead with the outcome and a fast way to try it. A visitor should not have to scroll past a long changelog, a wall of badges, or a contributor policy before learning what the project is. Consider this order:

  1. Purpose: a direct description in ordinary language.
  2. First useful action: install, open, or run one tested example.
  3. What it can do: a short list backed by the current code or release.
  4. Next steps: links to full docs, examples, API reference, or roadmap.
  5. Trust and participation: limitations, license, support, and contribution guidance.

GitHub surfaces a README from the repository's root, .github, or docs directory, with a documented precedence when several exist. GitHub also renders Markdown with its own supported syntax. If the README needs to work in other viewers, avoid relying on extensions that those renderers may not implement.

Keep project claims accurate

  • Use badges only when the status behind them is current and the badge destination is real.
  • Do not promise an install command, supported platform, performance result, or compatibility level that you have not tested.
  • Label beta features and known limitations where a new user will see them.
  • Use a screenshot only when it shows the current interface and has useful alternative text.
  • Keep setup steps synchronized with package scripts, release files, and CI.

If a README contains a complicated workflow, link to a full guide and keep a short happy path here. A smaller verified quick start is more useful than a long list of stale commands.

Check Markdown portability

Basic headings, paragraphs, lists, links, and fenced code are widely supported. Tables, task lists, alerts, footnotes, math, and diagrams can be implementation-specific. Preview the file in the place where readers will use it. For a syntax-by-syntax explanation, see the Markups Markdown guide and Compatibility Lab.

GitHub can generate a navigation table of contents from headings in its rendered Markdown view. If readers use another platform, an explicit linked table of contents may still be appropriate. Test internal anchors because heading slug rules differ among renderers.

Sources