Skip to main content
RapidDev - Software Development Agency
github-for-non-tech

How to Write Markdown in a GitHub README File

Markdown is the simple formatting language used in GitHub README files. You use symbols like # for headings, ** for bold, and - for bullet lists. GitHub renders these symbols into nicely formatted text automatically. The Preview tab in GitHub's editor lets you see exactly how your README will look before you save it.

What you'll learn

  • How to format headings, bold text, italics, and links in Markdown
  • How to create bullet lists, numbered lists, and task checklists
  • How to add code blocks and tables to your README
  • How to preview your Markdown before committing changes
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner8 min read15 minutesAny modern web browser — GitHub Free plan and aboveMarch 2026RapidDev Engineering Team
TL;DR

Markdown is the simple formatting language used in GitHub README files. You use symbols like # for headings, ** for bold, and - for bullet lists. GitHub renders these symbols into nicely formatted text automatically. The Preview tab in GitHub's editor lets you see exactly how your README will look before you save it.

What Is Markdown and Why Does GitHub Use It?

Markdown is a lightweight formatting language that turns plain text into beautifully formatted documents. Instead of clicking toolbar buttons like in Google Docs, you type simple symbols: a # becomes a heading, **text** becomes bold, and - becomes a bullet point. GitHub chose Markdown because it's easy to learn, works in any text editor, and looks clean even in its raw form. Your repository's README.md file is the first thing visitors see — it's like the homepage of your project. A well-written README helps collaborators understand what your project does, how to use it, and how to contribute. If you're building with AI tools like Lovable or V0, a good README also helps other developers (or future you) understand the tech stack, setup instructions, and deployment details. GitHub's web editor has a Preview tab that shows you exactly how your Markdown will look when rendered — so you can write and check your formatting without leaving the browser.

Prerequisites

  • A GitHub account
  • A repository where you want to create or edit a README
  • No coding or special software required

Step-by-step guide

1

Open or create a README.md file in your repository

Navigate to your repository on github.com. If a README.md file already exists, you'll see its rendered content at the bottom of the file list. Click the pencil icon in the top-right corner of the README section to edit it. If no README exists, click the "Add file" dropdown above the file list and select "Create new file." Type "README.md" in the filename field. The .md extension tells GitHub this is a Markdown file.

Expected result: You see the GitHub file editor with either an existing README or a blank file named README.md.

2

Add headings to structure your document

Headings use the # symbol. One # creates the largest heading (H1), ## creates a medium heading (H2), and ### creates a smaller heading (H3). Always put a space between the # and your text. For example, type "# My Project" on the first line for the main title. On the next line, add "## About" for a section heading. Then add "### Features" for a subsection. A good README structure is: project name (H1), description paragraph, About (H2), Features (H2), Getting Started (H2), and Contact (H2).

Expected result: Your editor shows several lines starting with #, ##, or ### followed by section names.

3

Format text with bold, italics, and links

