Why “Exoskeleton”?
Sendy is a solid, proven email marketing tool — 50K+ licenses sold, reliable SES integration, simple interface. But its API is 7 legacy POST endpoints. No webhooks. No analytics API. No CLI. No AI. No health monitoring. SendyKit doesn’t replace Sendy. It wraps around it. Like an exoskeleton augments a human body — same body, dramatically expanded capabilities:| Sendy (the body) | SendyKit (the exoskeleton) |
|---|---|
| 7 POST endpoints | 125 REST endpoints |
| No CLI | 240+ commands |
| No webhooks | HMAC-signed webhook delivery |
| No analytics API | Full intelligence engine |
| No health checks | 68 automated diagnostics |
| No audit trail | Automatic mutation logging |
| SES only | Any SMTP provider |
| No AI | Subject lines, email gen, insights |
| No visual editor | GrapeJS drag-and-drop |
| PayPal only (bypassable) | Stripe + cryptographic payment tokens |
How It Works Technically
Database Layer
SendyKit reads Sendy’s existing tables (campaigns, subscribers, lists, links, login, apps) via read-only queries. It never writes to Sendy’s core tables.
SendyKit creates its own tables with the sendykit_ prefix:
sendykit_migrations— migration trackingsendykit_feature_flags— runtime feature togglessendykit_webhooks— webhook endpoint configurationsendykit_proxy_settings— proxy and transport settingssendykit_analytics_events— enriched event trackingsendykit_doctor_reports— health check resultssendykit_audit_log— mutation audit trailsendykit_tenants— multi-tenant SaaSsendykit_payments— payment verification
Proxy Layer
The Sendy admin UI is served through SendyKit’s reverse proxy. This allows:- CSS injection (dark mode, mobile responsive, design system)
- Sidebar navigation (SendyKit pages appear in Sendy’s nav)
- Payment interception (Stripe replaces PayPal)
- Brand switching (unified dropdown)
Safe Migrations
Every database migration is:- Versioned —
v001_foundation.sqlthroughv007_billing.sql - Non-destructive — Never ALTERs Sendy tables. Only CREATEs
sendykit_*tables. - Tracked —
sendykit_migrationstable records which migrations have run - Idempotent — Safe to run multiple times
- Reversible — Can DROP all
sendykit_*tables to fully uninstall
Fail-Safe Design
If SendyKit stops running:- Sendy continues working exactly as before
- All campaigns continue sending
- All subscriber management continues
- The only things lost are SendyKit-specific features (API, CLI, admin pages)