Beehiiv Test Record — 2026-08-24
Verdict
Beehiiv's current editor parses a pasted text/plain Markdown document into native editor blocks. This is materially better than Substack: headings, inline formatting, nested lists, quotes, dividers, fenced code, GFM tables, remote images and links all survived the tested raw-paste path. A generic rich-HTML paste also preserved ordinary structure, but was not the better default because it mishandled front matter more severely and removed visible task-list state.
Neither paste mode produced publication-ready output for Markdown footnotes, math, Mermaid diagrams, local relative images, Obsidian syntax or expandable HTML. Beehiiv's native Footnotes and HTML snippet controls worked in both its unpublished email preview and unpublished web preview. No native math/LaTeX control was visible in the full insertion menu.
For a first-version Beehiiv handoff, the best output is therefore cleaned plain Markdown plus a destination-specific warning and repair checklist—not pre-rendered rich HTML and not a claim of universal one-click publishing.
Environment and method
- Publication: controlled new publication
Suke's Newsletter. - Drafts: three new unpublished drafts: raw Markdown, rich HTML and native-block controls; no existing content was changed.
- Fixture:
docs/research/fixtures/markdown-portability-test-v1.md(3,876 characters at test time). - Raw mode: fixture dispatched to the editor as
text/plain. - Rich mode: fixture rendered by Marked 16.2.1 (
gfm: true,breaks: false) and dispatched with bothtext/htmlandtext/plainclipboard payloads. - Native mode: Beehiiv's slash menu was used to insert one Footnotes component and one HTML snippet.
- Preview: Beehiiv's built-in unpublished Email/Desktop, Email/Mobile and Web/Desktop previews. No test email was sent and nothing was published.
Mode-level result
| Mode | Result | Measured evidence |
|---|---|---|
| Raw Markdown paste | Best available handoff; partial overall | 1 H1, 16 H2, H3–H6, 15 list items, 4 code blocks, 2 native tables, 2 image nodes and 6 links were created |
| Marked 16.2.1 rich paste | Partial, but inferior default | 1 H1, 17 H2, H3–H6, 12 list items, 4 code blocks, 2 native tables, 2 image nodes, 6 links and 1 mark node were created |
| Native controls | Pass for tested footnote and HTML snippet | Both rendered in Beehiiv's unpublished email and web previews |
| Email preview | Verified without sending | Desktop and mobile preview surfaces rendered the raw-paste draft; native controls also rendered in desktop preview |
| Web preview | Verified without publishing | Raw, rich and native-control drafts rendered in Beehiiv's authenticated draft preview |
Raw Markdown paste
Beehiiv treated a text/plain fixture paste as Markdown and converted supported syntax into native editor nodes. This makes raw Markdown the preferred Beehiiv input mode, provided the source is cleaned first.
| Case | Result | Observed behavior | Evidence |
|---|---|---|---|
| T01 inline formatting and links | Pass with caveat | Emphasis, strike, inline code, HTTPS and mailto links survived; relative URLs still require normalization | top |
| T02 H1–H6 | Pass with caveat | H1–H6 became native headings; YAML separators were stripped but front-matter fields remained as visible paragraphs/list content | top |
| T03 nested lists and tasks | Partial | Nested ordered/unordered lists survived; [x] and [ ] stayed visible text rather than interactive task boxes |
top |
| T04 quote and divider | Pass | Quote and divider became Beehiiv-native custom nodes | top |
| T05 fenced and long-line code | Pass with review | Fenced blocks became native language-aware code blocks; long-line narrow/email overflow remains a visual-review item | footnotes/code |
| T06 small GFM table | Pass | Table became a native Beehiiv table and preserved all tested rows/cells | tables |
| T07 wide table and mobile/email | Partial | Wide table became native, but its cells wrapped tightly in the editor; desktop/mobile email previews require a readability warning | tables, mobile preview |
| T08 remote and local images | Partial | Remote image was imported to Beehiiv's CDN/S3; local relative path remained unresolved and alt text was not retained | tables/images |
| T09 Markdown footnotes | Fail | Reference syntax stayed literal; an indented continuation was misclassified as an html code block |
footnotes |
| T10 inline/block math | Fail | Inline and block math stayed literal; no native math component was created | footnotes/math |
| T11 Mermaid | Partial | Mermaid source became a code block but not a diagram | footnotes/math |
| T12 Obsidian syntax | Fail | Wiki links and transclusions stayed literal; the callout became a quote containing [!NOTE] |
Obsidian |
| T13 raw HTML | Fail | Raw HTML was escaped and shown as literal markup | Obsidian/HTML |
| T14 hard breaks and paragraphs | Partial | Paragraphs survived, but the tested Markdown hard break became two <br> elements and added extra vertical space |
Obsidian/HTML |
| T15 escaping and literal characters | Pass | Escaped Markdown and Unicode content rendered as intended | Obsidian/HTML |
| T16 heading anchor | Partial | Anchor link survived, but preview rewrote it onto Beehiiv's current draft-preview URL | web preview |
Rich HTML paste
The rich-paste path preserved most ordinary constructs but introduced avoidable regressions relative to Beehiiv's own Markdown parser.
| Case | Result | Observed behavior | Evidence |
|---|---|---|---|
| T01 inline formatting and links | Pass with caveat | Ordinary inline formatting and links survived | top |
| T02 H1–H6 | Pass with caveat | H1–H6 survived, but unhandled YAML front matter became an extra H2 and divider | top |
| T03 nested lists and tasks | Partial | Nested lists survived, but task markers/state were removed entirely | top |
| T04 quote and divider | Pass | Both became Beehiiv-native nodes | top |
| T05 fenced and long-line code | Pass with review | Code blocks survived; narrow/email overflow still needs review | footnotes/code |
| T06–T07 tables | Pass with review | Both GFM tables survived as native tables; wide-table readability remains destination-dependent | tables |
| T08 remote and local images | Partial | Remote image was imported; local relative image stayed unresolved; alt text was lost | tables/images |
| T09 Markdown footnotes | Fail | Footnote syntax stayed literal and the indented continuation became a code block | footnotes |
| T10 math | Fail | Math stayed literal | footnotes/math |
| T11 Mermaid | Partial | Source survived as code only | footnotes/math |
| T12 Obsidian syntax | Fail | Wiki links/transclusions stayed literal and the callout degraded to a quote | Obsidian |
| T13 raw HTML | Partial | <details> behavior was removed; summary/body became paragraphs; <mark> highlighting survived |
Obsidian/HTML |
| T14 hard breaks and paragraphs | Pass | Marked's rich HTML produced the intended single hard break and preserved paragraphs | Obsidian/HTML |
| T15 escaping and literal characters | Pass | Escaped Markdown and Unicode rendered correctly | Obsidian/HTML |
| T16 heading anchor | Partial | Anchor survived but was rebound to the Beehiiv draft-preview URL | web preview |
Native controls
Beehiiv's full slash menu visibly exposed H1–H6, three quote styles, lists, section/columns, content break, table of contents, Footnotes, image/file, Code block, Table, HTML snippet and several embeds. No Math or LaTeX option was visible.
| Construct | Available | Verified result | Evidence |
|---|---|---|---|
| Table | Yes | Availability and native output verified through the raw-paste-created tables | menu, tables |
| Code block | Yes | Availability and native output verified through raw paste | menu, footnotes/code |
| Footnotes | Yes | Native anchor and footnote section rendered in both email and web previews | editor, email preview, web preview |
| HTML snippet | Yes | Tested bordered HTML with <strong> rendered in both email and web previews |
editor, email preview, web preview |
| Math/LaTeX | No visible control | Markdown math stayed literal and no native insertion option was visible | menu |
Product implications
- Beehiiv does not need a generic Markdown-to-rich-HTML converter; its own plain-text paste already performs the core conversion better for this fixture.
- The useful Beehiiv product is a preflight cleaner: remove front matter, resolve local images and relative links, convert footnotes, render math/Mermaid safely, normalize Obsidian constructs, and flag wide tables/code for preview.
- Output strategy must vary by destination. Substack prefers rich HTML; Beehiiv prefers cleaned plain Markdown. A universal one-format exporter would encode the wrong abstraction.
- Native Footnotes and HTML snippets prove that some failed Markdown constructs can be repaired inside Beehiiv, but an official programmatic path for inserting those native nodes has not been verified.
- The raw-versus-rich divergence is strong evidence for a compatibility lab/checker with dated platform tests; it is weaker evidence for a full publishing SaaS.
Cleanup
The three controlled raw, rich and native-block drafts were permanently deleted in one scoped bulk action after the screenshots and record were saved. Beehiiv warned that the action could not be undone, then confirmed 3 posts deleted; the Posts screen returned to its empty Write your first post state. No content was published and no email was sent.














