README Generator

Build the front page of a code project: what it does first, an example of using it second, badges further down where they belong, with a check for what you have left out. A reader decides in about ten seconds, which is why a table of contents at the top wastes them.

How to use it

You fill in the sections one at a time and they are assembled in the order a reader meets them, not the order you happened to write them.

  1. Write the one-liner The sentence that tells a stranger whether to keep reading.
  2. Show it in use One real command or snippet persuades more than three paragraphs of description.
  3. Save as README.md In the repository root, where every host renders it automatically.
Full instructions

In depth

Writing a README that gets read

Why reading order matters more than completeness, what each field in the generator does, how the audit catches the gaps that cost a project users, and a walk through building one from scratch.

Screenshot: What it is, then what it looks like
What it is, then what it looks like as it appears when the page opens.

Ten seconds to convince a stranger

A person lands on a repository for the first time. They see the README. In about ten seconds they decide whether to keep reading or move on. That is the entire window.

Most of those ten seconds are spent on the first two things they see. If the first thing is a row of badges and the second is a table of contents, the visitor has learned nothing about what the project does. They have seen a build status and a list of headings. Neither answers the question they came with.

A good README opens with what the project is and why it exists. Then it shows the project in use. Then it explains how to install it. Badges, contributing guidelines and licence details come after, when the reader has already decided to stay. This generator follows that order because it is the order that works.

The fields on the right

The side panel holds everything the generator needs. Name is the project name that appears as the top heading. One line is the single sentence that tells a stranger whether to keep reading. It appears directly under the heading and does the hardest job on the page.

Description is two or three sentences that expand on the one-liner. It answers why the project exists and who it helps. Usage example is a real command or code snippet. One real line of working code persuades more than three paragraphs of explanation.

Example language sets the syntax highlighting fence in the Markdown output. The choices are bash, js, python, ts, go, rust and plain. Pick the one that matches the snippet you wrote.

Installation holds the command someone runs to get the project. Features is a list with one item per line, turned into bullet points. Requirements lists things the project needs to be present before it will work, like a specific version of Node or Python.

Badges, author and licence

Repository URL is used to build badge links. If you fill it in with a GitHub URL, the badges point at the right place. If you leave it empty, the badges are skipped.

Author is the name that appears in the licence section at the bottom. Licence offers MIT, Apache 2.0, GPL 3.0, BSD 3-Clause or None. Picking None drops the licence section entirely, which the audit then flags as a problem.

The Include badges checkbox is on by default. When it is on, badges appear after the description, not before it. That placement is deliberate. A badge wall above the fold spends the reader's attention on build status when they have not yet learned what the project does.

Include a contributing section is also on by default. It adds a short section inviting pull requests and pointing at an issues page. For personal projects with no outside contributors, turning it off makes the README shorter without losing anything useful.

What the audit tells you

Below the generated output, an audit section checks for the omissions that hurt a project the most. It looks at what you filled in and what you left empty, and it tells you what is missing.

A missing licence is the most important warning. Without a licence, no one may legally use your code, regardless of what the README says. Open source only works when the terms are stated. The audit calls this out clearly.

A missing usage example is the next most common gap. People want to see the project in action before they read about it. A README that describes a tool without showing a single command or snippet leaves the reader guessing whether it fits their situation.

The audit does not force you to fill everything in. It only points out what a reader would miss. You decide which fields matter for your project.

Walking through a real example

Suppose you are documenting a small CLI tool that resizes images. You fill in the Name field with imgscale, the One line field with a sentence about batch resizing from the terminal, and the Description field with two sentences about supported formats and output quality settings.

In Usage example you write the command that resizes every PNG in a folder. Example language is set to bash. Installation says npm install -g imgscale. Features lists three items: batch processing, quality control and format conversion. Requirements says Node 18 or later.

You leave Repository URL set to the GitHub link, Author set to your name and Licence set to MIT. Badges and contributing are both checked.

The preview on the left updates as you type. The heading is imgscale. The one-liner sits under it. The usage block shows your command inside a fenced code block. Badges appear after the description. The licence section at the bottom names MIT and credits you. The audit shows no warnings.

