Crafting Effective READMEs
Overview
READMEs answer questions your audience will have. Different audiences need different information - a contributor to an OSS project needs different context than future-you opening a config folder.
Always ask: Who will read this, and what do they need to know?
Process
Step 1: Identify the Task
Ask: "What README task are you working on?"
| Task | When |
|---|---|
| Creating | New project, no README yet |
| Adding | Need to document something new |
| Updating | Capabilities changed, content is stale |
| Reviewing | Checking if README is still accurate |
Step 2: Task-Specific Questions
Creating initial README:
- •What type of project? (see Project Types below)
- •What problem does this solve in one sentence?
- •What's the quickest path to "it works"?
- •Anything notable to highlight?
Adding a section:
- •What needs documenting?
- •Where should it go in the existing structure?
- •Who needs this info most?
Updating existing content:
- •What changed?
- •Read current README, identify stale sections
- •Propose specific edits
Reviewing/refreshing:
- •Read current README
- •Check against actual project state (package.json, main files, etc.)
- •Flag outdated sections
- •Update "Last reviewed" date if present
Step 3: Always Ask
After drafting, ask: "Anything else to highlight or include that I might have missed?"
Project Types
| Type | Audience | Key Sections | Template |
|---|---|---|---|
| Open Source | Contributors, users worldwide | Install, Usage, Contributing, License | templates/oss.md |
| Personal | Future you, portfolio viewers | What it does, Tech stack, Learnings | templates/personal.md |
| Internal | Teammates, new hires | Setup, Architecture, Runbooks | templates/internal.md |
| Config | Future you (confused) | What's here, Why, How to extend, Gotchas | templates/xdg-config.md |
Ask the user if unclear. Don't assume OSS defaults for everything.
Essential Sections (All Types)
Every README needs at minimum:
- •Name - Self-explanatory title
- •Description - What + why in 1-2 sentences
- •Usage - How to use it (examples help)
References
- •
section-checklist.md- Which sections to include by project type - •
style-guide.md- Common README mistakes and prose guidance - •
using-references.md- Guide to deeper reference materials