Back to Blog
Tools 2025-12-09 5 min read

How to Write a Good GitHub README

Why Use a Generator Instead of Starting Blank

Every README needs the same handful of sections: title, description, installation, usage, contributing, license. Typing that structure out from scratch every time you start a project means re-deciding heading order and formatting you already settled on the last project.

md0's README generator skips that step. You fill in a form, the tool assembles the file live in a preview pane, and you export markdown ready to commit. This post walks through the actual generator flow. For the deeper argument on what should go in each section and why, see how to write a GitHub README people actually read.

Step 1: Open the Generator

Go to md0.io/to-readme. On desktop you get a form on the left and a live preview on the right; on mobile there's a toggle button to switch between the two. The form ships pre-filled with placeholder values so you can see the shape of the output before you type anything.

Step 2: Name and Tagline

Fill in Project Name and Tagline. The tagline becomes a one-line blockquote directly under the title in the output, so keep it to a single sentence describing what the project does, not what it's built with.

Step 3: Link Your Repo for Badges

The GitHub Repository field takes a username/repo string. Fill it in and the generator automatically inserts four Shields.io badges: stars, forks, open issues, and license, all pointed at your actual repo. Leave it blank and no badges appear at all. There's no menu of badge types to pick from, this field is the only control, so if you want a build-status or version badge, you'll add that manually after exporting.

Step 4: Description and Features

The Description field is a longer textarea for the "About" section, two to three sentences on what problem the project solves. Below it, Features is a list where you can add or remove bullet points with the buttons next to each entry. Replace the placeholder feature text ("Feature 1", "Feature 2") with things your project can actually do; a generic feature list reads worse than no feature list at all.

Step 5: Installation and Usage

Installation is a textarea that drops straight into a fenced bash code block in the output, so type the exact command someone needs to run, not the placeholder npm install my-project. Usage works the same way but renders into a plain code fence without a language hint, since the field can't know what language your example is in. Paste one real, working example, the kind that solves an actual problem, not one that only shows an API signature. If the language tag matters to you, add it manually after you export.

Step 6: Contributing, License, and Author

Contributing is free text for how people should submit issues or pull requests. License and Author are simple text inputs; License defaults to "MIT" but accepts anything you type. Whatever you enter here becomes the actual license statement in the output, so this is the step where a project most commonly ends up without a real license: if you skip it, "MIT" ships by default, which may not be what you intend.

Step 7: Preview and Export

Toggle to Preview to see the rendered output before committing to it. When it looks right, hit Copy to grab the markdown or Download to save it directly as README.md.

The whole process takes about five minutes for a typical project, most of that time spent on the usage example rather than the form itself.

What to Add After Exporting

The generator hands you structure and placeholder text, not the specifics only you know:

  • A screenshot or GIF, if your project has a visible UI. There's no field for this since the generator can't capture your interface for you; add one manually above the fold once you export.
  • Real installation and usage text, replacing anything left over from the defaults.
  • The exact license you intend, since the field defaults to MIT rather than staying empty.
  • Version or platform requirements, if your project depends on a specific Node, Python, or OS version. There's no dedicated field for this, so add a line under the description.

The output also includes a "Made with md0.io" footer line. Keep it, trim it, or replace it, it's just markdown text at that point.

Generate Your README

Skip the blank page. Open md0's README generator, work through the fields above, and export a README.md that's ready to commit.

Ready to try md0.io?

Start writing beautiful markdown today with our free tools.

How to Write a Good GitHub README - md0