Why Most GitHub README Files Fail (And What I Learned After Looking at Hundreds of Repositories)
After exploring hundreds of GitHub repositories, I noticed the same README mistakes appearing again and again. Here's what makes some projects easy to understand while others lose visitors within seconds.
Introduction
When people talk about GitHub repositories, most discussions focus on code quality, architecture, performance, or the technology stack. Documentation is often treated as something that should be completed later, usually after the important work is finished. I used to think the same way. A README file felt like a small requirement that every repository needed, not something that could significantly affect how people viewed a project.
That perspective started to change while working on tools related to README generation and repository analysis. As I spent more time exploring repositories, comparing documentation styles, and observing how different projects presented themselves, I noticed a pattern. Some repositories immediately felt trustworthy and easy to understand, while others created confusion within a few seconds, even when the underlying code was excellent.
At first, I assumed the difference came from design, popularity, or the number of contributors involved in a project. However, after looking through many repositories, it became clear that the README file was often responsible for that first impression. Before anyone downloads the project, reads the source code, opens an issue, or checks the documentation website, they usually encounter the README.
What surprised me most was that many technically strong projects had weak README files, while some relatively simple projects managed to attract attention because their documentation communicated value clearly. The issue was rarely a lack of effort. In many cases, developers spent time writing documentation, but the information was either difficult to navigate, too generic, or focused on details that visitors did not actually care about during their first visit.
This article is not about Markdown syntax, formatting tricks, or creating the longest possible README. Instead, it focuses on the common patterns I noticed while reviewing repositories and the lessons that changed how I think about project documentation. Some of these observations challenged assumptions I previously had about what makes a README effective, and they continue to influence how I approach documentation today.
The Moment I Realized Most README Files Have the Same Problem
The realization did not happen after looking at a single repository. It happened gradually after opening repository after repository and experiencing the same frustration repeatedly. I would land on a project that looked interesting from its title or description, only to spend several minutes trying to understand what the project actually did.
The strange part was that many of these repositories were not poorly maintained. Some had active contributors, frequent commits, and hundreds or even thousands of stars. Yet their README files often failed to answer the most basic questions a visitor had during the first few seconds.
Instead of clearly explaining the problem being solved, many README files immediately jumped into technical details. Some started with installation commands. Others displayed a long list of badges. A few contained feature lists so large that it was difficult to understand which features actually mattered.
After seeing this pattern repeatedly, I started paying closer attention to repositories that immediately felt easy to understand. Surprisingly, they were not always the most popular projects. What they had in common was a strong focus on clarity. Within a few seconds, visitors could understand the purpose of the project, who it was built for, and why they might want to use it.
This was the moment I realized that most README files do not fail because they are too short. They fail because they make visitors work too hard to find important information. Every extra minute spent searching for answers increases the chance that someone leaves the repository and never comes back.
One useful example can be seen in many successful open-source projects on GitHub. Their README files often begin with a simple explanation of the problem being solved before introducing installation instructions, advanced configuration, or technical details. That small difference has a huge impact on the overall user experience.
While building tools related to README generation and GitHub documentation, I noticed that developers often focus on what they want to say rather than what visitors need to know. Those two things are not always the same. Developers naturally think about features, architecture, and implementation details. Visitors are usually thinking about whether the project can solve their problem.
Looking back, this observation changed how I evaluate documentation. Instead of asking whether a README contains enough information, I started asking a different question: Can a new visitor understand the value of this project within thirty seconds? In many cases, the answer revealed more about the quality of the documentation than the length of the README ever could.
If you are creating a new repository, it can be helpful to review your README from the perspective of someone who has never seen the project before. That simple exercise often reveals missing explanations, unnecessary complexity, and opportunities to communicate value more clearly. It is one of the easiest ways to improve both documentation quality and the overall perception of a project.
Why Developers Spend More Time Writing Features Than Documentation
One thing I noticed while exploring repositories is that developers are usually much more excited about building features than documenting them. That is completely understandable. Writing code feels productive because you can immediately see progress. A new feature appears, a bug gets fixed, or a performance improvement becomes measurable. Documentation rarely creates the same feeling.
I have seen repositories where developers spent weeks building complex functionality but only a few minutes explaining how the project should be used. From the developer's perspective, everything made sense because they had been working on the code for days or months. From a visitor's perspective, the project often felt incomplete because important context was missing.
Part of the problem comes from something many developers experience without realizing it. After spending enough time on a project, it becomes difficult to identify what information is obvious and what information is missing. The creator already knows how the project works, how it should be installed, and which problems it solves. New visitors do not have that advantage.
A good example is installation instructions. I have opened repositories where the installation process required several environment variables, external services, and configuration steps, yet the README simply said "Install dependencies and run the project." The author probably thought the instructions were sufficient because they already understood the setup process. Someone seeing the project for the first time would likely have a very different experience.
Another reason documentation gets ignored is that its value is often delayed. A new feature immediately benefits the person building it. Good documentation benefits future users, contributors, and sometimes even the original developer months later. Because the reward is not immediate, documentation often moves to the bottom of the priority list.
What changed my perspective was realizing that documentation is not separate from the product. For many visitors, the README is part of the product experience. Before someone interacts with the code, the API, or the user interface, they interact with the documentation. If that experience creates confusion, the quality of the underlying code may never get a chance to speak for itself.
Some of the most successful open-source projects understand this very well. Their documentation does not feel like an afterthought added at the end of development. Instead, it feels like a deliberate effort to help new users succeed. The result is often fewer support requests, more contributors, and a stronger reputation within the developer community.
After spending time working with README generation tools, I started viewing documentation differently. A feature is only valuable when people understand it exists and know how to use it. Documentation plays a major role in making that happen. Without it, even excellent work can remain invisible.
The "Nobody Will Read This" Mindset
A surprising number of README files seem to be written under the assumption that nobody will actually read them. I did not notice this at first, but after spending time exploring repositories, the pattern became difficult to ignore. Many projects contained documentation that looked like it existed only because a README was expected to exist.
The content was technically correct, but it often felt rushed. Important explanations were missing, sections were incomplete, and some repositories contained little more than a project title followed by a few commands. It was almost as if the author assumed visitors would immediately understand everything without needing additional context.
I think this mindset comes from the way many developers discover projects. When working on personal projects, it is easy to believe that the code is the most important part because that is where most of the effort is invested. Documentation can start feeling secondary. The problem is that visitors do not experience the project in the same order as the creator.
The creator spends weeks or months looking at the codebase. The visitor sees the README first.
That difference changes everything.
I remember opening repositories that looked promising based on their names. The project description sounded useful, the repository had activity, and there were signs that real work had gone into development. Then I reached the README and immediately started asking questions.
- What problem does this solve?
- Who is this built for?
- Why should I use this instead of another solution?
- What does the final result look like?
Sometimes the answers existed somewhere inside the repository, but finding them required effort. In many cases, I simply moved on to another project. Not because the project was bad, but because understanding it required more time than I was willing to spend.
This is something I think many developers underestimate. Visitors rarely arrive at a repository with unlimited patience. They are usually comparing multiple tools, searching for a solution to a specific problem, or trying to complete a task quickly. If the README does not help them understand the project within a reasonable amount of time, there is a good chance they will leave.
What makes this situation frustrating is that the solution is often simple. Most repositories do not need longer documentation. They need clearer communication. A short explanation of the problem, a practical example, and a quick demonstration of the result can often provide more value than several paragraphs of technical details.
Over time, I started viewing README files less as documentation and more as conversations. A visitor arrives with questions, and the README should answer those questions as quickly as possible. When documentation is written with that goal in mind, the experience feels completely different.
The repositories that leave the strongest impression are usually not the ones with the longest documentation. They are the ones that respect the reader's time. They understand that attention is limited and that every paragraph should help visitors move closer to understanding the project.
The Copy-Paste README Problem
After spending time looking through repositories, I started noticing something strange. Many README files looked different on the surface, but once I started reading them, they felt almost identical. The project names changed, the screenshots changed, and the technologies changed, yet the structure and wording often followed the same pattern.
At first, I thought this was a coincidence. Then I realized what was happening. Most developers were starting with the same templates, examples, tutorials, or generators. There is nothing wrong with using a template. In fact, templates can save a lot of time. The problem appears when the template becomes the documentation instead of acting as a starting point.
I have seen repositories where the README contained sections such as Features, Installation, Usage, Contributing, and License, but none of the sections explained anything unique about the project itself. The repository looked professional at first glance, yet after reading the entire page, I still could not understand why the project existed.
One example that appears frequently is the generic feature list. Instead of describing what makes the project useful, the README contains statements such as:
- Easy to use
- Fast performance
- User friendly
- Highly customizable
- Modern design
The problem is not that these statements are false. The problem is that almost every project could make the same claims. They do not help visitors understand what makes one repository different from another.
Another pattern I noticed is the tendency to copy wording from other successful projects. Developers often see a repository with thousands of stars and assume that copying its README structure will produce the same result. Unfortunately, documentation does not work that way. The README succeeds because it accurately explains that specific project, not because of the headings it uses.
This became especially obvious when I compared repositories solving completely different problems. A documentation tool, a machine learning project, a browser extension, and a command-line utility sometimes used nearly identical README structures. The result was documentation that felt disconnected from the actual product.
The repositories that stood out were usually the ones that ignored this pattern. Instead of starting with a template and filling empty sections, they started by asking a simple question: What does a new visitor need to know first?
Sometimes the answer was a screenshot. Sometimes it was a short story explaining why the project was created. Sometimes it was a practical example showing the problem and the solution side by side. Whatever approach they used, the documentation felt connected to the project instead of copied from somewhere else.
Working on tools related to GitHub README generation changed how I think about templates. A good template should provide structure, but it should never replace original thinking. The most effective README files are usually the ones where the author adds their own experience, observations, and explanations instead of relying entirely on generic sections.
Whenever I find a repository that immediately captures my attention, it almost always has one thing in common. The README feels like it was written by someone who understands the problem deeply and wants to help others understand it too. That quality is difficult to achieve through copying alone.
Templates can help organize information, but they cannot create insight. The insight has to come from the person building the project. That is usually the difference between a README that people quickly forget and one that makes them want to explore further.
When More Content Makes a README Worse
For a long time, I assumed that a better README simply meant adding more information. It seemed logical. If visitors have questions, the solution should be to provide more answers. The more I explored repositories, however, the more I realized that this approach often creates a different problem.
Some of the most difficult README files I encountered were not missing information. They contained too much of it.
I remember opening repositories where the README felt endless. There were multiple installation methods, detailed configuration guides, dozens of feature descriptions, development instructions, deployment examples, environment variables, roadmap discussions, contribution guidelines, and long changelog sections. Everything was documented, yet finding basic information became surprisingly difficult.
The problem was not the quality of the information. The problem was that important information was buried beneath less important information.
Imagine visiting a repository for the first time. You are not looking for advanced configuration options. You are not comparing deployment strategies. You are not planning to contribute code. Most visitors are simply trying to answer a few basic questions:
- What does this project do?
- Can it solve my problem?
- How quickly can I try it?
When those answers are hidden behind hundreds of lines of documentation, the README starts working against itself. Instead of helping visitors understand the project, it forces them to search for information that should have been obvious.
One repository taught me this lesson particularly well. The project was genuinely useful, and the author had clearly invested significant effort into documentation. Yet after scrolling for several minutes, I still could not find a simple explanation of why someone should use the tool. The technical details were excellent. The introduction was weak. As a result, the most important message was lost.
What surprised me was that many successful open-source projects take the opposite approach. Their README files often feel shorter than expected. They focus on communicating value first and technical details second. Instead of trying to answer every possible question immediately, they guide visitors through information in a logical order.
This does not mean documentation should be short. Some projects genuinely require extensive explanations. The difference is that good documentation understands that not every reader has the same goal. A first-time visitor and an experienced contributor need very different information.
The best repositories separate these needs effectively. The README provides an overview, practical examples, and quick-start instructions, while detailed documentation lives in dedicated guides, documentation websites, or separate pages. This structure keeps the README approachable without sacrificing depth.
While working on README generation tools, I started paying closer attention to what information people actually needed during their first interaction with a project. The answer was almost never "more content." Most of the time, people wanted clearer content.
That observation changed how I think about documentation. Today, when I review a README, I do not ask whether more information could be added. I ask whether the most important information is easy to find. Those are very different questions, and they often lead to very different documentation decisions.
In many cases, improving a README is not about writing additional paragraphs. It is about removing distractions, reorganizing information, and making the purpose of the project obvious from the moment someone lands on the page.
The Three Questions Every Visitor Wants Answered
After opening enough repositories, I started noticing that most visitors are not looking for the same things that project maintainers think they are. Developers often spend a lot of time documenting technical details, configuration options, and implementation choices. While those things are important, they are usually not what a first-time visitor cares about.
Most people arrive at a repository because they have a problem to solve. They are not interested in reading documentation for the sake of reading documentation. They want to know whether the project can help them accomplish something.
Over time, I realized that nearly every visitor is trying to answer three simple questions as quickly as possible.
1. What Does This Project Actually Do?
This sounds obvious, but it is surprising how many repositories never answer this question clearly. Instead of explaining the purpose of the project, the README immediately jumps into installation commands, badges, or technical descriptions.
I have seen repositories where I understood how to install the project before I understood why I would want to install it. That order feels backwards. Before someone commits time to a tool, they need to understand the value it provides.
The best README files usually answer this question within the first few seconds. A visitor should not have to scroll through multiple sections to understand the purpose of a project.
2. Why Should I Care?
Knowing what a project does is only the beginning. The next question is whether it solves a real problem.
This is where many README files become too focused on features. Features are important, but visitors often care more about outcomes. They want to understand how the project makes their work easier, saves time, reduces complexity, or solves a specific challenge.
For example, saying that a tool supports dozens of customization options may be technically impressive. Explaining that it can generate a complete README in minutes communicates value much faster.
Whenever I find documentation that immediately explains the benefit of a project, I am far more likely to continue exploring the repository.
3. How Can I Try It Quickly?
Once visitors understand the purpose and value of a project, they usually want to test it. At this stage, complicated onboarding becomes a problem.
I have abandoned repositories simply because the first step felt overwhelming. Long setup processes, unclear instructions, and missing examples create friction. Most people will not invest significant effort into trying a project they have only just discovered.
The repositories that leave a strong impression often make experimentation easy. They provide a simple example, a quick-start guide, a screenshot, or a short demonstration that helps visitors see results quickly.
This approach works because confidence grows through experience. Once someone successfully uses a project for the first time, they become much more willing to explore advanced features and deeper documentation.
Why These Questions Matter More Than Most README Sections
Many README templates encourage developers to include a large number of sections. There is nothing wrong with having installation guides, contribution instructions, changelogs, or licensing information. The problem occurs when those sections appear before the reader's most important questions have been answered.
A visitor who does not understand the purpose of a project is unlikely to care about contribution guidelines. A visitor who does not see value in the project will not spend time reading advanced configuration instructions.
This realization changed how I think about documentation. Whenever I review a README today, I try to look at it from the perspective of someone who has never seen the project before. If those three questions are not answered quickly, there is a good chance the documentation needs improvement, regardless of how much information it contains.
The repositories that communicate effectively are not necessarily the ones with the longest documentation. They are often the ones that respect the reader's attention and help them find answers without making them search for them.
What I Noticed in Repositories That Attracted More Users
One thing I expected to find was that the most popular repositories would have the most polished README files. After looking through many projects, that assumption started falling apart.
Some repositories with thousands of stars had surprisingly simple documentation. In a few cases, their README files were shorter than repositories that received very little attention. At first, this confused me because I assumed more documentation automatically meant a better experience.
The more repositories I explored, the more I noticed that popularity was not strongly connected to the amount of information. It was connected to how quickly people understood the project.
The repositories that attracted attention usually did something very well. They reduced confusion.
I could land on the page and immediately understand what the project was, who it was built for, and what problem it solved. There was very little effort required from me as a visitor.
In contrast, some less successful repositories felt like puzzles. The information existed somewhere, but I had to work to connect the pieces together. Sometimes the project description was vague. Sometimes the README focused heavily on implementation details. Sometimes I reached the end of the page and still could not explain the project to someone else.
One pattern that surprised me was how often successful repositories showed the result before explaining the implementation. Instead of spending several paragraphs describing how something worked, they showed a screenshot, an example, or a simple before-and-after comparison.
That approach makes sense when you think about it. Most people do not care how a solution works until they believe the solution is useful. Once they see the outcome, their curiosity about the technical details increases naturally.
I also noticed that many successful projects sounded like they were written by humans rather than marketing teams. The introductions were often simple. They explained a real problem, why the project was created, and what it helped people accomplish. There was very little effort spent trying to sound impressive.
In fact, some of the strongest README files I found were surprisingly direct. They did not use phrases like "next-generation", "powerful solution", or "revolutionary platform". They simply explained the problem and showed the solution.
That observation changed how I think about documentation. When people visit a repository, they are usually looking for clarity, not marketing. They want to know whether the project can help them. The faster that answer becomes obvious, the better the documentation tends to perform.
Looking back, I think this is one reason many repositories struggle to gain traction. The issue is not always the quality of the code. Sometimes the project is genuinely useful, but the documentation creates too much friction. Visitors leave before they fully understand the value being offered.
One thing that changed my perspective was noticing how often I bookmarked simple projects and ignored technically impressive ones. The deciding factor was rarely the quality of the code because I had not even looked at the code yet. The difference was whether the README helped me understand the project without making me work for the answer.
Why Screenshots Often Work Better Than Long Explanations
One thing I noticed while browsing repositories is that I often looked at screenshots before reading anything else. It was not intentional. It just happened naturally.
If a project had a screenshot near the top of the README, I could understand what it was about within a few seconds. If there was no screenshot, I usually had to read several paragraphs before getting the same understanding.
I remember opening a repository for a dashboard tool. The README started with a screenshot showing charts, filters, and reports. Before reading a single line of text, I already understood what kind of project it was.
On the other hand, I have seen projects with long introductions explaining every feature in detail. After reading for a minute or two, I still was not completely sure what the final result looked like.
That is why screenshots are so useful. They remove guesswork. Instead of asking visitors to imagine the result, they show it directly.
This is especially true for tools, websites, browser extensions, generators, and developer products. People want to see what they are getting before they spend time setting things up.
Of course, not every project needs screenshots. A library or package may benefit more from code examples. The important thing is giving visitors something concrete as early as possible.
When I look back at repositories that left a good first impression on me, many of them did this well. They showed the result first and explained the details later. That simple change made the documentation feel much easier to follow.
The Mistake Most README Templates Encourage
I am not against README templates. In fact, templates can save a lot of time. The problem starts when people use them without changing much.
A while ago, I noticed that many repositories looked strangely similar. Different projects, different technologies, different goals, but almost the same README structure.
Most of them started with a list of badges, then a feature section, then installation steps, and then a few other standard sections. Everything looked organized, but something felt missing.
The missing part was usually the reason the project existed in the first place.
I would reach the middle of the README and still not know why the developer decided to build it. Sometimes I did not even know what problem it was trying to solve.
This happens because templates focus on structure. They help you decide where information should go, but they cannot tell you what information actually matters.
I have seen simple projects with very basic README files that immediately made sense because the author explained the problem clearly. I have also seen large projects with perfectly organized documentation that felt difficult to connect with because everything sounded generic.
One thing I started paying attention to was whether a README contained something that could only have been written by the person who built the project.
Maybe it was a problem they faced. Maybe it was a mistake they kept making. Maybe it was a tool they could not find, so they decided to create their own version.
Those details made repositories feel more real. They gave context that no template could provide.
After looking through many projects, I stopped thinking of templates as documentation. I started thinking of them as empty containers. The template can help organize information, but the interesting part still comes from the developer's own experience.
That is usually what makes one repository memorable while another gets forgotten a few minutes later.
How Good Documentation Builds Trust Before Anyone Reads Your Code
Something interesting happened while I was exploring repositories. I often formed an opinion about a project before looking at a single line of code.
At first, I thought that sounded unfair. How can someone judge a project without checking the implementation? But then I realized that most people do the same thing.
When you discover a repository, you usually do not open ten source files immediately. You read the project description, look at the README, check a few screenshots, and try to understand what the project is about.
If that experience feels confusing, trust starts dropping. Not because the code is bad, but because you do not have enough information to feel confident about the project.
I remember finding projects that looked useful, but the README left me with more questions than answers. I was not sure whether the project was still maintained. I was not sure who it was for. I was not even sure if I was using it correctly.
On the other hand, some repositories felt trustworthy almost immediately. The introduction was clear, examples worked, and the documentation answered the questions I had as a new visitor.
What is interesting is that trust was created before I ever looked at the code.
That does not mean documentation is more important than code. Eventually, the quality of the code matters a lot. But documentation often decides whether someone reaches that stage in the first place.
I think many developers underestimate this. They assume users will naturally explore the repository and discover how good the project is. In reality, most people decide very quickly whether they want to spend more time on something.
A clear README, working examples, and honest explanations make that decision much easier. They show that the developer has thought about the experience of new users instead of only focusing on the implementation.
Looking back, many of the repositories I ended up using regularly were not necessarily the ones with the most features. They were the ones that made me feel comfortable enough to get started without feeling lost.
What Changed My Mind While Building a README Generator
When I first started working on README generation tools, I thought the hardest part would be generating the content itself. I assumed the main challenge was helping developers save time by avoiding manual documentation work.
After spending more time with repositories, I realized the problem was not as simple as I originally thought.
Generating a README is easy. Generating a README that actually helps someone understand a project is much harder.
I started noticing that two repositories could contain similar information but create completely different experiences for visitors. One README would immediately make sense, while another would leave me confused even though both covered roughly the same topics.
That made me pay more attention to the way information was presented rather than the amount of information being presented.
For example, many developers spend a lot of time writing feature lists. There is nothing wrong with that, but I found myself paying more attention to examples. A simple example often told me more about a project than ten feature bullets.
The same thing happened with introductions. The README files I remembered were usually not the ones with the most polished writing. They were the ones that quickly explained the problem and showed why the project existed.
One thing that surprised me was how often developers assumed visitors already understood the context. As the creator of a project, that assumption is easy to make because you have been thinking about the idea for weeks or months. New visitors are seeing it for the first time.
Building a README generator forced me to think from the visitor's perspective instead of the developer's perspective. Every time I looked at a repository, I started asking myself the same question: if I knew nothing about this project, would this README help me understand it?
Sometimes the answer was yes. Sometimes the answer was no. But asking that question repeatedly changed the way I looked at documentation.
Today, when I review a README, I care less about whether it contains every possible section and more about whether it helps people get oriented quickly. Most visitors are not looking for perfect documentation. They are looking for enough information to decide whether a project is worth their time.
That simple shift in perspective probably taught me more about documentation than any template, guide, or best-practices article ever did.
What I Do Differently Now
A few years ago, if I was writing a README, I would usually start by looking at other repositories. If they had ten sections, I wanted ten sections too. If they had a long feature list, I felt like I needed one as well.
The result was often a README that looked complete but was not very helpful.
At some point, I stopped worrying about what other repositories were doing and started paying attention to my own behavior. When I discovered a new project, what was I actually reading?
The answer was surprisingly simple. I was not reading most of the README. I was scanning it.
I wanted to know what the project did, whether it could help me, and what the result looked like. If I found those answers quickly, I kept reading. If I did not, I usually left.
That realization changed the way I write documentation. Instead of trying to include everything, I try to make the important parts easier to find.
These days, I spend less time thinking about sections and more time thinking about questions. If someone opens the repository for the first time, what are they likely wondering about? If the README answers those questions quickly, it is probably doing its job.
I also stopped treating README files as technical documents. They are often the first conversation a project has with a new visitor. A good conversation should not make people work hard to understand what is being said.
The funny thing is that my README files are usually shorter now than they used to be. They contain less information overall, but the information that remains tends to be more useful.
I still use templates. I still look at other repositories for ideas. The difference is that I no longer assume more sections automatically make documentation better. Most of the time, people just want clear answers without scrolling through things they do not need.
One Thing I Keep Noticing
The more repositories I look at, the more I feel that most README files are not bad because of missing information.
Most of the time, the information is already there.
The problem is that it takes too much effort to find it.
Sometimes I open a repository and within 10 seconds I know what it does. I know whether it is useful for me. I know what I should do next.
Other times I keep scrolling and reading but still feel confused.
What is funny is that the second repository often has more documentation.
That is probably the biggest thing I learned while looking through different projects. Adding more content does not automatically make a README better.
If someone understands the project quickly, the README is doing its job.
If they are still confused after reading half the page, adding another section probably will not fix the problem.
That is something I still remind myself whenever I work on documentation.
Final Thoughts
I started looking at README files because I was interested in documentation. I ended up paying more attention to how people understand projects.
The repositories that stayed with me were usually not the biggest ones or the most advanced ones. They were the ones that made sense quickly.
After spending time building README tools and looking through different repositories, I think that is what good documentation really does. It helps people understand what you built without making them work too hard for the answer.
That sounds simple, but it is harder than it looks.
I still catch myself adding extra sections, extra explanations, and extra details that probably do not need to be there. Whenever that happens, I try to remember the same question I ask when opening a new repository:
If someone lands on this page for the first time, will they understand what this project does in the next minute?
If the answer is yes, the README is probably doing its job.