Nonprofit technology · SMS platform · Live
Texting at scale, one person at a time.
Freedom Signal is a nonprofit texting platform that helps advocacy organizations reach people being exploited online and offer a way out. It's an initiative of Scarlet Hope, which my wife Rachelle founded. We rebuilt the platform from the ground up so more organizations can run outreach safely, with compliance built into the code.
- Client
- Freedom Signal, an initiative of Scarlet Hope
- Industry
- Nonprofit, advocacy
- Built
- New platform since 2023, mobile apps 2024 to 2026
- Status
- Live at freedomsignal.org
By the numbers
- 143,000+: People contacted since 2017, per Freedom Signal
- 5: Apps on one platform: outreach, admin, maps, iOS and Android
- 1: Opt-out that every organization on the platform has to honor
- 0: Automated texts to anyone who has said STOP
Reach figure from freedomsignal.org. Platform figures from the code, September 2026.
Doing this safely is harder than doing it at all.
Advocates want to reach people one at a time, with a real human on the other end. Doing that for many organizations at once means quiet hours, daily limits, translation, fair routing of replies to advocates, and above all, never texting someone who asked to be left alone.
The original platform had grown over years across several codebases. It needed one modern foundation that more organizations could share.
A shared platform for many organizations.
- Team workspaces: Each organization gets its own workspace, with advocates added through single sign-on.
- Careful sending: One-to-one texts go out within quiet hours and a daily send limit.
- Fair reply routing: Replies are routed round-robin to advocates, translated when needed, and tagged for follow-up.
- Universal opt-out: A STOP from anyone, to any team, blocks every organization on the platform from texting that person first again.
- Maps and reporting: Maps, reports and exports show where outreach happens and what it leads to.
- Web and mobile apps: Outreach, admin and map apps on the web, plus iOS and Android apps for advocates in the field.
How an organization runs outreach.
- Set up the team: An organization gets its workspace and adds advocates through single sign-on.
- Reach out: The platform sends one-to-one texts inside quiet hours and daily limits.
- Answer replies: Replies go to the next available advocate, translated if needed.
- Respect the answer: Opt-outs are honored across every team on the platform, permanently.
- Measure: Maps and reports show outcomes for each organization.
Compliance you can read in the code.
STOP means stop, everywhere
Once someone opts out, whether by keyword or because any team marked them do-not-contact, no organization on the platform can text them first again.
// COMPLIANCE: a one-way latch. Once a person trips either condition
// we must never auto-contact or batch-contact them again from any team.
enum UniversalOptOut {
// CTIA + TCPA opt-out keywords, matched as whole words.
static let optOutKeywords = ["STOP", "STOPALL", "UNSUBSCRIBE", "CANCEL", "END", "QUIT"]
static func isUniversallyOptedOut(contactID: UUID, db: any Database) async throws -> Bool {
// 1. Any team has flagged a Do-Not-Contact conversation.
let dncCount = try await Conversation.query(on: db)
.filter(\.$contact.$id == contactID)
.filter(\.$progress == AutoReplyService.dncProgress)
.count()
if dncCount > 0 { return true }
// 2. They ever replied with an opt-out keyword.
return try await hasOptOutReply(contactID, db)
}
}
Built with: Swift on Vapor, PostgreSQL with PostGIS, pgvector, Twilio, React, iOS, Android
One foundation for a growing coalition.
- A single modern platform replaced several older codebases.
- Advocacy organizations share one system without sharing their data.
- Texting rules for quiet hours, limits and opt-outs live in code, not in a training doc.
- Advocates can work from a laptop or their phone.
You need to text people at scale without getting it wrong.
- You send texts to customers, members or the public.
- Opt-outs, quiet hours and carrier rules keep you up at night.
- Several teams or locations share one texting system.
Book a call with Josh | See the Fix-it Sprint
Frequently asked questions
- What is Freedom Signal?
- A nonprofit texting platform, an initiative of Scarlet Hope, that helps advocacy organizations reach people being exploited online with one-to-one text outreach.
- What did Solid Giant build?
- A rebuilt platform: a new API, web apps for outreach, admin and maps, iOS and Android apps, and compliance rules including quiet hours, daily limits and a universal opt-out across every organization.
- How does the universal opt-out work?
- If a person replies STOP (or a similar keyword) to any team, or any team marks them do-not-contact, no organization on the platform can text them first again.
All work