Saving and using the output

Press Download to save the file as README.md. Put it in the root of your repository. Every major hosting platform - GitHub, GitLab, Gitea, Codeberg, npm - renders a file with that name automatically on the project page.

Press Copy to put the Markdown text on your clipboard. That is useful when you want to paste it into a pull request description, a wiki page or an issue template.

The output is plain GitHub-flavoured Markdown. It uses fenced code blocks, heading levels and bullet lists. No HTML, no custom extensions. It renders correctly everywhere without changes.

How long should a README be

Long enough that a stranger can use the project without asking you a question. That usually means less text than people fear. A one-page README that covers the what, the how and the licence is better than a ten-page document that nobody finishes.

If the API reference is short, include it. If it is long, move it to a separate docs folder or a wiki and link to it from the README. A README that scrolls for ten screens stops being a welcome page and starts being a reference manual.

A table of contents is rarely needed. For anything under about ten sections, it adds a full screen of scrolling and saves nobody any time. Most hosting platforms generate one from the headings anyway, so adding your own just doubles it.

Keeping the README in step with the code

A README written on day one and never touched again slowly becomes wrong. The installation command changes. A flag gets renamed. A dependency version requirement moves up. The README still describes the old world, and a newcomer follows the instructions straight into an error.

The simplest guard is to re-read your own README after any release. Run the installation command it describes on a clean machine. Try the usage example. If either fails, update the text before you announce the release. A README that works on every published version is one of the clearest signs that a project is maintained.

This generator does not solve that problem on its own. It gives you the first version. Keeping it honest is a habit, not a tool.

Mistakes that cost a project readers

  • Opening with badges. They answer a question nobody has asked yet.
  • Describing the project without showing it. A usage example does more than any amount of prose.
  • Forgetting the licence. This is a legal hole, not a style choice. Without a licence, the default in most places is that nobody may use or distribute the code.
  • Writing installation steps that assume the reader already knows which language and package manager the project uses. Name the tool and version.
  • Listing every feature the project will ever have instead of the ones it has now. A roadmap section is fine, but it should be separate from the features list.
  • Putting the contributing guide inline instead of in a CONTRIBUTING.md file. A long contribution guide pushes the rest of the README below the fold.

Assembled on your own device

The generator runs entirely in your browser. The project name, description and code snippets you type are never sent anywhere. There is no account, no storage on a remote server, and no copy saved once you close the tab.

That is worth noting because project details can be sensitive before a launch. A product name, an internal API path in a usage example, or a deployment command that names an internal host - none of it leaves the page.

Help

What it is, then what it looks like

You fill in the sections one at a time and they are assembled in the order a reader meets them, not the order you happened to write them. What is missing is flagged before you copy the file out — a missing licence section first, since that is the omission that stops anyone else using the code.

Write the one-liner

The sentence that tells a stranger whether to keep reading.

Show it in use

One real command or snippet persuades more than three paragraphs of description.

Save as README.md

In the repository root, where every host renders it automatically.

Markdown, rendered everywhere

The output is plain GitHub-flavoured Markdown, which renders on GitHub, GitLab, Gitea, Codeberg and npm without change.

Good to know

Badges go after the description

Not before. A wall of badges above the fold spends the reader's attention on build status rather than on what the project is.

Say what the licence is

Without one, nobody may legally use your project — whatever the README implies.

Skip the table of contents

For anything under about ten sections it adds a screen of scrolling and saves nobody any time. Hosts generate one from the headings anyway.

Common questions

How long should a README be?
Long enough that a stranger can use the thing without asking you anything. That is usually shorter than people fear.
Should I include an API reference?
A short one, yes. A long one belongs in separate docs — a README that scrolls for ten screens stops being read.
Do badges matter?
A passing build badge and a licence badge answer real questions. A dozen of them are decoration.
What about a code of conduct?
Worth having as a separate file once a project has contributors. Link to it from the contributing section rather than inlining it.