Features
Everything you need to run email properly
No feature theatre: each item below is implemented in the product today. Where something is still on the roadmap, it says so.
Contacts that stay clean
One row per person per workspace, enforced by the database rather than by convention.
- Addresses are normalized and deduplicated on a unique constraint, so the same person cannot be imported twice.
- Custom fields hold whatever your business needs — plan, revenue, signup source — and are queryable in segments.
- Consent status, timestamp and source are stored per contact as GDPR evidence.
- Soft deletion keeps campaign history intact; separate anonymization satisfies erasure requests.
- Every contact is scoped to a workspace and isolated from every other workspace by default.
CSV imports that survive big files
Uploads go straight to private storage and are processed in the background — the browser never waits.
- Map CSV columns to contact fields, with automatic detection of common header spellings.
- Preview the first rows before committing to anything.
- Rows are validated and upserted in batches, so a 500,000-row file uses the same memory as a small one.
- A bad row is recorded with its line number and reason instead of aborting the import.
- Suppressed addresses are skipped automatically, so an old export cannot resurrect an unsubscribe.
Segments with real logic
Nested AND/OR groups over attributes, custom fields, list membership and past engagement.
- Operators for text, numbers and dates, plus subscription state, list membership and campaign engagement.
- Target people who opened a specific campaign — or who did not.
- A live count shows how many contacts match before you save.
- Rule definitions are validated against an explicit allow-list of fields, never run as raw input.
- Membership is computed in the background so campaign preparation is instant, not a re-evaluation.
An AI agent that writes campaigns
Describe the business, audience, offer and call to action. Get a complete, editable campaign.
- Returns at least three genuinely different subject lines, preview text, headline, sections and a plain-text version.
- The model returns structured copy only — never HTML, CSS or code.
- A deterministic transform turns that copy into the email, so the same brief always produces the same layout.
- Brand voice, language, mandatory and prohibited information are all part of the brief.
- Usage is tracked per workspace and metered against your plan’s monthly AI allowance.
A visual editor built for email
Block-based editing that produces table-based HTML real inboxes render correctly.
- Headings, text with markdown, buttons, images, dividers, spacers and sanitized custom HTML.
- Desktop, mobile and plain-text previews rendered by the same code that sends the campaign.
- Autosave with optimistic concurrency, so a second tab cannot silently overwrite your work.
- Link validation catches broken and unsafe URLs before you send.
- Merge tags personalize each message; values are escaped so a contact field cannot inject markup.
Reliable, provider-backed sending
Each recipient gets an individual message — never a shared BCC envelope.
- Schedule a campaign or send immediately, with an explicit confirmation step before anything goes out.
- The recipient list is frozen into an immutable snapshot before the first message leaves.
- Delivery is paced to your provider quota and retried on transient failures.
- Every message carries List-Unsubscribe and List-Unsubscribe-Post headers.
- A provider interface keeps the door open for other delivery backends.
Analytics that do not slow down
Delivery events are stored append-only and partitioned by month; dashboards read rollups.
- Sent, delivered, opened, clicked, bounced, complained, unsubscribed and failed — all tracked.
- Per-link click performance for every campaign.
- Unique opens and clicks counted separately from totals.
- Daily rollups per campaign and per workspace, recomputed idempotently.
- Opens are labelled as approximate, because image proxies make them so.
Automations
Event-triggered journeys stepped by the background worker.
- Triggers on contact creation, list subscription, segment entry and campaign engagement.
- Steps for waiting, sending, tagging, list membership and conditional branching.
- Each run advances one step at a time and sleeps until its next scheduled wake-up.
- Re-entry rules stop a contact being caught in the same journey twice.
- Journey authoring is on the roadmap; the schema, run engine and queue are already in place.
Deliverability and compliance
The parts that decide whether you reach the inbox
Consent and suppression are enforced automatically, so they hold even if something in the interface misbehaves.
One-click unsubscribe
RFC 8058 compliant: mail clients can unsubscribe without opening a browser, which Gmail and Yahoo now require of bulk senders. Tokens are signed and non-enumerable.
Automatic suppression
Hard bounces and complaints add the address to a permanent workspace suppression list. Suppression is re-checked in the moments before each send, not only when the campaign was built.
Consent evidence
Status, timestamp and source are recorded per contact, and imports make consent an explicit, auditable choice rather than a silent default.
Domain authentication
Add your domain and publish the generated DKIM, SPF and DMARC records. Live sending is refused until the domain is verified and the sender address belongs to it.
Data subject rights
Export every contact with its consent trail as CSV, or anonymize a contact in place so aggregate history stays valid while personal data is gone.
Retention control
Raw delivery events have a configurable retention window and are purged nightly. Counters and daily rollups survive, so reporting is unaffected.
Platform
Reliable, and built to scale
Isolated by default
Every workspace’s data is scoped and kept apart from every other, so a bug elsewhere in the product cannot leak it.
Teams and roles
Owner, admin, editor and viewer roles, backed by organizations, so access matches what each teammate should touch.
Built to scale
Imports, sending and reporting are designed to hold up at high volume — the same experience at 1,000 contacts and at 1,000,000.
See it with your own list
The free plan runs a real campaign end to end — import, segment, generate, send and report.
