# 02 ยท The email template *From Adam Schoenfeld (adamgtm.com). Part of a kit for beehiiv builders at https://adamgtm.com/design-process/. True as of October 23, 2026.* My weekly issue has one locked format. A beehiiv post template holds the fixed parts. Each week an agent fills the slots from a short spec and my Markdown, then checks the email as readers will see it. This file covers the format, how it's built, the partner block, the traps in beehiiv's email render, and images. ## The format, top to bottom 1. **Masthead.** An ink title bar (my icon, "Adam's GTM Report", the date) and this week's agenda stacked under it, in one frame. It holds only what's true and useful to every reader every week. No welcome sentence. 2. **"Forwarded this email? Subscribe here."** One small line, email only. 3. **[1] Sponsors.** The partner block (below). The agenda line for it stays general ("they make this possible"); it doesn't list names. 4. **[2] Quick takes.** My LinkedIn posts from the week as ledger rows: date, a tag, the logos of the companies the post features, the headline, a one-line take, the comment count and "Join the conversation". A footer row links my live market tracker. 5. **[3] Deep dive.** The issue title as a real H1, the lead card (`04-thumbnails-and-checks.md`), a short TL;DR attached under it, the article as narrative, a reply question, then "Go deeper": a plain list of sources, one row each. The system that ties it together: numbered square ink tiles for the section headers, a thin line with a gold dot connecting them, and every box in paper with an ink frame. Rules I locked along the way: - **One system.** Every box shares one frame and one fill rule. - **The deep dive stays narrative.** I tried tabs inside it and cut them; I write in long form. - **One lead graphic.** A second infographic was one too many. - **A section header replaces any title that repeats it.** The partner block lost its own title row because "[1] Sponsors" already says it. - **Tags say what a post is:** Deal, Launch, Framework, or My take. Use the most specific one; "My take" on every row was too much. - **Count lines in the render, not by eye.** The agenda's Quick takes line fits two lines on a phone. ## How it's built **Before the first issue.** Check that your beehiiv plan has custom HTML blocks (`htmlSnippet`); the partner block depends on them. Have the agent read `learn_post_authoring` and `learn_post_metadata`: they say which markup survives a save, and unsupported markup can disappear without an error. Then build three things once and test them on a throwaway draft: your template, a small script that renders each slot, and the placeholders. Only then make issue one. - **A beehiiv post template** holds the masthead frame, the section headers, the footer and one placeholder paragraph per slot (masthead agenda, partner block, quick takes, each deep dive piece). - **One small JSON spec per issue:** title, agenda line, the quick takes (date, tag, logos, headline, take, comment count, URL), TL;DR, reply question, Go deeper links, the lead image. A script turns each slot into HTML. Plain-text fields get escaped; nothing is typed into HTML by hand. - **The draft:** create it from the template with `save_post` and `post_template_id`. Set the subject, and in the email settings hide beehiiv's own title, subtitle and byline so the masthead comes first. On the web, show the title and subtitle, and hide the thumbnail (the lead card is already in the body). - **The slots:** read the body with `get_post_content(format="editor_html")`, find each placeholder's block hash, and replace the slots with `edit_post_content`. Either send every change in one call from a fresh read, or send one call at a time using the new hashes each response returns. Never reuse hashes from an earlier read. If a placeholder is missing or matches twice, stop and look. Never guess a target. - **The article:** I write in Markdown. It's converted to beehiiv's HTML in chunks and inserted, after its images are uploaded (see Images). - **The checks** (end of this file). A draft with placeholders left is a scaffold, not a finished issue. The title goes everywhere: subject line, masthead agenda and the deep dive's H1. The email hides beehiiv's title, so the issue needs its own H1. On the web that H1 repeats the page title, so hide it there with page CSS (`03-site-builder.md`). ## The partner block What readers see: one spotlight partner (a wordmark and a headline, or the partner's own banner) plus one to five partner rows, each a logo, a name and one line of copy, in the order I set. A week with no spotlight uses equal-weight rows instead. How it's built: - **A custom HTML block (`htmlSnippet`), tables and inline styles only.** beehiiv's native table node drops inline styles and takes its borders from the post theme, so the design wouldn't survive as normal content. HTML snippets do render in email. beehiiv strips `