Open Collective
Open Collective

standard-readme

A specification for better READMEs.

Contribute


Become a financial contributor.

Financial Contributions

Goal
One-off

Just give what you'd like!

$0.00 USD of $250 USD raised (0%)

Starts at$3 USD

Latest activity by


Be the first one to contribute!
Goal
Reader

Tell us that you're using this!

$0.00 USD of $500 USD / year raised (0%)

$5 USD / year

Latest activity by


Be the first one to contribute!
Goal
Sponsor

Tell us that you use this at your company!

$0.00 USD of $100 USD / year raised (0%)

$10 USD / year

Latest activity by


Be the first one to contribute!
Custom contribution
Donation
Make a custom one-time or recurring contribution.

Latest activity by


Crypto contribution
Crypto Contribution
Make a crypto contribution.

standard-readme is all of us

Our contributors 2

Thank you for supporting standard-readme.

Budget


Transparent and open finances.

View all transactions
-$0.50USD
Completed
Contribution #342527

Credit from Guest to standard-readme

+$0.50USD
Refunded
Contribution #342527
$
Today’s balance

--.-- USD

Total raised

--.-- USD

Total disbursed

--.-- USD

Estimated annual budget

--.-- USD

Connect


Let’s get the ball rolling!

News from standard-readme

Updates on our activities and progress.

Created Open Collective

Hey ya'll! 👋 I decided to set up an Open Collective for this repository, largely to learn first hand what that process was like, and to have a sandbox for learning about how to get funding for non-dependent dependencies like this one. Curi...
Read more
Published on March 17, 2023 by Richard Littauer

About


Standard Readme

Standard Readme Style

Your README file is normally the first entry point to your code. It should tell people why they should use your module, how they can install it, and how they can use it. Standardizing how you write your README makes creating and maintaining your READMEs easier. Great documentation takes work!

This repository contains:

  1. The specification for how a standard README should look.
  2. A link to a linter you can use to keep your README maintained (work in progress).
  3. A link to a generator you can use to create standard READMEs.
  4. A badge to point to this spec.
  5. Examples of standard READMEs - such as this file you are reading.

Standard Readme is designed for open source libraries. Although it’s historically made for Node and npm projects, it also applies to libraries in other languages and package managers.

Table of Contents

Background

Standard Readme started with the issue originally posed by @maxogden over at feross/standard in this issue, about whether or not a tool to standardize readmes would be useful. A lot of that discussion ended up in zcei's standard-readme repository. While working on maintaining the IPFS repositories, I needed a way to standardize Readmes across that organization. This specification started as a result of that.

Your documentation is complete when someone can use your module without ever having to look at its code. This is very important. This makes it possible for you to separate your module's documented interface from its internal implementation (guts). This is good because it means that you are free to change the module's internals as long as the interface remains the same.

Remember: the documentation, not the code, defines what a module does.

~ Ken Williams, Perl Hackers

Writing READMEs is way too hard, and keeping them maintained is difficult. By offloading this process - making writing easier, making editing easier, making it clear whether or not an edit is up to spec or not - you can spend less time worry about whether or not your initial documentation is good, and spend more time writing and using code.

As well, standardizing can help elsewhere. By having a standard, users can spend less time searching for the information they want. They can also build tools to gather search terms from descriptions, to automatically run example code, to check licensing, and so on.

The goals for this repository are:

  1. A well defined specification. This can be found in the Spec document. It is a constant work in progress; please open issues to discuss changes.
  2. An example README. This Readme is fully standard-readme compliant, and there are more examples in the example-readmes folder.
  3. A linter that can be used to look at errors in a given Readme. Please refer to the tracking issue.
  4. A generator that can be used to quickly scaffold out new READMEs. See generator-standard-readme.
  5. A compliant badge for users. See the badge.

Install

This project uses node and npm. Go check them out if you don't have them locally installed.

$ npm install --global standard-readme-spec

Usage

This is only a documentation package. You can print out spec.md to your console:

$ standard-readme-spec

Generator

To use the generator, look at generator-standard-readme. There is a global executable to run the generator in that package, aliased as standard-readme.

Badge

If your README is compliant with Standard-Readme and you're on GitHub, it would be great if you could add the badge. This allows people to link back to this Spec, and helps adoption of the README. The badge is not required.

To add in Markdown format, use this code:

[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

Example Readmes

To see how the specification has been applied, see the example-readmes.

Related Efforts

Maintainers

@RichardLitt.

Contribute

Feel free to dive in! Open an issue or submit PRs.

Standard Readme follows the Contributor Covenant Code of Conduct.

License

MIT © Richard Littauer

Our team