README Structure¶
A well-structured README is the front door to any project. Follow this ordering for maximum clarity.
Essential Sections (in order)¶
- Title and Description — One sentence explaining what the project does. No jargon in the first paragraph.
- Badges — Build status, version, license, coverage. Keep to 4-6 maximum.
- Table of Contents — Required for READMEs longer than 100 lines.
- Installation — Copy-pasteable commands. Cover all supported platforms. Include prerequisites.
- Quick Start / Usage — The shortest path from install to working example. Under 10 lines of code.
- API Reference — Or link to full API docs. Include the most-used functions inline.
- Configuration — Environment variables, config files, CLI flags. Use tables.
- Examples — Real-world use cases beyond the quick start. Link to example directory if extensive.
- Architecture — High-level diagram or description for contributors. Can link to ARCHITECTURE.md.
- Contributing — Or link to CONTRIBUTING.md. Include setup instructions for development.
- License — State the license and link to LICENSE file.
- Changelog — Or link to CHANGELOG.md.
README Anti-Patterns¶
- Wall of text with no headings
- Installation instructions that assume specific OS
- Examples that reference files not in the repo
- Badges that point to broken CI pipelines
- "TODO" placeholders left in published README
- Version numbers hardcoded in multiple places
- Screenshots from 3 versions ago