Commit Graph

25 Commits

Author SHA1 Message Date
KM Koushik b20f3b5d74 fix: keep paid limits during Stripe retries (#386) 2026-04-01 13:37:09 +11:00
KM Koushik 62e0a1db88 feat: add contact-book variable registry for campaign personalization (#359)
* feat: add contact-book variable registry for campaign personalization

* test: include contact-book variables default in service expectation

* fix: address personalization review issues

* fix text

* fix: normalize contact variable access across contact flows

* stuff

* fix
2026-03-08 00:03:58 +11:00
Anish de9bbcdc00 Fix typo in double-opt-in confirmation message (#367) 2026-03-01 10:45:48 +11:00
KM Koushik e3e9635a5f feat: add customizable contact double opt-in flow (#350)
* feat: add customizable contact double opt-in flow

* test: add double opt-in service coverage

* fix: address review comments for double opt-in PR

- Make pending status conditional on doubleOptInEnabled flag
- Backfill legacy unsubscribeReason for reliable pending detection
- Add doubleOptInContent to contact book listing select
- Fix duplicate toast on DOI editor subject save failure
- Harden searchParams parsing against string[] values
- Make default DOI template use link mark for clickable URL
- Make public API create+update atomic via transaction
- Prevent contact upsert failure when DOI email send fails
- Fix empty string template variable replacement

Co-authored-by: opencode <opencode@anthropic.com>

* fix: harden double opt-in confirmation safeguards

Preserve explicit unsubscribe intent in DOI flows and prevent confirmation links from re-subscribing opted-out contacts. Also sanitize subscribe-page error messaging and use timing-safe hash comparison for link verification.

* ui stuff

* fix: require doubleOptInUrl in double opt-in templates

* feat: add configurable from address for double opt-in emails

* feat: add resend confirmation flow for pending contacts

* fix: move subscribe confirmation to explicit POST flow

* test: add contact book public API endpoint coverage

* docs: add double opt-in documentation and update OpenAPI spec

Add a user guide for the double opt-in feature covering setup, contact
statuses, email customization, template variables, and best practices.
Update the OpenAPI spec to include doubleOptIn fields in all contactBook
request/response schemas.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: opencode <opencode@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 00:34:20 +11:00
KM Koushik 487902421b feat: add web testing foundation with infra-backed suites (#349)
* feat: add web test framework with infra-backed suites

* fix: honor DATABASE_URL env in integration prepare script

* fix: apply web test review feedback

* fix: streamline web test infra lifecycle and workflow scope
2026-02-16 09:13:29 +11:00
KM Koushik 8676965019 feat: add webhooks (#334) 2026-01-18 20:50:54 +11:00
Dave Stockley 6786ff003e feat: contact books public api (#336)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-17 17:24:25 +11:00
KM Koushik 76fdad6c81 feat: expose domain dns records via api (#259) 2025-09-27 09:40:14 +10:00
KM Koushik 55d8c7e998 block sending emails on limits (#216) 2025-09-08 18:08:57 +10:00
KM Koushik 79d1ebaf36 fix build and some docs 2025-09-06 06:01:03 +10:00
KM Koushik 07c53d3f58 rebrand to useSend (#210) 2025-09-03 08:21:55 +10:00
KM Koushik 3f9094e95d feat: make billing better (#203) 2025-08-25 22:35:21 +10:00
KM Koushik 609e4d04eb fix build 2025-07-28 00:01:43 +10:00
KM Koushik 4957ea822f feat: add list emails api (#167) 2025-06-01 10:07:57 +10:00
KM Koushik 14557a96ac docs: fix node sdk initialization (#163) 2025-05-17 14:13:32 +10:00
KM Koushik b5ebd002e5 add analytics (#162) 2025-05-11 23:34:21 +10:00
KM Koushik 70026cb11d domain apis (#146)
* fix: create domain api

* add domain apis

* fix url

---------

Co-authored-by: harshsbhat <harsh121102@gmail.com>
2025-04-05 06:48:03 +11:00
KM Koushik 1ed5c8009f add team management (#131)
* add team management

* add more team management

* add join team page
2025-03-26 22:02:49 +11:00
KMKoushik 9c9b7616c1 add domain copy to pricing features 2025-03-23 09:32:00 +11:00
KMKoushik 66a9b73269 fix usage value 2025-03-23 08:47:11 +11:00
KM Koushik 403ad8b93e add stripe (#121)
* add some stripe stuff

* more stripe stuff

* more stripe things

* more stripr stuff

* more stripe stuff

* more stripe stuff

* add more stuff

* add more stripe stuff

* more stuff

* fix types
2025-03-23 07:06:56 +11:00
KM Koushik bb0d54188c add email and subject search (#78) 2024-11-03 09:29:37 +11:00
KM Koushik f77a8829be Improve Self host setup (#30)
* Add self host setup

* Improve blunders

* Move to bull mq

* More changes

* Add example code for sending test emails
2024-06-24 08:21:37 +10:00
KMKoushik 80878679cd Add attachment support 2024-04-19 20:58:30 +10:00
KMKoushik 4d0441791b Initialize API 2024-04-09 09:50:56 +10:00