Open Source SMS Marketing Software
SMS marketing breaks on policy long before it breaks on code. Every message is a real charge through a carrier gateway, and carriers enforce consent, sender registration, and opt-out rules that a hosted platform can only pass along to you. What you are really buying, then, is the logic wrapped around someone else's pipe: scheduling, contact management, and a record of who agreed to hear from you. Open source options let you own that logic and connect whatever SMS provider is cheapest or best routed for your region, so you pay the carrier directly instead of a per-message markup. The consent trail, suppression lists, and campaign history stay in a database you can audit.

Dittofeed
Open-source customer engagement for broadcasts and automated journeys across email, SMS, push, WhatsApp, and Slack

Laudspeaker
Open source customer engagement and onboarding platform for event-triggered email, SMS, push, and webhooks

playSMS
Web-based SMS management software for gateways, bulk messaging, inbox forwarding, and SMS automation

ICTDialer
Open-source multi-user auto dialer for voice broadcasting, fax broadcasting, and SIP-based telephony
Our picks
Which fits depends on whether SMS is your whole program or one channel among several.
Best for gateway control and bulk SMS: playSMS playSMS is the messaging-first option: a web front end over SMS gateways with single and group broadcasts, an inbox for inbound replies, autoreply, and routing by prefix or user. It works with Gammu, Kannel, Jasmin, and multiple active SMSCs, so you can shop for carriers, all self-hosted under GPLv3.
Best when SMS is one channel in a journey: Dittofeed Dittofeed is an MIT-licensed engagement platform where SMS sits beside email, push, WhatsApp, and Slack. Ingest user data through Segment, Reverse ETL, or its API, then build broadcasts or event-triggered journeys with segmentation and MJML templates. Git-based versioning and a CI testing SDK suit teams that treat campaigns like code.
Best for onboarding and lifecycle flows: Laudspeaker Laudspeaker centers on a visual journey builder for onboarding and re-engagement across push, email, SMS, and webhooks. Segments target users by attributes, actions, and past campaign interaction, and journeys support A/B tests, Liquid templating, and external API calls. It is AGPL-3.0, self-hosted or cloud.
Best for combined SMS, voice, and fax outreach: ICTDialer ICTDialer suits campaigns that span more than text. Built on FreeSWITCH, it runs SMS, voice broadcasting, and inbound and outbound fax from one multi-user interface, with SIP, T.38, and trunk management. It is a heavier telephony stack than a pure SMS tool, but it consolidates channels others skip.
How consent, gateways, and data shape the choice
Consent is the part that fails first, so weigh it before templates or dashboards. The system should record where each phone number came from, when the person opted in, which program they joined, and their current subscription state, and it should enforce opt-outs across every campaign tied to a sender rather than hiding people from one send. If you message United States numbers, check how the tool supports A2P 10DLC, toll-free verification, and the campaign metadata carriers now require. playSMS, for instance, handles inbound STOP-style replies and autoreply through its inbox, which is the machinery that keeps opt-outs from becoming a manual chore.
Then look at how the tool reaches a carrier, because none of these send messages on their own. Decide whether you need a single provider connector or bring-your-own-gateway support, SMPP, delivery receipts, retry logic, and per-sender throttling. playSMS is built around gateway flexibility, working with Gammu, Kannel, Jasmin, and others across multiple active SMSCs, which suits teams that want to route by prefix or shop for the cheapest carrier. Dittofeed and Laudspeaker take a different shape: they are journey builders where SMS is one channel beside email, push, and webhooks, so the gateway is a plug-in and the value is in event-triggered flows.
Finally, match the data model to how sensitive phone numbers are. Segmentation, deduplication, custom fields, and consent status should be first-class objects, and triggered sends from your CRM or store should be auditable rather than a copied CSV. If your campaigns are really product lifecycle messages driven by user events, a journey tool fits; if they are broadcasts and inbox forwarding for a group or an SMSC reseller, a messaging-first tool fits better.
Related categories
Frequently asked questions
Can open source SMS marketing software send messages on its own?+
No. These tools manage contacts, consent, scheduling, and reporting, but delivery still runs through a carrier, aggregator, or messaging API. playSMS connects to gateways like Gammu, Kannel, and Jasmin; Dittofeed and Laudspeaker expect you to wire in an SMS provider as a channel. Budget separately for message fees, number rental, and carrier registration, because the software license is rarely the largest line item at volume.
What consent details should the software record for each number?+
At a minimum: the opt-in source, the timestamp, the program the person joined, and their current subscription state. It should also process inbound STOP and HELP replies and suppress a number across every campaign tied to that sender, not just the one that triggered the reply. playSMS handles inbound replies and autoreply through its inbox, which is the piece that turns opt-out handling into something automatic rather than a checklist.
How does US A2P 10DLC registration fit with a self-hosted tool?+
Registration happens with the carrier or aggregator you send through, not with the open source app, so the tool's job is to attach the right campaign and brand metadata to each message and route it through your registered number pool. Confirm the gateway connector passes those fields. Self-hosting the campaign manager does not exempt you from 10DLC, toll-free verification, or short-code rules; it just keeps the contact and consent data on your side.
Do I need two-way messaging or are broadcasts enough?+
It depends on whether replies do work. If STOP and HELP keywords, appointment changes, lead qualification, or support handoffs matter, you need inbound webhooks, message threading, and keyword routing. playSMS receives inbound SMS into an inbox with forwarding and autoreply, which covers keyword and subscription campaigns. If you only send one-way announcements, a simpler broadcast path is fine and avoids building an inbox nobody staffs.
How should I import an existing contact list?+
Import consent evidence, not just a column of digits. Map the opt-in source, date, country, language, and suppression status, normalize every number to international E.164 format, and deduplicate before the first send. If you cannot prove consent for a segment, treat migration as a reason to re-confirm it, not a chance to message it. Import mistakes in SMS reach real phones immediately and generate complaints fast.
What is the difference between a messaging platform and a journey builder here?+
A messaging platform like playSMS centers on gateways, an inbox, broadcasts, and routing, which suits bulk sends, group communication, and SMSC resellers. A journey builder like Dittofeed or Laudspeaker centers on user segments and event-triggered flows, where SMS sits beside email, push, and webhooks. Pick by what fires a message: a scheduled campaign, or a user action in your product.
How much can I trust SMS delivery reports?+
Use them to diagnose, not to prove someone read a message. A good tool separates submitted, delivered, failed, undelivered, and opted-out states so you can spot carrier rejections, invalid numbers, and expired messages and reconcile a provider invoice. If reporting collapses everything into sent or failed, deliverability problems become guesswork. Delivery to a handset is still not the same as the recipient opening it.