beth
Email campaign workspace

Send thoughtful campaigns, without the busywork.

beth is a free email campaign workspace for importing contacts, writing plain-text campaigns, and sending personalized messages through Resend.

Uses Resend for email delivery, Upstash QStash for queued batches, and Neon Postgres for campaign data.

Campaign flow

From draft to delivery

Made for delivery
A

Import contacts

CSV or individual subscribers

B

Write your message

Plain text with personalization

C

Queue delivery

Small batches, handled in background

Campaign activityProgress · opens · clicks

A calmer way to send

Everything your campaign needs. Nothing to hand-code.

beth brings list management, personalization, domain setup, and delivery status into one focused workspace.

01

Write in plain text

Write the message in your own words. beth formats paragraphs, turns pasted URLs into links, and sends a plain-text alternative.

02

Make every email personal

Use {{first_name}}, {{name}}, and {{email}} to address each subscriber by their contact details.

03

Send in queued batches

Campaigns are split into small jobs and delivered through QStash, so long subscriber lists are handled outside the request that starts the send.

04

See what happens next

Follow campaign progress and review recorded opens and link clicks from one campaign view.

Simple by design

A clear path to your next send.

Start with the people who asked to hear from you. beth takes care of the campaign plumbing while you focus on the message.

Go to the workspace
  1. 1

    Bring your contacts

    Import a CSV or add subscribers individually.

  2. 2

    Connect your sending domain

    Add the DNS records Resend provides for authentication.

  3. 3

    Write and send

    Compose a plain-text campaign and let the queue handle delivery.

Good to know

Common questions

Do I need to write HTML to create a campaign?

No. Write plain text in the composer. beth formats paragraphs and links for HTML email, then includes a plain-text version too.

How does beth handle large contact lists?

beth stores campaign recipients in Neon Postgres, splits pending recipients into small batches, and queues each batch through Upstash QStash for delivery by Resend.

Can I personalize emails for each subscriber?

Yes. Add {{first_name}}, {{name}}, or {{email}} to your subject or message. beth fills in the value for each contact when that batch is sent.

Ready to send your next campaign?

Open your workspace to manage contacts and compose an email.

Open beth