Hogsend
Compare

Feature Matrix

Side-by-side comparison of Hogsend, Customer.io, Loops, Brevo, and ActiveCampaign across pricing, channels, automation, data, developer experience, and operations.

A scannable comparison across the platforms most commonly evaluated alongside Hogsend. Checkmarks and X marks indicate general availability -- check each platform's current docs for exact details, as features change frequently. Pricing was last verified 5 June 2026; each platform's own comparison page links to its live pricing.

Pricing

FeatureHogsendCustomer.ioLoopsBrevoActiveCampaign
Starting priceFreefrom $100/mofrom $49/mofrom $9/mofrom $15/mo
Pricing modelSelf-hosted (infra cost only)Per profilePer contactPer email volumePer contact
Free tierUnlimited (self-hosted)NoUp to 1k contacts300 emails/dayNo
Self-hosted optionYesNoNoNoNo
Source-available (ELv2)YesNoNoNoNo

Channels

ChannelHogsendCustomer.ioLoopsBrevoActiveCampaign
EmailYesYesYesYesYes
SMSNoYesNoYesYes (add-on)
Push notificationsNoYesNoYesNo
In-app messagingNoYesNoNoNo
Webhooks (outbound)YesYesYes (limited)YesYes
Slack / custom channelsVia codeVia integrationsNoNoVia integrations

Automation

FeatureHogsendCustomer.ioLoopsBrevoActiveCampaign
Visual workflow builderNoYesYesYesYes
Code-first journeysYes (TypeScript)NoAPI onlyNoNo
Durable executionYes (Hatchet)ManagedManagedManagedManaged
Survives deploys/restartsYesN/A (SaaS)N/A (SaaS)N/A (SaaS)N/A (SaaS)
Event-triggered flowsYesYesYesYesYes
Time-delayed sendsYes (ctx.sleep())YesYesYesYes
Conditional branchingYes (TypeScript if/else)Yes (visual)BasicBasicYes (visual)
Exit conditionsYes (event-driven)YesLimitedNoYes
Cross-journey triggersYes (ctx.trigger())LimitedNoNoLimited
Entry limits / cooldownsYesYesBasicNoYes
Suppression windowsYesYesNoNoYes

Data

FeatureHogsendCustomer.ioLoopsBrevoActiveCampaign
PostHog native integrationYes (built-in)Via webhookNoNoNo
Custom event ingestionYes (REST API + webhooks)YesYes (API)YesYes
Contact managementYesYesYesYes (with CRM)Yes (with CRM)
SegmentationReal-time code-defined Buckets (property + event conditions)Advanced segmentsBasicBasicAdvanced
A/B testingVia code (in journeys)Built-inNoYesBuilt-in
Data warehouse syncNoYesNoNoNo
Your data, your databaseYes (Postgres)NoNoNoNo

Developer experience

FeatureHogsendCustomer.ioLoopsBrevoActiveCampaign
Source-available (ELv2)YesNoNoNoNo
Self-hostedYesNoNoNoNo
API-firstYesYesYesYesYes
TypeScript / code-firstYesNoSDK onlyNoNo
Consumed as a versioned packageYes (@hogsend/engine)N/A (SaaS)N/A (SaaS)N/A (SaaS)N/A (SaaS)
Clean framework upgradesYes (pnpm up "@hogsend/*")N/A (SaaS)N/A (SaaS)N/A (SaaS)N/A (SaaS)
Swappable email/analytics providersYes (EmailProvider / PostHogService contracts)NoNoNoNo
CI/CD friendlyYes (content is code)NoPartiallyNoNo
React Email templatesYes (@hogsend/email)NoNoNoNo
Version-controlled workflowsYes (Git)NoNoNoNo
AI-agent friendlyYes (consistent patterns)NoNoNoNo

Operations

FeatureHogsendCustomer.ioLoopsBrevoActiveCampaign
Audit loggingYesYesNoNoYes
API key scopingYesYesNoBasicYes
Rate limitingYesManagedManagedManagedManaged
Bulk operationsYes (CSV/JSON import)YesYesYesYes
Dead letter queueYesManagedManagedManagedManaged
Email bounce trackingYesYesYesYesYes
Unsubscribe managementYes (preference center)YesYesYesYes
Deliverability monitoringVia your provider's dashboard (Resend by default)Built-inBuilt-inBuilt-inBuilt-in

Reading the matrix

A few things to keep in mind:

"Managed" vs. "Yes" -- for SaaS platforms, features like durable execution and rate limiting are handled by the vendor. You don't configure them, but you also don't control them. Hogsend gives you direct control over these, which is more powerful but also more responsibility.

"No" doesn't always mean "never" -- platforms add features regularly. Check current docs before making a decision based on this table alone.

"Via code" -- some Hogsend capabilities aren't built-in features with UI controls. They're available because your journeys, templates, and routes are code you own and inject into the engine. A/B testing in Hogsend means writing an if statement with Math.random() or checking a PostHog feature flag. Slack notifications means installing the Slack SDK and calling it from a journey -- an integration is just code, with no framework to learn. This is a strength if your team works in code. It's a gap if your team expects a UI.

Owning content vs. owning the framework. "Self-hosted" and "code-first" don't mean you maintain a fork. The framework is the @hogsend/engine package you pin and upgrade like any dependency; the code you own is your content -- journeys, templates, webhook sources, custom routes, config, and your own migrations. Framework upgrades are pnpm up "@hogsend/*" plus a migration run, not an upstream merge. When you do need to change engine behavior, there's an editability ladder -- extend through injection points, patch in place, or eject a single package into vendor/ -- rather than an all-or-nothing fork.

The pricing gap is significant. Hogsend's cost is your infrastructure -- typically $10--30/mo on Railway for a small-to-medium deployment. Every other platform on this list charges per contact or per email, which means your costs scale with your user base. For a team with 10,000 contacts, the annual cost difference can be $1,000--$10,000+.

On this page