MCPcopy
hub / github.com/useplunk/plunk

github.com/useplunk/plunk @v0.12.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.12.0 ↗
1,742 symbols 4,602 edges 438 files 371 documented · 21%
README

card.png

Plunk

The Open-Source Email Platform







<a href="https://github.com/useplunk/plunk/graphs/contributors"><img src="https://img.shields.io/github/contributors/useplunk/plunk" alt="Contributors"/></a>
<a href="https://github.com/useplunk/plunk/actions"><img src="https://img.shields.io/github/actions/workflow/status/useplunk/plunk/docker-publish.yml" alt="Build Status"/></a>
<a href="https://github.com/useplunk/plunk/blob/next/LICENSE"><img src="https://img.shields.io/github/license/useplunk/plunk" alt="License"/></a>
<a href="https://github.com/useplunk/plunk/stargazers"><img src="https://img.shields.io/github/stars/useplunk/plunk" alt="Stars"/></a>
<a href="https://github.com/useplunk/plunk/issues"><img src="https://img.shields.io/github/issues/useplunk/plunk" alt="Issues"/></a>
<a href="https://github.com/useplunk/plunk/network/members"><img src="https://img.shields.io/github/forks/useplunk/plunk" alt="Forks"/></a>
<a href="https://github.com/useplunk/plunk/pkgs/container/plunk"><img src="https://img.shields.io/badge/docker-available-blue?logo=docker" alt="Docker"/></a>
<a href="https://github.com/sponsors/driaug"><img src="https://img.shields.io/badge/sponsor-❤-ff69b4" alt="Sponsor"/></a>
<a href="https://docs.useplunk.com"><img src="https://img.shields.io/badge/docs-docs.useplunk.com-black" alt="Documentation"/></a>
<a href="https://useplunk.com/discord"><img src="https://img.shields.io/badge/discord-join-5865F2?logo=discord&logoColor=white" alt="Discord"/></a>

Introduction

Transactional emails, marketing campaigns, and workflow automation — in one platform. Self-hostable, $0.001 per email, no contact limits.

An open-source, self-hosted alternative to tools SendGrid, Resend or Mailgun.

Features

  • Transactional Emails: Send emails straight from your API with template support and variable substitution
  • SMTP: Use Plunk as an SMTP relay to send emails from any existing tool or framework
  • Campaigns: Send newsletters and product updates to large audiences
  • Workflows: Create advanced automations with triggers, delays, and conditional logic
  • Segments: Organize contacts with dynamic filtering and target the right audience
  • Contact Management: Manage contacts with custom fields and full activity history
  • Analytics: Track opens, clicks, bounces, and engagement metrics in real-time
  • Custom Domains: Verify and send from your own domains with DKIM/SPF support
  • Inbound Emails: Receive and process incoming emails with custom routing rules

Sponsors

Plunk is made possible by the support of our sponsors. If you self-host Plunk, consider supporting via GitHub Sponsors.

Self-hosting Plunk

The easiest way to self-host Plunk is by using the plunk Docker image. You can pull the latest image from Github.

A complete guide on how to deploy Plunk can be found in the documentation.

Community

Contributing

You are welcome to contribute to Plunk. You can find a guide on how to contribute in CONTRIBUTING.md.

Contributors

License

AGPL-3.0 License - see LICENSE for details.

Extension points exported contracts — how you extend this code

ErrorResponse (Interface)
* Standardized error response format
apps/api/src/app.ts
NtfyNotification (Interface)
(no doc)
packages/types/src/notifications/ntfy.ts
DomainUnverifiedEmailProps (Interface)
(no doc)
packages/email/src/emails/DomainUnverified.tsx
Translations (Interface)
(no doc)
packages/shared/src/i18n/index.ts
EmptyStateProps (Interface)
(no doc)
packages/ui/src/components/molecules/EmptyState.tsx
Window (Interface)
(no doc)
apps/wiki/components/api-url.tsx
SwitchOfferProps (Interface)
(no doc)
apps/landing/src/components/SwitchOffer.tsx
SecurityWarningBannerProps (Interface)
(no doc)
apps/web/src/components/SecurityWarningBanner.tsx

Core symbols most depended-on inside this repo

createContact
called by 370
test/helpers/factories.ts
create
called by 192
apps/api/src/services/SegmentService.ts
processStepExecution
called by 124
apps/api/src/services/WorkflowExecutionService.ts
createWorkflow
called by 113
test/helpers/factories.ts
createSegment
called by 111
test/helpers/factories.ts
update
called by 108
apps/api/src/services/SegmentService.ts
now
called by 102
test/helpers/time.ts
createUserWithProject
called by 101
test/helpers/factories.ts

Shape

Function 837
Method 512
Interface 262
Class 126
Enum 5

Languages

TypeScript100%

Modules by API surface

apps/api/src/services/NtfyService.ts49 symbols
apps/web/src/pages/contacts/index.tsx36 symbols
apps/api/src/services/SegmentService.ts31 symbols
test/helpers/factories.ts29 symbols
apps/api/src/exceptions/index.ts29 symbols
apps/api/src/services/ContactService.ts28 symbols
apps/api/src/services/keys.ts25 symbols
apps/web/src/components/workflow-steps/ConditionStepDialog.tsx24 symbols
apps/api/src/services/SecurityService.ts23 symbols
apps/api/src/services/QueueService.ts23 symbols
apps/api/src/services/WorkflowService.ts22 symbols
apps/api/src/services/WorkflowExecutionService.ts22 symbols

Dependencies from manifests, versioned

@aws-sdk/client-s33.937.0 · 1×
@aws-sdk/client-ses3.937.0 · 1×
@codemirror/lang-html6.4.11 · 1×
@codemirror/theme-one-dark6.1.3 · 1×
@codemirror/view6.39.0 · 1×
@dnd-kit/core6.3.1 · 1×
@dnd-kit/modifiers9.0.0 · 1×
@dnd-kit/sortable10.0.0 · 1×
@eslint/js9.39.1 · 1×
@formatjs/cli6.7.4 · 1×
@hookform/resolvers3.9.1 · 1×
@number-flow/react0.5.9 · 1×

Datastores touched

plunkDatabase · 1 repos

For agents

$ claude mcp add plunk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact