Markdown Table Generator
Easily create and format Markdown tables.
Table Editor
Edit values to generate markdown.
Examples
Filling out a 3×3 team table
Headers: Name | Role | Years
Row 1: Alice | Engineer | 5
Row 2: Bob | Designer | 3| Name | Role | Years |
| --- | --- | --- |
| Alice | Engineer | 5 |
| Bob | Designer | 3 |The first row is rendered as the header; the rest are body rows. The column count of every line matches, so the table renders on any CommonMark renderer.
Empty cells get a placeholder label
Row 0: (empty) | Language | Tier
Row 1: (empty) | TypeScript | 1| Header | Language | Tier |
| --- | --- | --- |
| Cell | TypeScript | 1 |If you leave a cell blank, the generator emits 'Header' in row 0 and 'Cell' elsewhere — the table remains syntactically valid Markdown and renders correctly.
Growing the grid on the fly
Start with 2 rows × 2 cols, click Add Column once, fill: H1 | H2 | H3; R1C1 | R1C2 | R1C3| H1 | H2 | H3 |
| --- | --- | --- |
| R1C1 | R1C2 | R1C3 |Adding a column appends an empty cell to every existing row, so the table stays rectangular. Existing data is preserved on resize.
About this tool
Markdown tables are written as pipe-delimited rows with a separator line of dashes after the header. They render on GitHub, GitLab, Bitbucket, Reddit, Discord, Obsidian, Notion and most static-site generators, but the syntax is fiddly: cell counts have to match the column count, the separator row must use at least three dashes per cell, and a single missing pipe quietly breaks the whole table.
This generator replaces the manual syntax with a small editor: pick how many rows and columns you want, type values into the cells, and watch the Markdown table build itself on the right. Add rows or columns at any time, and reset the editor back to a 3×3 blank grid whenever you want to start over.
Empty cells are auto-filled with placeholder labels (Header for the first row, Cell for the rest) so the output is always syntactically valid. Everything runs in your browser — the data you type never leaves the page.
How to use
Pick the size you need
Start from the default 3×3 grid or change the row/column counts before you start typing. You can also resize after typing — existing data is preserved.
Fill in the cells
Type into each input. The first row is treated as the header and rendered in bold in the preview; the rest are body rows.
Add or reset rows and columns
Use Add Row / Add Column to grow the table, or Reset to clear everything back to a blank 3×3 grid.
Copy the Markdown
Click the copy button next to the output panel to copy the generated table to your clipboard, ready to paste into a README or a forum post.
Use cases
Documentation tables in a README
Sketch the columns you want, type the rows, and paste the result into your Markdown file. The output uses standard pipe syntax that renders on GitHub, GitLab, Bitbucket, and every major static-site generator.
Comparison tables in blog posts and docs
Make a 'Library A vs Library B vs Library C' table with consistent columns for license, size, and feature flags. The generator keeps the column count in sync across every row.
Spec / RFC summaries
List parameter, type, default and description columns once and add rows for every option — no manual pipe-counting.
Test matrices and CI reports
Generate a row-per-test, column-per-environment table for inclusion in a GitHub Actions summary or a Jira ticket.
Output format
| Part | What it looks like |
|---|---|
| Header row | | Name | Role | Years | |
| Separator | | --- | --- | --- | |
| Body row | | Alice | Engineer | 5 | |
Empty cells are filled with the placeholder 'Header' (top row) or 'Cell' (body rows).
Common mistakes
Mistake:Trying to type the pipes and dashes by hand and getting the column count wrong.
Fix:Use the editor — the generator emits one pipe per column boundary and keeps every row aligned.
Mistake:Pasting cells that contain pipes or newlines.
Fix:The generator escapes nothing; a literal | inside a cell will break the column count, and a newline will start a new row. Replace | with the HTML entity | or rephrase.
Mistake:Assuming alignment markers work without enabling them.
Fix:CommonMark supports :--- / ---: / :---: in the separator for alignment, but this generator always emits plain ---. For alignment, edit the separator line by hand after copying.
Mistake:Leaving an entire row blank.
Fix:An empty row renders as | | | | |, which shows up as a visible blank line on most renderers. Delete the row with Reset or fill in placeholder values.
Frequently asked questions
Related guides
CSV and Markdown Tables: Bridging Spreadsheets and Documentation
How to convert CSV rows to clean GFM tables, handle pipes and newlines inside cells, and avoid the most common escaping mistakes.
Building Clean, Accessible HTML Tables
How to use thead, tbody, th, and scope correctly, how to escape pipe characters in cells, and when a table is the right choice vs. CSS layout.
References & standards
Related tools
Barcode Generator
Generate barcodes in 8 formats (CODE128, EAN13, UPC, and more) — configure line width, height, and text display, then download as SVG or PNG.
Base64 Image Encoder
Open the Image workspace in Base64 Toolbox to resize and convert images to Base64 data URIs, then copy HTML, CSS, Markdown or JavaScript snippets.
EXIF Viewer & Cleaner
View and remove EXIF metadata from images. See camera info, GPS location, and dates — then download a clean copy.
Favicon Pack Generator
Generate complete favicon packs with all standard sizes and Apple touch icons
Image Compressor
Compress JPEG, PNG, and WebP images in your browser. No uploads, completely private.
Image Format Converter
Convert images between different formats like PNG, JPG, WebP, and more