Newsletter overview

Inkform can email your readers when you publish. You get double opt-in signup, campaign sending, open and click tracking, one-click unsubscribe, and automatic suppression of addresses that bounce or complain — without running any of it yourself.

The whole flow

  1. A reader subscribes. Your site posts their address to the public signup endpoint. They're stored as pending and emailed a confirmation link.
  2. They confirm. Clicking the link flips them to active. Only active subscribers ever receive a campaign.
  3. You publish a post. Depending on the cadence you chose, a campaign goes out immediately or is batched into a digest.
  4. The campaign is rendered per recipient. Each subscriber gets their own tracking pixel, click-rewritten links, and a signed unsubscribe link.
  5. Delivery events flow back. Resend reports delivered, bounced, and complained; the last two suppress that address automatically.
  6. They can leave in one click. Every send carries RFC 8058 one-click unsubscribe headers, so Gmail and Outlook show a native unsubscribe button.

What you have to build

Almost nothing — except step 1. The platform can't collect signups for you, because the form lives on your site. That's the one integration:

<SubscribeForm
  projectId={process.env.NEXT_PUBLIC_INKFORM_PROJECT_ID}
  apiBaseUrl="https://api.inkform.dev"
/>

Full walkthrough, including a version with no framework dependency: Add newsletter signup to a site.

Double opt-in is mandatory

There is no setting to turn it off, and no API path that creates an active subscriber directly — POST /api/v1/subscribers also creates a pending one and mails a confirmation.

This is deliberate. Mailing people who never confirmed is the fastest way to accumulate spam complaints, and complaints damage deliverability for every site sending from your domain — not just the one that caused them.

The practical consequence: importing an existing list means everyone gets a confirmation email, and only the ones who click come across.

Tracking

Opens are tracked with a 1×1 pixel; clicks are tracked by rewriting links to a redirect that records the click and forwards on. Recorded IPs are hashed with a secret salt before storage — raw addresses are never persisted.

Click-tracking links are signed, so the redirect only ever forwards to a URL Inkform itself put in that campaign. A link with a missing or tampered signature is rejected rather than followed.

Resend's own open/click tracking is intentionally left off, so opens and clicks aren't double-counted against the self-hosted pixel and redirect.

Where to go next