Matrix homeserver, SMS breaking-news alerts, and editorial workflow integration for a 120-person national media organisation. Zero third-party message access.
The Nginx reverse proxy configuration in front of the Dendrite Matrix homeserver โ TLS termination, rate limiting for registration endpoints, and upstream health checks.
A national Romanian media organisation โ approximately 120 editorial, technical, and administrative staff โ had grown to rely on WhatsApp groups for breaking-news coordination and a self-managed Slack workspace for internal communications. Both created problems that had become impossible to ignore.
WhatsApp gave the organisation no control over message data. Conversations between editors, journalists, and sources mixed freely with personal use, creating serious source-protection risks. Reporters working on sensitive investigations had no way to segment communications from the rest of the organisation. Slack, while more controllable, came with a substantial per-seat cost and โ under the free plan โ limited message history. Neither platform could integrate with the organisation's editorial workflow system.
The organisation had a specific additional requirement: a reliable SMS alert system for breaking news distribution to subscribers, currently handled through an external provider with poor delivery reliability and no delivery receipt log. They needed a replacement that would give them carrier-level visibility and a tamper-evident delivery audit trail for regulatory purposes.
We ran two parallel workstreams that shared infrastructure but had different timelines: Matrix homeserver deployment for internal communications, and 47Comms SMS integration for subscriber alerts.
We deployed a Dendrite homeserver on dedicated on-premises hardware โ the organisation's preference given their sensitivity to cloud message storage. Dendrite was chosen over Synapse for its lower memory footprint (the server runs on hardware shared with the editorial workflow system) and its Go codebase (easier to maintain for their internal team). Federation was enabled but restricted to a carefully maintained allowlist of trusted homeservers โ the organisation wanted the option to federate with specific journalism-sector Matrix networks in future without opening federation entirely.
Room structure was designed with the editorial team before deployment. Rather than migrating existing WhatsApp and Slack group structures directly, we held a one-hour workshop with department heads to map their actual communication patterns. This produced a cleaner room hierarchy: an organisation-wide announcements room (read-only for most staff), department rooms, project rooms with automatic archiving, and a set of high-security rooms for sensitive investigations with additional encryption requirements.
Element X was the client of choice. Push notifications were self-hosted via a UnifiedPush-compatible relay rather than going through Google or Apple FCM โ an important requirement given the organisation's source-protection concerns. Staff on iOS used the Ntfy app as a push relay.
"We had journalists sending source communications over personal WhatsApp because we had nothing better. That's the problem that had to stop. The Matrix deployment gave us, for the first time, a communication system we actually control."
โ Head of Digital, Confidential Media Client (Romania)47Comms was deployed as the SMS gateway for breaking-news subscriber alerts, replacing the previous external provider. The integration connected directly to the organisation's editorial workflow system via webhook: when an editor marks a story as "breaking" and selects target subscriber segments, 47Comms dispatches the SMS campaign with multi-carrier routing and real-time delivery tracking.
The tamper-evident delivery log was a specific regulatory requirement โ Romanian broadcast authorities require evidence of notification dispatch for certain categories of public interest alerts. 47Comms's append-only audit log, with cryptographic chaining, satisfied this requirement and produced an exportable compliance report on demand.
Delivery reliability improved significantly: the previous provider averaged 94.2% delivery for EU mobile numbers over 30 days; 47Comms averaged 98.7% over the same measurement period post-migration, primarily due to automatic carrier failover when a primary carrier degraded.
Staff migration ran in phases over two weeks. We started with the technical team (who needed no hand-holding), then editorial leadership, then the full newsroom. Each group received a 30-minute onboarding session with a printed quick-reference card. The most common friction point was iOS push notifications โ setting up the Ntfy relay required a few steps that we simplified into a one-page guide with screenshots. Within three weeks of deployment, WhatsApp usage for work communications had dropped to near-zero with no mandate from management โ the new system was simply better for the use case.
At the six-month check-in, the editorial team had created a second investigation room for a new long-term project โ setting it up themselves, without involving 47Network. That's the outcome we aim for: infrastructure the client owns and can operate independently.
Hardware assessment, editorial workflow API documentation review, department head workshop for room structure design. UnifiedPush relay shortlisted.
Dendrite installation and configuration on-premises, TLS via Nginx, federation allowlist, room structure creation, Element X rollout to technical team. UnifiedPush relay deployed. iOS push guide produced.
47Comms deployment, editorial workflow webhook integration, subscriber list migration from previous provider, carrier routing configuration, delivery audit trail verification.
Phased onboarding: technical team, then editorial leadership, then full newsroom. Three 30-minute group sessions plus drop-in support hours. Quick-reference card printed for each desk.
Runbook delivery, admin training for two internal staff, Prometheus monitoring dashboard handover, 30-day support window. First breaking-news SMS alert sent via 47Comms on day 38.
The Loki stack collecting logs from Dendrite, nginx, and bridges โ correlated with Prometheus metrics in Grafana for full-picture incident response.