explaingit

hackergrrl/art-of-readme

7,151Audience · developerComplexity · 1/5Setup · easy

TLDR

A long-form essay explaining how to write a great README for a software project, covering what to include, how to structure it, and why good documentation is the single most important thing you can do for your project's adoption.

Mindmap

mindmap
  root((art-of-readme))
    Core Argument
      README is most important doc
      First impression matters
    What READMEs Need
      What and why
      Usage examples
      Install instructions
    Common Mistakes
      No README at all
      Missing examples
      Buried purpose
    Audience
      Open source authors
      Documentation writers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Read before writing a README for a new open-source project to understand what sections to include and how to order them.

USE CASE 2

Share with a teammate who writes READMEs that bury the lead or skip usage examples.

USE CASE 3

Use as a checklist when reviewing pull requests that add or update project documentation.

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

This repository is an essay, not a code library. It is a long-form article about how to write a good README file for a software project. The author, writing primarily from the perspective of the Node.js module ecosystem, makes the case that the README is the single most important document a project has: it is almost always the first thing a user or potential contributor reads, and for many projects it may be the only thing they read before deciding whether to use it or move on. The article opens with a short history of where the term README comes from, tracing it back to at least the 1970s and noting that the convention of writing it in all-caps helped it sort to the top of directory listings on early UNIX systems. It then discusses the state of the Node.js package ecosystem, where tens of thousands of modules exist but quality of documentation varies widely. A module with no README, or with documentation that does not clearly explain what the module does and how to use it, forces the reader to dig through source code to figure things out, which defeats the purpose of publishing it as a reusable piece of software. The author lays out a clear framework for what a README should do: explain what the project is and why it exists, show what it looks like when used, demonstrate how to actually use it, and cover any other details a reader would need. The article also recommends keeping READMEs concise, saving detailed reference material for separate documentation pages rather than packing everything into one long file. The essay is translated into Chinese, Japanese, Portuguese, Spanish, German, French, and Traditional Chinese. It has no runnable code and is purely a guide for developers who want to write documentation that actually helps their users.

Copy-paste prompts

Prompt 1
Based on the principles in art-of-readme, review my project's README and tell me what's missing or unclear: [paste README here].
Prompt 2
I'm writing a README for my first open-source npm package. Using the art-of-readme framework, outline the sections I should include and what each one should say.
Prompt 3
My README is getting too long. Based on art-of-readme's advice on keeping docs concise, help me identify what to move to a separate docs page.
Prompt 4
Write a README template for a Node.js CLI tool following the structure recommended in art-of-readme.
Open on GitHub → Explain another repo

← hackergrrl on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.