---
title: Newsletter Editor with Pre-Send Checks and Test Sends
description: Write newsletters in a block editor with images, buttons and merge tags. SendHQ flags dead links and missing alt text, reviews each issue before it sends, and schedules it.
canonical: https://sendhq.cc/newsletter/editor
last-updated: 2026-11-06
updated: 2026-11-06
---
# A newsletter editor that checks your work before it goes out

Write each issue in a block editor or paste Markdown. SendHQ points out problems while you write, runs a review before anything is sent, lets you send a test to yourself with a real reader's details filled in, and sends now or at the time you pick.

[Start for $19 a month](https://sendhq.cc/app?plan=indie_hackers_marketing&price=19) [SendHQ for newsletters](https://sendhq.cc/newsletter.md)

## Who it is for

- **Indie founders** who write their own launch notes and want a second pair of eyes before 3,000 people read a typo.
- **Creators running a newsletter** who send a weekly issue with images and links and need it to look right in Gmail.
- **SaaS teams sending product updates** who send release notes and want a broken link or an empty merge tag caught before customers see it.
- **Agencies** who prepare issues for several clients and need the same checks on every one.

## Write in blocks or in Markdown

- **Slash commands.** Type `/` to add a heading, list, quote, image, button, callout, divider, code block or raw HTML block.
- **Images.** Upload, drag and drop, or paste. PNG, JPEG, GIF and WebP up to 5 MB are stored by SendHQ and served from `sendhq.cc/i/` with a long cache, so older issues keep their pictures.
- **Buttons and callouts** are built as email HTML with inline styles, the way mail apps expect it.
- **Merge tags as chips.** Insert `{{first_name | there}}` and similar tags as chips with a fallback, so a reader without a name gets “Hi there” instead of “Hi ,”.
- **HTML when you need it.** An HTML block keeps a hand-coded section as you wrote it, and whole issues can still be written in HTML.
- **Markdown input.** Paste Markdown into the editor, or send a `markdown` field through the API and SendHQ converts it into the same blocks.

## Problems flagged as you write

The editor marks issues in place, before you get to the review step:

- Links that go nowhere: empty, `#`, or an example.com placeholder.
- Images without alt text, which is what readers see when images are blocked.
- Merge tags for fields your contacts do not have, which would render empty for everyone.
- Leftover drafting text such as TODO, TBD, XXX or lorem ipsum.

## The review before you send

Before an issue sends or is scheduled, SendHQ runs a checklist. Anything marked **Blocks** has to be fixed first; a **Warns** item is your call.

| Check | What it looks for | Result |
| --- | --- | --- |
| Sender | A From address on a domain you have verified | Blocks |
| Subject and content | A subject and a body exist | Blocks |
| Audience | At least one person in the list or segment can receive it | Blocks |
| Placeholder links | Links that are empty, # or example.com | Blocks |
| Email size | HTML over 102 KB, where Gmail clips the message and hides the rest, including the unsubscribe link | Blocks |
| Postal address | A mailing address for the footer, which CAN-SPAM and CASL require in marketing email | Warns |
| Merge tags | Unknown fields, and name tags without a fallback | Warns |
| Links | Link shorteners such as bit.ly, and plain http:// links | Warns |
| Wording | Phrases spam filters watch for, such as “act now” or “100% free” | Warns |
| Subject and preview | Subjects over 70 characters or in all caps, and a missing preview line | Warns |
| Images and leftovers | Missing alt text and placeholder text | Warns |
| Test email | Whether you have sent yourself a test | Warns |

An unsubscribe link and one-click unsubscribe headers are added to every issue, so that is never something you have to remember.

## Test sends and previews

- Send a test to up to 5 addresses at once. The subject is marked `[Test]` and the test never goes to your list.
- Pick a real contact and the test fills merge tags with their name and fields, so you see exactly what they will get. Without one, a sample reader is used.
- Preview the issue as any contact in the editor before you send a test.
- Your usual test addresses can be saved, and a workspace can send up to 100 test emails a day.

## Schedule it

Pick a date and time from a minute to a year ahead. The same review runs when you schedule, so a scheduled issue cannot be missing its sender or audience. A job that runs every minute starts each issue when its time comes. You can unschedule a draft at any time before it starts.

A scheduled issue follows your daily sending limit like any other send. New workspaces start at 100 emails a day and climb to 50,000 with healthy sending, so a large list may finish over more than one day while the limit grows.

## From the API and your AI agent

An agent can draft an issue from Markdown, read the review, send you a test and schedule it, then wait for your go-ahead before anything reaches the list. The same features are in the REST API under `/api/v1`, the `sendhq` CLI, and the MCP server, so Claude, ChatGPT or Cursor can do this work for you through the hosted connector at `https://mcp.sendhq.cc/mcp`. See the [campaigns API reference](https://sendhq.cc/docs/api-reference/campaigns.md).

REST API

```
# Create a draft from Markdown
curl https://sendhq.cc/api/v1/broadcasts -X POST \
  -H "Authorization: Bearer $SENDHQ_API_KEY" -H "Content-Type: application/json" \
  -d '{"name":"Issue 42","list_id":"lst_123","from":"News <news@example.com>","subject":"Issue 42, {{first_name | friend}}","markdown":"Hi {{first_name | there}},\n\nThis week..."}'

# Read the review, send a test filled from a real contact, then schedule
curl https://sendhq.cc/api/v1/broadcasts/brd_123/checks -H "Authorization: Bearer $SENDHQ_API_KEY"
curl https://sendhq.cc/api/v1/broadcasts/brd_123/test -X POST -H "Authorization: Bearer $SENDHQ_API_KEY" \
  -H "Content-Type: application/json" -d '{"to":["me@example.com"],"contact_id":"con_456"}'
curl https://sendhq.cc/api/v1/broadcasts/brd_123/schedule -X POST -H "Authorization: Bearer $SENDHQ_API_KEY" \
  -H "Content-Type: application/json" -d '{"scheduled_at":"2026-11-10T08:00:00Z"}'
```

## Honest limits

- The checks catch common mistakes. They do not predict spam-folder placement, and the wording check is a short list of phrases, not a spam score.
- Issues that send a published template get their subject and body from the template, so the content checks run on the template instead.
- There are no drip sequences or automations beyond a welcome email per list.

## Questions

**Can I write a newsletter in Markdown?**

Yes. Paste Markdown into the editor, or send a markdown field when you create a broadcast through the API. SendHQ converts it into editor blocks and email-safe HTML.

**What does SendHQ check before a newsletter sends?**

It blocks a send with an unverified sender, no subject or content, nobody in the audience, placeholder links, or HTML over Gmail's 102 KB clipping limit. It warns about a missing postal address, merge tags without fallbacks, link shorteners, spam-filter wording and a missing test send.

**How many addresses can a test go to?**

Up to 5 addresses per test, with merge tags filled from a contact you choose. A workspace can send up to 100 test emails a day.

**Can I schedule a newsletter?**

Yes, from one minute to one year ahead. The review runs when you schedule, the issue starts within a minute of the chosen time, and you can unschedule it until then.
