Crisis Communication Principles
During sudden enforcement actions, raids, or policy changes, communication infrastructure must shift instantly from standard operations to emergency mode.
Key Requirements
| Requirement | Why It Matters |
|---|---|
| Bypass algorithmic filtering | Social media deprioritizes crisis content |
| Direct delivery | Reach vulnerable populations immediately |
| High reliability | Cannot fail during peak need |
| Multi-channel | Redundancy across platforms |
| Encrypted options | Protect sensitive coordination |
Alert and Notification Systems
Channel Comparison
| Channel | Open Rate | Speed | Privacy | Best For |
|---|---|---|---|---|
| SMS/Text | 98% | Instant | Low | Mass alerts, general community |
| Signal | 95%+ | Instant | High | Sensitive coordination, legal teams |
| 90%+ | Instant | Medium | Community groups (caution: misinfo vector) | |
| Push Notifications | 70-80% | Instant | Medium | App users |
| 20-30% | Minutes-hours | Low | Documentation, follow-up |
Recommended Stack
| Layer | Tool | Purpose |
|---|---|---|
| Primary Alerts | Twilio | SMS/voice to community |
| Sensitive Coordination | Signal | Encrypted staff/volunteer communication |
| Legal Team | Wire/Element | End-to-end encrypted with audit trail |
| Community Groups | WhatsApp Broadcast | Reach immigrant communities (verify info) |
| Documentation | Post-crisis records and follow-up |
Twilio Implementation
Getting Started
- Create account at twilio.com
- Apply for Impact Access (501(c)(3) required)
- 25% continuous discount
- $100 initial product credit
- Get phone number for your region
- Set up Twilio Studio for automated flows
Non-Profit Pricing (Impact Access)
| Service | Standard Rate | Impact Access Rate |
|---|---|---|
| SMS (outbound) | $0.0079/msg | ~$0.006/msg |
| SMS (inbound) | $0.0079/msg | ~$0.006/msg |
| Voice (outbound) | $0.014/min | ~$0.011/min |
| Phone numbers | $1.15/mo | $1.15/mo |
Basic Alert System Architecture
┌─────────────────┐
│ Crisis Event │
│ Detected │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Authorization │
│ (Leadership) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Twilio Studio │
│ Flow Triggered │
└────────┬────────┘
│
┌────┴────┐
│ │
▼ ▼
┌───────┐ ┌───────┐
│ SMS │ │ Voice │
│ Alert │ │ IVR │
└───────┘ └───────┘
Twilio Studio Flow (JSON)
{
"description": "Rapid Response Alert",
"states": [
{
"name": "Trigger",
"type": "trigger",
"transitions": [
{
"next": "send_sms",
"event": "incomingMessage"
}
]
},
{
"name": "send_sms",
"type": "send-message",
"transitions": [
{
"next": "gather_response"
}
],
"properties": {
"body": "ALERTA: Actividad de ICE reportada en [LOCATION]. Conozca sus derechos: no abra la puerta sin orden judicial. Más info: [URL]. Responda 1 para confirmar."
}
}
]
}
Geographic Routing
Route alerts based on area code for localized response:
// Pseudocode for geographic routing
function routeAlert(phoneNumber, alertData) {
const areaCode = phoneNumber.substring(0, 3);
const region = areaCodeToRegion[areaCode];
// Send to regional coordinator
sendToCoordinator(region, alertData);
// Send to community members in region
sendToRegionalList(region, alertData.publicMessage);
}
Signal for Sensitive Coordination
Why Signal Over SMS
| Feature | SMS | Signal |
|---|---|---|
| End-to-end encryption | No | Yes |
| Metadata protection | No | Partial |
| Disappearing messages | No | Yes |
| Screen security | No | Yes |
| Group size | Carrier limits | 1,000 |
Recommended Group Structure
| Group | Members | Purpose |
|---|---|---|
| Core Leadership | 5-10 | Strategic decisions |
| Regional Coordinators | 15-30 | Geographic dispatch |
| Legal Team | Attorneys + paralegals | Legal response |
| Field Teams | By region | On-ground coordination |
| Media/Comms | Spokespersons | Public messaging |
Signal Configuration for Organizations
- Enable disappearing messages (24-48 hours for operational content)
- Set screen security to prevent screenshots
- Use registration lock (PIN protection)
- Verify safety numbers for key contacts
- Create separate accounts (don't use personal numbers)
WhatsApp Considerations
Benefits
- Widespread adoption in immigrant communities
- Familiar interface
- Broadcast lists (up to 256 recipients)
- Group calls
Risks
| Risk | Mitigation |
|---|---|
| Misinformation vector | Verify all information before sharing |
| Limited encryption controls | Don't share sensitive legal details |
| Meta data collection | Use for general info, not coordination |
| Backup vulnerabilities | Disable cloud backups |
Best Practices
- Maintain verified, trusted broadcast channels
- Counter false narratives with factual guidance
- Use for one-way information, not discussion
- Direct sensitive conversations to Signal
Traffic Spike Management
The Problem
During crises (2017 travel ban, 2018 family separation), advocacy sites experience:
- 10-100x normal traffic
- Coordinated DDoS attacks
- Database server crashes
- Complete site unavailability
Static Site Solution
Static Site Generators (SSGs) eliminate these vulnerabilities:
| SSG | Build Speed | Best For |
|---|---|---|
| Hugo | Sub-second | Large sites, rapid updates |
| Jekyll | Seconds | GitHub Pages native |
| 11ty | Fast | Flexible templating |
| Astro | Fast | Modern, component-based |
Why Static Sites Win
| Factor | Database CMS | Static Site |
|---|---|---|
| Server load | High per request | Near zero |
| Attack surface | SQL injection, exploits | Minimal |
| Scaling | Requires infrastructure | Automatic via CDN |
| Cost | $100s-1000s/mo | Free-$20/mo |
| Uptime | 99-99.9% | 99.99%+ |
CDN and DDoS Protection
Cloudflare Project Galileo
Free enterprise-grade protection for qualifying organizations:
| Feature | Normal Cost | Galileo Cost |
|---|---|---|
| DDoS mitigation | $3,000+/mo | Free |
| Web Application Firewall | $200+/mo | Free |
| Global CDN | $200+/mo | Free |
| SSL certificates | Included | Included |
Eligibility
- Human rights organizations
- Civil society groups
- Democracy defenders
- Independent journalism
Setup Steps
- Apply at cloudflare.com/galileo
- Verify organization status
- Change nameservers to Cloudflare
- Configure security settings
- Enable "Under Attack" mode for crises
"Under Attack" Mode
When activated:
- All visitors see a brief JavaScript challenge
- Blocks most automated attacks
- Legitimate users proceed after ~5 seconds
- Activate via dashboard or API
# Enable via API during crisis
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{zone_id}/settings/security_level" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
--data '{"value":"under_attack"}'
Edge Caching Strategy
How CDN Caching Works
User Request → Edge Server (Dallas) → Cached Response
│
└─ If not cached: Origin Server
Optimal Cache Configuration
| Content Type | Cache Duration | Reason |
|---|---|---|
| HTML pages | 5-15 minutes | Balance freshness and performance |
| CSS/JS | 1 year | Versioned filenames |
| Images | 1 month | Rarely change |
| PDFs | 1 week | May need updates |
| JSON/API | No cache | Dynamic data |
GitHub Pages + Cloudflare
Optimal setup for static advocacy sites:
- Host on GitHub Pages (free, reliable)
- Front with Cloudflare (DDoS protection)
- Custom domain via Cloudflare DNS
- Cache everything except API endpoints
Redundancy and Resilience
Mirror Sites Strategy
Maintain backup access points:
| Mirror Type | Purpose | Implementation |
|---|---|---|
| Subdomain | backup.yoursite.org | Separate hosting |
| Alternative domain | yoursiteinfo.org | Different registrar |
| Archive.org | Permanent record | Automatic crawling |
| IPFS | Censorship resistance | Decentralized hosting |
DNS Redundancy
- Use multiple DNS providers
- Enable DNSSEC to prevent hijacking
- Keep backup domain at different registrar
Automatic Failover
Primary Site (GitHub Pages)
│
├── Cloudflare (DDoS protection)
│
└── If origin fails:
│
▼
Backup Site (Netlify)
Censorship Circumvention
When to Consider
- ISP-level blocking
- DNS tampering
- State-sponsored interference
- Corporate network restrictions
Tor Onion Services
Create a .onion address for maximum resilience:
| Benefit | Description |
|---|---|
| Anonymous hosting | Server location hidden |
| Bypass DNS | Direct encrypted connection |
| Censorship resistant | No single point of blocking |
| User privacy | Visitors remain anonymous |
Organizations using .onion: Amnesty International, ProPublica, The New York Times
IPFS (InterPlanetary File System)
Decentralized hosting ensures content availability:
# Add site to IPFS
ipfs add -r ./public
# Pin to persistence service (Pinata, Infura)
# Access via: ipfs.io/ipfs/{hash}
Alert Escalation Protocol
Escalation Levels
| Level | Trigger | Response |
|---|---|---|
| 1 - Monitor | Unverified report | Dispatcher investigation |
| 2 - Alert | Verified local activity | Regional SMS + Signal |
| 3 - Mobilize | Confirmed enforcement action | Full SMS broadcast + volunteer deployment |
| 4 - Crisis | Mass detention/policy shift | Coalition-wide + media |
Authorization Matrix
| Level | Who Can Authorize | Response Time |
|---|---|---|
| Level 1 | Dispatcher | Immediate |
| Level 2 | Regional coordinator | 15 minutes |
| Level 3 | Coalition leadership | 30 minutes |
| Level 4 | Executive committee | 1 hour |
Common Alerting Protocol (CAP)
For integration with emergency systems:
<alert xmlns="urn:oasis:names:tc:emergency:cap:1.2">
<identifier>ICE-ALERT-2026-001</identifier>
<sender>coalition@example.org</sender>
<sent>2026-03-24T14:30:00-05:00</sent>
<status>Actual</status>
<msgType>Alert</msgType>
<scope>Restricted</scope>
<code>IPAAWSv1.0</code>
<info>
<category>Law Enforcement</category>
<event>Immigration Enforcement Activity</event>
<urgency>Immediate</urgency>
<severity>Severe</severity>
<certainty>Confirmed</certainty>
<area>
<areaDesc>Downtown Los Angeles</areaDesc>
<geocode>
<valueName>SAME</valueName>
<value>006037</value>
</geocode>
</area>
</info>
</alert>
Crisis Communication Checklist
Before Crisis
- [ ] Twilio account with Impact Access active
- [ ] Contact lists segmented by region
- [ ] Signal groups established and verified
- [ ] Cloudflare Galileo enabled
- [ ] Static site deployed and cached
- [ ] Mirror sites operational
- [ ] Escalation protocol documented
- [ ] Staff trained on authorization matrix
During Crisis
- [ ] Verify information before broadcasting
- [ ] Authorize appropriate escalation level
- [ ] Activate "Under Attack" mode if needed
- [ ] Deploy bilingual alerts
- [ ] Coordinate with legal teams
- [ ] Monitor social media for misinfo
- [ ] Document all actions for review
After Crisis
- [ ] Deactivate "Under Attack" mode
- [ ] Send resolution update to community
- [ ] Connect affected individuals with legal aid
- [ ] Conduct internal debrief
- [ ] Update protocols based on lessons
- [ ] Archive communications for records
Next Steps
- Set up rapid response networks for volunteer coordination
- Create content coordination workflows for consistent messaging
- Review technical infrastructure for full stack setup