Introduction
After the code, the readme is the most important thing to add to your project. Readme will be referred to as docs for small libraries and projects. It will reflect the project. For a beginner, forgetting to add Readme files to the project is standard. Even some developers add readme files that end up as bad because they give the least attention to it.
A good Readme will help other developers in understanding the project. They can use it as the original source of information for the project. A good readme must contain some of the points that we will discuss later.
So, today I am going to guide you on writing awesome Readme files for your project. In this article, I will discuss the following points:
- What is a Readme file?
- Things to include in your readme
- Tools that you can use to write a Readme file
Now, let’s get started.
What is Readme?
A readme file is a text file that summarized the documentation of your project. It is often included in the root directory of a project, and it is typically written in plain text or Markdown format.
The purpose of it is to provide a quick overview of the project and help users understand what it does, how to set it up, and how to use it. It includes information about the project. The user of the project will first read this file to gain knowledge about your project. It became the face of your project.
Adding valuable information to this file is necessary. Depending on the readme file, the user will interact with the project accordingly. There are must-include things that you need to add to your readme file. Let’s look into that.
Things to include in your Readme
Title and sub-title
You need to add the title of the project at the top of the Readme. Along with that, you can add a subtitle that denotes the project in a sentence or two.
You should also add the logo of your project too if there is any.
Table of Content
I think this is a must-include section for a large readme file. This will help the user while navigating through different sections.
Description
In this section, you can elaborate more on the project features and ideas. Add one to two paragraphs about the project so that the user understands the meaning of the project.
You can also talk about your motive for the project.
Working of the project
A Step-by-step guide for the user about different features and how to use them. Add screenshots to better illustrate the work. You can add diagrams to show the architecture of the project. You can also add videos or gifs in this section.
You can mention the tech stack that you have used in the project. This will help the user to have a better understanding of the project.
Installation Guide
I step-by-step guide with screenshots and code to guide users in installing projects on their machines.
You can mention some pre-installed tools that might require for local installation. Provide all the commands and scripts for installing on the machine with screenshots and code. Add a screenshot of the running project.
Contributing Guidelines
If the project is open source, you can talk about guidelines for contributing. You can add any external files too.
In the contribution guidelines, mention things to consider before creating a pull request. Mention what kind of pull request you want.
License
Mention the license of the project. There are different licenses according to the customization that others can make to your project You can look at the GitHub license page for different licenses for your project.
One of the most used licenses for me is MIT. It permits users for commercial use, modification, distribution, and private use. Limit the user for any liability and warranty.
Tools that you can use
Let’s look into some tools that might help you in writing and structuring the readme.
readme.so
Our simple editor allows you to quickly add and customize all the sections you need for your project's readme
It is an editor that will help in writing better readme. There are various sections such as Project titles, badges, authors, contributing, and others with templates that you can import into the editor. The editor supports markdown which makes it easy to add your section to it.
You will not run out of sections to add to your readme as the editor has more than 35 sections. Also, you create your own sections for the editor.
Terraform docs
Generate Terraform modules documentation in various formats
Terraform is an open-source infrastructure to code software. It follows strict guidelines for creating variable definitions, providers, and others. It has a sub-project called as terraform docs. If you use terraform infrastructure then you can use the terraform docs for creating docs/readme for your project.
You can export readme in various formats such as Markdown, AscciDoc, JSON, and others. It has support for CLI that makes it easy to automate documentation generation with GitHub Action.
Conclusion
Readme files are quite important for any project. As mentioned above, this will be the face of your project and potential users will read it. That’s why creating a good readme should be a priority after writing code. We have discussed a lot about writing a readme such as a readme introduction, things to include in the readme, and tools that you can use to create an awesome readme.
I hope the article has helped in understanding the value of a readme file. Along with that, How to write a better readme for your project. Thanks for reading the article.
Top comments (8)
Absolutely. There are far too many projects without a scrap of documentation. It's not hard to offer even a brief description of what the project is about; just lazy and arrogant not to.
I'm retired now but one of the things that used to make me see red was the arch reply I got from some programmers - typically the cleverest ones - when asked for just a hint where to start:
"Read the code". (smirk)
I cannot politely express how infuriating this was, especially when the code in question had not a single comment anywhere, on the grounds that "documentation gets out of date".
Hey, fan of AI here! I recently learn that you can generate a very rich and handy readme using GPT-3 as well! Given the prompt of:
The result is:
That's super ❤️
How about "Requirements". I can't count the number of times I've seen a project or product that doesn't tell you that up front. If it runs on every OS without additional requirements. Great! Say so. If you need to have PostgreSQL 14+, Python 8.4+, 64GB of RAM on a Linux box, tell us up front. You'll save a lot of people a lot of time.
That's also a valid points for native apps. Even sometimes for a web application.
Very good article, thank you. I enjoyed reading it but for a beginner like me, I would have liked to see these points:
1) I would have liked to see some examples of open-source projects that you find that the author has written a good readme.
2) The links to the references are also missing in your article. For example, for the different types of licenses, you should have added the reference link to the Github page to make it easier for the readers.
Anyway, very good article overall. Great job!
Yep, that is also a great point to add to the readme. I am working on an article that reflects some great readme examples.
That was a awesome text it's helped me a lot. I'm beginning on code and every information about the better way to create the project as more readable then possible is great!!