How to Write a Good README.md — The Complete Guide

Your README is the single most important file in your repository. It's the first thing potential users, contributors, and employers see. A great README turns visitors into users. A bad one — or no README at all — sends them elsewhere.

The essential sections (in order)

1. Project title and description

One line that explains what your project does. Not how it works, not what technologies it uses — what problem it solves.

Bad: “A Next.js application built with TypeScript, Tailwind CSS, and Supabase.”

Good: “Generate professional README files for any GitHub repository in seconds.”

2. Badges

Build status, version, licence, test coverage. Badges signal that the project is maintained and professional. Check our badges guide for details.

3. Screenshot or demo

A screenshot or GIF is worth a thousand words of documentation. Show the tool in action. If it's a CLI, show terminal output. If it's a web app, show the UI.

4. Quick start

Get the user from zero to running in the fewest steps possible. This should be copy-pasteable:

  • Installation command
  • Minimum configuration
  • First run command

If your quick start is more than 5 steps, your setup is too complex. Simplify the defaults or provide a Docker option.

5. Usage examples

Show the most common use cases with actual code. Not contrived examples — real scenarios that real users will encounter. Include expected output where helpful.

6. API reference or configuration

For libraries: document every public function, its parameters, and return values. For tools: list every configuration option with defaults. Tables work well here.

7. Contributing

If you want contributions, make it easy. Link to a CONTRIBUTING.md with setup instructions, coding standards, and PR process. If you don't want contributions, say so — it saves everyone time.

8. Licence

State the licence clearly. Link to the full LICENCE file. If people can't quickly confirm they can use your code, they won't.

Common mistakes

  • Tech stack as description — Nobody cares that you used React. They care what the tool does for them.
  • No installation instructions — “Clone the repo and run it” is not enough. What dependencies? What Node version? What environment variables?
  • Outdated examples — Nothing kills trust faster than code examples that don't work. Test your README examples as part of your CI.
  • Wall of text — Use headings, code blocks, and lists. Developers scan, they don't read paragraphs.

What top repos get right

Look at repos with 10k+ stars. They almost always have:

  • A one-line description that sells the benefit
  • A hero image or demo GIF
  • A “try it now” that takes under 30 seconds
  • Comprehensive but scannable documentation
  • Active badges showing the project is alive

Generate a README automatically

README Writer analyses your GitHub repo and generates a professional README with all the right sections. Paste a URL, get a README.

Generate README →