DEV Community

Cover image for 15 Essential Sections Every README Needs: Give Your Project What It Deserves

15 Essential Sections Every README Needs: Give Your Project What It Deserves

Giorgi Kobaidze on April 26, 2026

Table of Contents Overview README Files Are Never Perfect The Primary Purpose of README Files A Good README Starts With a Proper Struct...
Collapse
 
manchuck profile image
Chuck Reeves

I'm so going to update the READMEs for the SDK I maintain to follow this format!!

I would suggest a contributors section. It's good to call them out when you're trying to build out community awareness

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Go for it sir! Use it and modify it according to your requirements. I’m glad this helped you!

A contributors section sounds like a brilliant idea. Thanks for the suggestion!

Collapse
 
manchuck profile image
Chuck Reeves

Already have Copilot running 😝

Thread Thread
 
georgekobaidze profile image
Giorgi Kobaidze

Awesome!!

Collapse
 
anchildress1 profile image
Ashley Childress

This is one of those posts where I don’t have to mentally fill in gaps—you actually covered the full surface area really well. Honestly, this is how all README structures should look across the board.

I like that you call out the image at the top. READMEs just land better when there’s something visual pulling people in right away, and a lot of folks still skip that. Same with the badges—you’ve got them in there, but they’re worth highlighting. I’ll take any excuse to drop in Shields.io badges to break up text and give quick signal at a glance.

Also worth adding Mermaid to your diagrams list. GitHub supports it natively, and keeping diagrams in markdown makes updates way less painful than jumping back into something like Lucid every time you need to tweak it.

Fair warning: I’m probably going to steal this and turn it into an AI skill. It’s too clean not to! 😄

Collapse
 
jal-co profile image
Justin Levine

Well put together @georgekobaidze.

@anchildress1 about your point with shields.io, my big problem with README badges has always been that shields.io badges look like they're from 2014. I built shieldcn to fix that. It renders badges as actual shadcn/ui buttons via Satori, so they match the design language most modern projects are already using. Same URL patterns, drop-in replacement, just way better looking IMO.

Totally agree on the visual-first header point. A good logo + branded badges at the top immediately signals "someone actually cares about this project." People decide whether to keep reading in the first two seconds.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Great insights! Thank you for the feedback!

Collapse
 
stinklewinks profile image
Drew Marshall

Mermaid for the win!

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks for the great feedback! Feel free to feed this to AI, I’m happy to contribute to its learning. 😄

And thanks for the Mermaid suggestion, I’ll definitely try it out!

Collapse
 
syedahmershah profile image
Syed Ahmer Shah

Finally, a README guide that treats documentation with the same engineering rigor as the code itself! The 'future you' argument is the most honest motivation for writing good docs. I’m definitely grabbing that ready-to-use template for my next project. To anyone reading: don't skip the Architecture diagram—visual signal beats text walls every time. 5 stars!

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

I'm glad you've found it helpful. Thanks!

Collapse
 
codingwithjiro profile image
Elmar Chavez

Thank you for this guide. Reading your article made me realize how infant my default README.md looks like when compared to what you write. I'll try to add sections in my future projects when I get the right opportunity to do so.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks for the feedback. As I mentioned in the article, README files are never perfect. My README files aren’t perfect either, we should constantly evolve and polish them.

Good luck!

Collapse
 
buildbasekit profile image
buildbasekit

This is a strong, practical guide.

  • You nailed the real point: README is not documentation, it’s the entry point
  • The structure is clean and actually usable, not theoretical
  • Calling out “don’t include everything” is important. Most READMEs fail there

What I like most:

  • This is written from experience, not checklist thinking
  • The template is simple enough that people will actually use it

One push:

  • For early-stage projects, 15 sections can be overkill → A lean version (5–6 sections) might help more people get started

Overall, this is the kind of guide that can genuinely improve open-source quality if people follow it.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thank you for the great feedback!

Collapse
 
simplemindedrobot profile image
Scot Campbell

Great writeup. I would add one little thing to the getting started that seems trivial but not everyone on GitHub knows how to get started...really started.

Include the basic commands on cloning the repo cd into and then 'npm install' or whatever is needed. It's two extra lines and could save some future new coder a few minutes of headache.

Starting your install instructions at 'npm install' is somewhat like telling a new driver to put the car in gear before telling them how to start it.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Agreed! Though I usually write that sort of stuff in the "Getting Started" section (or it can be named "Setup", based on preference)

Collapse
 
johnnylemonny profile image
𝗝𝗼𝗵𝗻

