NetSendo Logo
v2.0.8- Mailing Lists — Grid View Action Buttons Unresponsive:

Open-source Email & SMS marketing you host yourself

Full control over data, ready-made integrations, AI for content creation, automation and webhooks. Set up in Docker in 5 minutes.

NetSendo Dashboard
NEW • AI Module

AI Campaign Architect

Strategic Email + SMS campaign planner that creates your plan, logic, and forecasts — before you send your first message.

4-Step Wizard

Business context → Audience → AI Strategy → Forecast & Export

Campaign Blueprint

Message timeline, goals (education/sales/reminder) and IF/THEN logic

ROI Forecast

Industry benchmarks + sliders that calculate ROI in real-time

Recommended message count and channels (Email/SMS)
Schedule and timing optimization
Segmentation (leads vs customers, active vs inactive)
Behavior logic (opened / clicked / purchased)
AI Campaign Architect Dashboard
New tables: campaign_plans, campaign_plan_steps
Export: Drafts / Scheduled
12 languages for generation
PL/EN translations

Why NetSendo?

Built for developers who want control, privacy, and flexibility without sacrificing modern features.

Campaign Architect
AI-powered strategic planner. Design campaign flow, segments, IF/THEN logic, and forecast ROI.
Self-hosted / Docker
Keep your data private. Deploy on your own servers with a simple Docker Compose setup.
Email & SMS Marketing
Unified platform for both channels. Send campaigns, newsletters, and transactional messages.
AI Assistant
Generate subject lines and email content with AI. Supports OpenAI, Anthropic, and localized models.
Webhooks & API
Real-time event triggers. Build custom automations with comprehensive API access.
Open Source
Transparent development, source-available. Community-driven features with Silver & Gold plans.

How it works

01

Deploy in Docker

Run docker compose up. NetSendo starts in seconds with Postgres and Redis included.

02

Add Mailbox

Connect your SMTP server, Gmail, or API provider like SendGrid/Mailgun.

03

Plan & Launch

Design campaign strategy in Campaign Architect, export to campaigns and launch.

AI-Powered Content Creation

Let AI write your
campaigns in seconds

Stop staring at a blank screen. Netsendo's AI assistant can generate engaging subject lines, write full email body content, and even take voice dictation to craft your message.

Multi-Model Support

Use OpenAI GPT-4o, Anthropic Claude 3.5, or Google Gemini. Your API key, your rules.

Voice Dictation

Just speak your ideas. The AI will transcribe and format them into a professional newsletter.

AI Content Creation
┌─────────────────┐      STDIO       ┌─────────────────┐
│  Claude/Cursor  │ ◄────────────► │   MCP Server    │
│   (AI Client)   │                 │  (Docker/npx)   │
└─────────────────┘                 └────────┬────────┘
                                             │
                                        HTTP/S
                                             │
                                    ┌────────▼────────┐
                                    │    NetSendo     │
                                    │  (Your inst.)   │
                                    └─────────────────┘

Supported AI Clients

🤖Claude Desktop
💻Cursor IDE
📝VS Code

Example query

"Show my mailing lists and add a new subscriber jan@example.com to Newsletter"

AI Assistant Integration

Manage NetSendo with
natural language

Connect Claude, Cursor, or VS Code to your NetSendo instance. Ask questions, manage subscribers, and send messages — all through conversation with AI.

Natural language

Ask 'How many subscribers do I have?' or 'Send an email to John'.

No code required

No need to know the API — AI handles it for you.

Real-time operations

Direct operations on your NetSendo instance.

See MCP Documentation
Try it yourself

Experience NetSendo Live

Don't just take our word for it. Log in to our live demo instance and explore the platform's capabilities firsthand.

This is a public demo instance. Data is reset every 24 hours.

demo.netsendo.com
demo@netsendo.com
READ ONLY
demo1234
••••••••

Connect with your tools

NetSendo plays nicely with the tools you already use. Orchestrate workflows with n8n and connect any AI model.

Explore n8n Integration
Calendly
Booking automation
Zoom
Video conferencing
Google Calendar
Calendar synchronization
Google Meet
Video conferencing
MCP
AI assistant integration
n8n
Workflow automation
Stripe
Payment processing
Polar
Developer-first payments
WooCommerce
E-commerce integration
WordPress
Forms & content gating
Shopify
E-commerce integration
SendGrid
Email API
Twilio
SMS Provider
SMSAPI
SMS Provider
OpenAI
AI generation

Latest Updates

View all releases
v2.0.8Latest
Release Notes
  • Mailing Lists — Grid View Action Buttons Unresponsive:
  • Fixed all action buttons (Subscribers, Create Message, Edit, Clone, Delete) on mailing list cards being unclickable. Root cause: the list name <Link> contained a <span class="absolute inset-0"> overlay that covered the entire card (which has position: relative), intercepting all click events and redirecting to the edit page. Added relative z-10 to the action buttons container to elevate them above the overlay.
Full changelog
v2.0.7Previous
Release Notes
  • Tailwind CSS v3 → v4 Migration:
  • Migrated from Tailwind CSS v3 to v4 with new CSS-native configuration approach.
  • Replaced @tailwind base/components/utilities directives with @import "tailwindcss" in app.css.
  • Added @custom-variant dark (&:where(.dark, .dark *)) to preserve class-based dark mode toggling (replaces darkMode: 'class' from tailwind.config.js).
  • Added @theme block with font-family configuration (replaces theme.extend from tailwind.config.js).
  • Converted @layer utilities custom classes to @utility syntax.
Full changelog
v2.0.6Previous
Release Notes
  • Mailbox Reputation — False Blacklist Positives:
  • Fixed all mailboxes being incorrectly flagged as "Na czarnej liście!" (Blacklisted). Root cause: Spamhaus, SURBL, and URIBL return special error IPs (e.g., 127.255.255.254) when queried from public/shared DNS resolvers (Google DNS, Cloudflare). The checkDomainDnsbl() method treated any DNS response as "listed". Now validates response IPs and filters out known error/block/test ranges before determining listing status.
  • Migration resets all existing reputation data so the corrected logic can re-evaluate on next check.
  • Mailbox Reputation — "Error checking reputation" Button Failure:
  • Fixed the "Check Reputation" button in Mailbox settings returning an error. Root cause: frontend called route("mailboxes.check-reputation") but the actual route name is settings.mailboxes.check-reputation (due to the Route::prefix('settings/mailboxes')->name('settings.mailboxes.') group). Updated Mailboxes/Index.vue to use the correct route name.
  • Brain — Weekly Digest AI Report Crash (AiService::chat() undefined):
Full changelog

Frequently Asked Questions