Wrap text in double asterisks for bold: **important text** renders as bold. Use single asterisks for italics: *emphasized text*. For links, use the format [display text](URL) — for example, [Visit our site](https://example.com). You can combine these: **[Bold link](https://example.com)**. To add a horizontal line to separate sections, type three dashes on their own line: ---. These formatting tools let you highlight key information and link to external resources like your deployed app URL or documentation.

Expected result: Your README contains at least one bold word, one italic word, and one clickable link.

4

Create bullet lists, numbered lists, and task checklists

For bullet lists, start each line with a dash and a space: "- First item" on one line, "- Second item" on the next. For numbered lists, use "1. First item" and "2. Second item." GitHub also supports task checklists using "- [ ] Unchecked task" and "- [x] Completed task" — these render as clickable checkboxes, which are great for tracking project progress. Leave a blank line before and after any list to ensure proper formatting. Nested items get two spaces of indentation before the dash.

Expected result: Your editor shows a bullet list, a numbered list, or a task checklist.

5

Add code blocks and inline code

For inline code (small snippets within a sentence), wrap the text in single backticks: `npm run build` renders as a code-formatted snippet. For multi-line code blocks, use triple backticks on the line before and after your code. You can also specify the language after the opening backticks for syntax highlighting — for example, type three backticks followed by "typescript" on the first line, then your code, then three closing backticks. This is especially useful for documenting setup commands or code snippets generated by AI tools like Cursor or Lovable.

Expected result: Your README includes at least one inline code snippet and one code block.

6

Add a table for structured information

Tables use pipes (|) and dashes (-). The first row is the header, the second row is a separator line of dashes, and subsequent rows are data. For example: "| Feature | Status |" on line one, "| --- | --- |" on line two, and "| User login | Done |" on line three. Each column is separated by a pipe character. Tables are perfect for showing tech stack details, feature lists, or comparison charts. Keep tables simple — three to four columns maximum for readability.

Expected result: Your README includes a neatly formatted table with headers and at least two rows of data.

7

Preview your Markdown and commit the file

Click the "Preview" tab at the top of the GitHub editor (next to the "Edit" tab). GitHub will render your Markdown into formatted text so you can see exactly how it will look to visitors. Check that headings are the right size, links are clickable, code blocks are formatted, and tables are aligned. If anything looks off, switch back to the Edit tab and fix it. Once you're satisfied, click the green "Commit changes" button. Add a commit message like "Update README with project documentation" and click "Commit changes" in the dialog.

Expected result: Your formatted README is visible at the bottom of your repository's main page.

Complete working example

README.md
1# My AI-Built App
2
3A web application built with modern AI tools and deployed on Vercel.
4
5## About
6
7This project was created using **Lovable** and connected to GitHub
8for version control and collaboration.
9
10## Tech Stack
11
12| Technology | Purpose |
13| ---------- | --------------- |
14| React | Frontend UI |
15| TypeScript | Type safety |
16| Supabase | Database & auth |
17| Tailwind | Styling |
18| Vercel | Hosting |
19
20## Features
21
22- [x] User authentication
23- [x] Dashboard page
24- [ ] Payment integration
25- [ ] Email notifications
26
27## Getting Started
28
291. Clone this repository
302. Install dependencies with `npm install`
313. Create a `.env` file with your Supabase keys
324. Run `npm run dev` to start the development server
33
34## Links
35
36- [Live App](https://my-app.vercel.app)
37- [Supabase Dashboard](https://supabase.com/dashboard)
38
39## License
40
41MIT

Common mistakes when writing Markdown in a GitHub README File

Why it's a problem: Forgetting the space after # in headings

How to avoid: "#Heading" won't render — you need "# Heading" with a space after the hash symbol.

Why it's a problem: Not leaving blank lines before and after lists

How to avoid: Markdown needs a blank line before a list starts and after it ends. Without it, the list may merge with surrounding text.

Why it's a problem: Using the wrong number of backticks for code blocks

How to avoid: Inline code uses one backtick on each side: `code`. Code blocks use three backticks on the line before and after. Don't mix them up.

Why it's a problem: Forgetting to close bold or italic formatting

How to avoid: Bold needs ** on both sides: **bold text**. A missing closing ** will make the rest of your document bold.

Best practices

  • Start every README with a clear H1 heading that states the project name
  • Include a one-sentence description right below the heading explaining what the project does
  • Use the Preview tab to check formatting before every commit
  • Keep your README updated as your project evolves — outdated documentation is worse than none
  • Add a Tech Stack section so collaborators immediately know what tools and frameworks are used
  • Use task checklists to track feature progress visibly in the repository
  • Link to your live deployment URL so visitors can try the app directly
  • Use code blocks with language hints (```typescript) for proper syntax highlighting

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I built a React + Supabase app using Lovable. Write me a professional README.md in Markdown that includes: project name, description, tech stack table, features checklist, getting started steps, and links. Make it look polished.

Frequently asked questions

Can I use regular HTML in a GitHub README instead of Markdown?

Yes, GitHub README files support a subset of HTML. You can use tags like <img>, <details>, <summary>, and <table>. However, Markdown is simpler and preferred for most formatting needs.

How do I add images to my README?

Use the syntax ![Alt text](image-url). You can drag and drop an image directly into the GitHub editor, and it will upload the image and insert the Markdown for you automatically.

What is the difference between README.md and README.txt?

README.md uses Markdown formatting and is rendered with styled headings, bold text, links, and tables on GitHub. README.txt is plain text with no formatting. Always use .md for GitHub repositories.

Can AI tools generate a README for me?

Yes. Tools like Cursor and Lovable can generate README content based on your project structure. You can also paste your project details into ChatGPT and ask it to write a README in Markdown format, then copy-paste it into GitHub's editor.

How do I make a collapsible section in my README?

Use HTML details and summary tags: <details><summary>Click to expand</summary>Your hidden content here</details>. This is great for long FAQs or optional setup instructions.

Can RapidDev help me set up professional documentation for my project?

Absolutely. RapidDev can create comprehensive README files, contribution guides, and project documentation tailored to your tech stack and audience. This is especially helpful for AI-built apps that need clear setup instructions for collaborators.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.