Great breakdown - practical, clear, and genuinely useful. The emphasis on structure and readability makes this one of the better README guides I’ve seen. Definitely borrowing some of these ideas for my own projects.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks for such a great feedback!

Collapse
 
johnnylemonny profile image
𝗝𝗼𝗵𝗻

You're welcome!

Collapse
 
itskondrat profile image
Mykola Kondratiuk

15 sections is ambitious. best small-project READMEs I've used top out at 4-5 - setup and core pitch. anything more starts feeling like documentation theater for a tool with 2 contributors

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Good point. And you’re right, that’s why I mentioned that in specific cases you might not need all of these sections. But usually they come in handy more often than not.

I’ve even seen README files that add more sections based on the requirements and specifics.

Collapse
 
itskondrat profile image
Mykola Kondratiuk

fair enough - project maturity and audience changes the calculus a lot. i trim harder on internal tools than anything public-facing

Thread Thread
 
georgekobaidze profile image
Giorgi Kobaidze

Right, internal tools usually don’t need sections like “How to Contribute”.

Thread Thread
 
itskondrat profile image
Mykola Kondratiuk

exactly - the whole contribution guide thing is mostly for external audiences. internal tools get away with 3 lines of setup and a Slack message.

Thread Thread
 
georgekobaidze profile image
Giorgi Kobaidze

Well, for me they usually end up more than a few lines but yeah, they're definitely shorter.

Collapse
 
shubhradev profile image
Shubhra Pokhariya

This is a really solid breakdown.

I’ve started thinking of the README as the first user experience of the project, not just documentation.
If setup or intent isn’t clear there, most people won’t go further.

Having a structure like this makes a big difference, especially for real-world projects.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

It does make a huge difference. Thanks for the comment!

Collapse
 
klaudiagrz profile image
Klaudia Grzondziel

Woooow, what an awesome read!!! 😍😍😍 As a Technical Writer, I fully approve! Happy to see engineers who care about documentation and understand its importance; it really lifts the spirit.

As a few other commenters have noted, I also think that such a long README can be a bit of an overkill. A good option could be moving some of these sections to the docs folder with more detailed documentation. The README could then contain a reference to the docs. CONTRIBUTING.md is very often also a separate document.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks, I appreciate the great feedback! And yes, a README fine can be too long if it contains these sections, but only if these sections contain too much unnecessary information. You always need to make sure to write just enough in your README. And “just enough” is an important keyword here.

Collapse
 
icophy profile image
Cophy Origin

Great breakdown! I especially appreciate the "Troubleshooting" section callout—it's often overlooked but saves so much time for new users.

One thing I'd add: for AI agent projects, a "Memory & State" section can be crucial. Users often ask "does this remember context across sessions?" Having that explicitly documented (with examples of what persists vs. what doesn't) prevents a lot of confusion.

Also, the "Roadmap" section is gold for open-source projects—it sets expectations and invites contributions in the right direction.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks! Interesting suggestion, though many projects don’t really utilize memory and state, so I decided not to include it here.

As for the roadmap, that’s pretty much the same as “What’s Next”.

Collapse
 
0xdevc profile image
NOVAInetwork

Good list. I just open sourced a 65,000 line Rust
project this week and the README was one of the
hardest parts to get right.

The one thing I'd add is that for technical projects,
the Getting Started section needs to actually work.
Not "should work" or "works on my machine" but
genuinely tested step by step. I went through every
command in my tutorials on a clean devnet and found
bugs that would have made the whole thing useless for
anyone trying it for the first time.

The Architecture section is underrated too. I wrote a
full crate-by-crate walkthrough with Mermaid diagrams
for the consensus flow and transaction lifecycle. It
took a while but it's the one doc that gets the most
use because it answers the "where do I even start
reading this codebase" question.

One section I'd add to your list is a Security section
with a vulnerability reporting process. Especially for
open source projects. Even a simple SECURITY.md that
says "email us here" is better than nothing.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Absolutely, the “getting started” section should be well tested and working. As for the “security” it’s definitely necessary in most cases, the article mentions it, but having a separate Markdown file for just security purposes is sometimes a better practice in specific scenarios.

Collapse
 
0xdevc profile image
NOVAInetwork

Agreed on the separate SECURITY.md. We did that too.
The README just mentions that it exists and links to
it. Keeps the README focused on getting started and
the security details in their own file where they
belong.

Thread Thread
 
georgekobaidze profile image
Giorgi Kobaidze

