Substack tables

How to Add a Table in a Substack Post (Without a Blurry Screenshot)

Tables are useful for comparisons, pricing, schedules, and research summaries, but the Substack editor does not offer a normal table block. Pasting raw Markdown leaves the pipes and dashes visible, while pasting a spreadsheet often produces inconsistent results between the web post and the email.

By StackDraft Editorial8 min read
Short answer

For a small static table, use the visual builder below: edit cells or paste from a spreadsheet, choose a style, then copy or download a PNG. Insert the image into your Substack draft, add alt text and a readable text alternative, and check a test email. Images do not preserve clickable cell links.

THE TABLE STUDIOLoading your table…
01 / MAKE IT YOURS

Your words, in good company.

Edit any cell, or paste a selection from your spreadsheet. The first row is your header.

Paste a whole table
Table contents. First row contains column headings. Tab moves between fields; Alt plus arrow keys moves between cells.
#ABCRemove row
H
1
2
3
4/30 rows · 3/8 columns
A little character
02 / READY FOR YOUR READERS

A place in your next post.

Preparing your table…

Your exported image · crisp PNG, with no watermark

Paste into your Substack draft, add alt text, and send yourself a test email. Image cells aren’t clickable or selectable.

Keep a readable text version

Place this below the image for readers who need selectable text. Use a short, descriptive alt text for the image itself.

Prefer Markdown?
Your table stays in this browser. No account or upload.Need interactive data? Try a Datawrapper embed ↗

Open the full table studio →

Prepare the draft while you follow the guide

StackDraft runs locally in your browser. No account or upload required.

Open StackDraft

Does Substack support tables?

Substack supports headings, lists, quotes, links, inline code, images, and several embedded blocks, but it does not currently provide a native table control in the post editor. Substack also states that its post editor does not support Markdown as an input format. That is why a GitHub-style table pasted directly into a draft usually remains plain text instead of becoming rows and columns.

A table also has to survive two renderers: the web post and the HTML email received by subscribers. A layout that looks acceptable in the browser can overflow, shrink, or lose borders in an email client. A carefully sized image is less flexible than a real HTML table, but it is much more predictable across those destinations.

Add a table to Substack step by step

  1. 01

    Build a small table

    Keep it to roughly three or four columns for email. Put short labels in the first row and concise values in each cell.

  2. 02

    Bring your spreadsheet cells

    Use the table builder above to paste a spreadsheet selection or import a CSV. The first row becomes the header. You can also start blank and type directly into the cells.

  3. 03

    Choose a style and check the phone preview

    Choose Sage, Ink, or Rose, then switch to the phone-width preview. Shorten cells or split the table if the text looks too small. The preview is an approximation, so check your actual test email too.

  4. 04

    Copy or download the table image

    Use Copy image to put a PNG on your clipboard. If image copying is unavailable or the paste does not work, use Download PNG and insert the file with Substack’s image button.

  5. 05

    Paste into Substack and add alt text

    Paste into a desktop Substack draft, select the inserted table image, and use its image menu to add a concise description of the table’s purpose and key values.

  6. 06

    Send yourself a test email

    Review the draft at desktop and phone widths, then send a test email. Check that the text is large enough without zooming and that no important column is cropped.

Markdown table example you can copy

The separator row is required. Colons in that row control alignment in many Markdown renderers, although left-aligned text is usually easiest to read in a newsletter. Keep currency, dates, and other compact values consistent down each column.

Markdown
| Story | Format | Status |
| --- | --- | --- |
| Small rituals | Essay | Draft |
| Reading notes | List | Ready |
| Sunday letter | Letter | Idea |

Four ways to publish a table on Substack

There is no single best representation for every dataset. Choose based on how readers will consume the information, not on which method takes the fewest clicks.

MethodBest forMain drawback
Markdown converted to PNGSmall comparisons and summariesText inside the image is not selectable
Manual screenshotA table already designed elsewhereOften blurry, inconsistently cropped, or too small
Headings and listsAccessible, text-heavy informationCell-by-cell comparison is less immediate
Spreadsheet attachment or linkLarge or frequently updated datasetsReaders leave the flow of the post

Make the table readable on mobile and in email

Substack lets authors edit an image’s alt text from the image menu. Alt text should explain what the image is doing in context, not reproduce a massive table cell by cell. For a complex or data-heavy table, add a short text summary immediately before or after the image and link to the full accessible dataset.

  • Prefer three columns; use four only when every cell is short.
  • Move explanations below the table instead of placing paragraphs inside cells.
  • Use sentence case and plain labels rather than abbreviations that need a legend.
  • Split a table by topic when it grows beyond about ten to fifteen rows.
  • Do not communicate status by color alone; include words such as Yes, No, Pass, or Needs review.
  • Summarize the most important conclusion in the surrounding paragraph so the image is not the only source of meaning.

Troubleshooting common table problems

  1. 01

    The pipes and dashes are visible

    You pasted raw Markdown into Substack. Render it in StackDraft first, then copy the prepared body rather than copying from the editor pane.

  2. 02

    The table is too small on a phone

    Reduce the number of columns, shorten cell text, or split the content into two tables. Increasing image dimensions does not fix an overstuffed layout.

  3. 03

    The image did not transfer

    Allow clipboard access and try Copy image again. If the browser or destination does not accept the image, use Download PNG and upload the file with Substack’s image button.

  4. 04

    The information changes frequently

    Publish a concise snapshot in the post and link to the maintained spreadsheet or source. An emailed image cannot update after it reaches a subscriber’s inbox.

Frequently asked questions

Can I paste a table from Google Sheets into Substack?

Paste cells from Google Sheets into StackDraft’s visual builder, then copy or download the table image for Substack. For a large dataset, attach or link the spreadsheet and summarize the key result in the post.

Can I use HTML table code in a Substack post?

Substack does not provide a general raw-HTML editing workflow for posts, and email clients apply their own HTML restrictions. A pasted table may be changed or removed, so it is not a reliable publishing method.

Will a table image look blurry?

It should not if it is generated at high resolution and displayed responsively. StackDraft renders table images at a large canvas size, but the table still needs short cells and few columns to remain legible on a phone.

How do I make a Substack table accessible?

Add concise alt text, describe the important conclusion in normal text, avoid color-only meaning, and provide a link or text alternative when readers need every value.

What is the best table width for a Substack email?

There is no universal pixel width because Substack and email clients resize images. Design for a narrow reading column: three short columns are a safer target than a wide desktop-style table.

Sources and further reading

S
StackDraft Editorial

These guides are maintained alongside StackDraft’s Markdown renderer, clipboard workflow, and publishing checks. Product behavior is verified against the current code; destination-platform behavior is reviewed against official support documentation.

Review the compatibility report
Ready to publish?

Turn the Markdown draft into clean Substack copy.

Preview the post, catch fragile blocks, and copy the title and body separately.

Open StackDraft free