Dries Augustyns
ccd516e4e8
feat: add Markdown cut link to footer and page for improved accessibility
2026-05-12 08:07:57 +02:00
ReylanLugo
6aee5db588
refactor(api): rely on auth middleware for domain endpoint permissions
...
Replace per-route apiKey/jwt branching with auth.projectId from middleware,
matching the contacts controller pattern. Preserve JWT admin gating on
POST/DELETE; API keys are project-scoped by design and skip the role check.
Cross-project domain access by ID now returns 404 instead of 403 to avoid
leaking existence.
2026-05-10 22:44:28 -04:00
Dries Augustyns
649bbf6d6b
fix: enhance Quick Start card layout for improved responsiveness and usability
2026-05-10 13:57:46 +02:00
Dries Augustyns
e43f70d8a1
fix: update activity item colors and backgrounds for improved visual distinction
2026-05-10 11:59:54 +02:00
Dries Augustyns
f22da4add1
feat: implement caching for recent activity count to optimize performance and reduce database load
2026-05-10 11:37:31 +02:00
Dries Augustyns
de6335e999
feat: implement bulk contact action selector for improved flexibility in bulk operations
2026-05-10 10:40:40 +02:00
Dries Augustyns
7658a59b5d
feat: enhance campaign scheduling and audience settings UI for better clarity and usability
2026-05-10 09:52:25 +02:00
Dries Augustyns
aaf5ac6530
feat: refactor template editing layout for improved usability and clarity
2026-05-10 09:24:21 +02:00
ReylanLugo
3f30a48c40
feat(api): allow API key authentication for domain endpoints
...
Switch /domains controller from `isAuthenticated` (cookie-only) to
`requireAuth` (cookie OR API key), matching the pattern used by other
project-scoped API endpoints (/v1/send, /contacts, etc.).
API keys are project-scoped credentials with full access; for write
operations the projectId in the request must equal the API key's
projectId. JWT (dashboard) auth retains role-based checks
(requireAdminAccess for POST/DELETE).
Also: improve UX when a domain is already linked to the same project
by returning a clear error instead of the generic "linked to another
project" message.
Refactor DomainService.checkDomainOwnership to make `userId` optional
(needed for API key path) while preserving its existing return shape
and adding `projectId` to the result.
2026-05-09 22:25:17 -04:00
Dries Augustyns
c6340a1dc7
feat: add workflow duplication functionality with API endpoint and UI button
2026-05-09 16:51:36 +02:00
Dries Augustyns
4ba43dd3b6
feat: add external link to edit email templates in SendEmailStepDialog and WorkflowBuilder
2026-05-09 16:36:47 +02:00
Dries Augustyns
d11495061d
feat: add search functionality to campaigns list with debounce effect
2026-05-09 09:10:17 +02:00
Dries Augustyns
fadc19d139
feat: Ability to change subscription status in workflows
2026-05-09 08:43:05 +02:00
Dries Augustyns
2ea1802290
fix: update TemplateSearchPicker to maintain selected template name on change
2026-05-08 08:03:15 +02:00
Dries Augustyns
15bdcf6e49
seo: Enhance copy of landing page
2026-05-07 09:21:30 +02:00
Dries Augustyns
2529c9b428
fix: enhance campaign finalization process to handle pending emails and ensure accurate status updates
2026-05-06 21:48:54 +02:00
Dries Augustyns
4ddafdc041
docs: expand documentation with new sections on importing contacts, unsubscribe pages, and API key management
2026-05-06 21:37:00 +02:00
Dries Augustyns
88be252a29
seo: add comparison pages for Mailjet, Buttondown, and Amazon SES
2026-05-06 20:21:49 +02:00
Dries Augustyns
db5dfc46ce
seo: add MX record checker and header checker tools
2026-05-06 19:40:25 +02:00
Dries Augustyns
e2ce5d4e96
seo: Add dkim, dmarc, spf check
2026-05-06 17:06:14 +02:00
Dries Augustyns
735acff454
feat: add sanitize-html for improved email content sanitization
2026-05-06 11:06:50 +02:00
Dries Augustyns
1193d6c7e6
log: remove detailed logging of full SES notification for inbound email
2026-05-06 10:46:47 +02:00
Dries Augustyns
62661ae45f
log: improve logging for inbound email notifications and enhance email content parsing
2026-05-06 10:37:39 +02:00
Dries Augustyns
4587e9d670
fix: enhance email content parsing and logging for better debugging
2026-05-05 20:35:36 +02:00
Dries Augustyns
88a8a02e53
ui: add SVG favicon and update favicon links for consistency
2026-05-05 08:34:41 +02:00
Dries Augustyns
cbb3bffcf4
fix: update middleware matcher to exclude webmanifest files
2026-05-05 08:25:51 +02:00
Dries Augustyns
80ef65e04b
docs: update README to clarify self-hosted alternative and add inbound emails feature
2026-05-04 21:15:54 +02:00
Dries Augustyns
361ec0b1eb
refactor: convert forwardRef components to function components for consistency
2026-05-04 21:08:14 +02:00
Dries Augustyns
ed9027b4ef
refactor: implement step dialog components for workflow editing
2026-05-04 20:25:19 +02:00
Dries Augustyns
d1f357c300
fix: update segment filter logic to retain value and unit, enhance activity name mapping
2026-05-04 19:39:32 +02:00
Dries Augustyns
a126563542
fix: update segment filter logic to retain value and unit, enhance activity name mapping
2026-05-04 19:35:29 +02:00
Dries Augustyns
a3cc62213f
feat: add segment membership operators and enhance segment filter functionality
2026-05-04 19:07:04 +02:00
Dries Augustyns
2d05c3fbc1
refactor: remove unused .png files
2026-05-04 18:17:31 +02:00
Dries Augustyns
c0752e1363
ui: refine README introduction for clarity and conciseness
2026-05-04 18:16:30 +02:00
Dries Augustyns
1b09ec1e13
ui: enhance Open Graph image dimensions and styling for improved social sharing
2026-05-04 18:14:55 +02:00
Dries Augustyns
0f00ca1b8c
feat: add 'notTriggeredWithin' operator to segment filters for enhanced event tracking
2026-05-04 18:04:24 +02:00
Dries Augustyns
7615b62945
fix: update not found handling in GET route to return 404 response
2026-05-04 14:09:19 +02:00
Dries Augustyns
ba23a1c6fa
fix: replace font loading method with utility function for improved performance
2026-05-04 12:45:15 +02:00
Dries Augustyns
4b5815c1d6
ui: update Open Graph and Twitter card images for various pages to enhance social sharing
2026-05-04 12:32:51 +02:00
Dries Augustyns
29883ffc71
fix: enhance project name validation to exclude invisible and decorative characters
2026-05-03 08:14:18 +02:00
Dries Augustyns
5724ab9536
feat: add project switching functionality to command palette
2026-05-02 16:28:25 +02:00
Dries Augustyns
0c15cc84df
seo: update descriptions for Brevo, Customer.io, and other email alternatives to enhance clarity and appeal
2026-05-02 15:02:23 +02:00
Dries Augustyns
a729789922
seo: add spam checker tool with analysis for email content and subject lines
2026-05-02 14:03:58 +02:00
Dries Augustyns
26ec5864ae
Merge branch 'next' of https://github.com/useplunk/plunk into next
2026-05-01 21:55:45 +02:00
Dries Augustyns
48425d1df1
feat: implement early fraud warning handling in webhooks
2026-05-01 21:55:32 +02:00
Dries Augustyns
a5e8d239ee
Merge pull request #356 from useplunk/release-please--branches--next--components--plunk
v0.10.0
2026-05-01 20:13:21 +02:00
Dries Augustyns
532293e52a
Resolve linting errors
2026-05-01 19:55:58 +02:00
github-actions[bot]
fd066a6991
chore(next): release 0.10.0
2026-05-01 17:45:19 +00:00
Dries Augustyns
bb72911fa2
feat: enhance contact addition with bulk email lookup and subscription options
2026-05-01 19:44:48 +02:00
Dries Augustyns
9fafeb7d4b
ui: adjust spacing for customer logos section
2026-05-01 10:57:37 +02:00