Sure. That’s just another way of doing it. That one’s especially helpful if you need to describe and document security in a more detailed way, or if it’s way too complex for your README file.

Collapse
 
alifunk profile image
Ali-Funk

Posts like these are almost nonexistent but they are so incredibly important! Thank you!

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Appreciate that a lot! I always try to avoid getting pulled into "what’s trending" or "what grabs attention." I'd rather have fewer views and write about what I enjoy.

And it works beautifully!

Collapse
 
alifunk profile image
Ali-Funk

Thank you ! I get that 100%

Collapse
 
stinklewinks profile image
Drew Marshall

This is one of the posts that turns into a reference title in my repo. Very nice!

The image at the top of the readme is a chef's kiss! READMEs should be treated like any other post in the sense of imagery captures attention and communicates the tone of the post/article.

5 stars.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thank you so much!!

Collapse
 
it-wibrc profile image
Waffeu Rayn

Thanks for the article. I found myself among those whose want to place everything inside it instead of splitting it into a separated docs folder. I learn it recently while working.

Thanks for the breakdown into section and the mention to place only useful information not all your though in it 😅.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thank you. Appreciate your comment!

Collapse
 
rosspeili profile image
Ross Peili

Really good base. I love Skillware for it is super clean and starts high level, but then expands the more you understand and dive deeper. Super long readme feel like info bombs at start and can have the opposite effects of what you have. I would generally try to use githubs native license, contributing, security etc. which appear as seperate tabs, instead of hard coding into the readme. You can maybe have hyperlinks to them, but not dedicated sections. Overall very good for anyone who is just starting with their first gh projects <3

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Interesting points, yeah there are so many options for every scenario, which is great!

Collapse
 
yogya_goyal profile image
Yogya Goyal

This is actually a good reminder.

I’ve skipped writing proper READMEs a few times thinking I’ll “do it later” and then come back completely lost myself.

The “future you” point is real.

Also like how you kept it practical instead of overcomplicating it. Easy to follow.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thank you. And yes, we should always make life easier for future us.

Collapse
 
mikaww1 profile image
Mika

thanks for this guide! you explained everything really well, im gonna update my READMEs now!

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks for the great feedback! I’m glad it helped you! Feel free to use it.

Collapse
 
futurecontributor profile image
Said

Thank you this is really valuable information. Every repo should have table of contents.
I have been so confused about how to write the README file I will start using this template for my projects.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

I'm glad to hear it helped you! Feel free to use it and make it better.

Collapse
 
earlgreyhot1701d profile image
L. Cordero

Great insights here. Thanks for the template and the read!

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thank you!

Collapse
 
mateebhussain profile image
Ateeb Hussain

I was writing a README when dev.to suggested this. It's really good!

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

What a perfect timing! Love that!😄

Collapse
 
laura_ashaley_be356544300 profile image
Laura Ashaley

Good reminder well-structured READMEs improve adoption, clarity, and collaboration. Most projects fail not from bad code, but from poor documentation.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

"Most projects fail not from bad code, but from poor documentation." <-- that line really should've been in the article. It's just spot on. Poor documentation frustrates everyone and frustrated developers rarely build successful projects.

Collapse
 
lizzzzz profile image
Liz Acosta

This is a thing of beauty 🥹

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Oh, you just made my day, thank you!! 😄

Collapse
 
techhub profile image
Tech Hub

Thank you

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

You’re welcome!

Collapse
 
urmila_sharma_78a50338efb profile image
urmila sharma

Great checklist! I’d also add a ‘Common Issues / Troubleshooting’ section — saves a lot of duplicate issues on GitHub. Thanks for sharing this.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

That’s a great point! Thanks for the suggestion!

Collapse
 
ottex_ai profile image
Ottex AI

Thanks

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

🙏

Collapse
 
mindmnml profile image
Nick Bokuchava

დავანოუთებ :დ

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

მადლობა!

Collapse
 
sklyarov profile image
Artyom Sklyarov

Thanks for the article. It's a very good reminder not to skip on it, not to skip on the proper documentation. I have a tendency to do just that. Ha ha.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Thanks! It's actually a good reminder for myself too, because I've had my fair share of moments when I was way too lazy to write a proper README file, which was a mistake.

Collapse
 
neraa profile image
Chinyere John-Nnah

This is an amazing read which covers virtually everything. I don't use visuals in my README and i would have to implement that.

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

I’m so glad it inspired you to make your docs better. Thank you!

Collapse
 
razielrodrigues profile image
Raziel Rodrigues

nice!