Platform Technical Overview

How the RunBeat platform is built, how products connect, and how your data is kept safe.

Docs → Platform Technical Overview

Introduction

RunBeat Media is a suite of nine cloud-native products and platform services purpose-built for UK radio stations and broadcasters. The platform covers the full lifecycle of running a radio station — from playout automation and music scheduling through to compliance checking, advertiser sales management, DAB multiplex control, sales bonus tracking, electronic document signing, team scheduling, and customer support.

The platform also includes cross-product capabilities: Workflow Automation for connecting events across products, Analytics for unified cross-product dashboards, Forms & Surveys for listener engagement, and a built-in Support/Helpdesk system. All products are available individually or as part of the RunBeat All-Access bundle.

This document provides a clear, high-level explanation of how the platform is architected, how products work together, and how data is protected. It is intended for station operators, technical managers, and anyone evaluating the platform.

The Product Suite

RunBeat Media comprises nine products and several platform-wide capabilities, each available as a standalone web application with its own domain:

ProductDomainPurpose
RunBeat Pulserunbeatpulse.comCloud playout automation, scheduling, media library, live assist, listen again, and network broadcasting
RunBeat Complianceradiocompliance.co.ukCompliance framework built around the Ofcom Broadcasting Code — automated lyric transcription, forbidden words checking, and regulatory-ready reporting
RunBeat CRMrunbeatcrm.comRadio-specific sales and advertiser relationship management — configurable pipeline stages, proposals, lead scoring, workflow automation, shared inbox, renewal alerts, custom dashboards, and integrated support/helpdesk. Cross-app integrations with Pulse, Bonus, Calendar, and Contracts.
RunBeat CMSrunbeatcms.comWebsite content management for radio stations — block editor, news and articles, show and presenter profiles, events calendar, competitions, photo galleries, forms, custom domains with SSL, advertising management, and a headless API. Deep integration with Pulse for live now-playing data and schedule sync.
RunBeat Controllerrunbeatcontroller.comWeb-based DAB multiplex management and transmission chain control
RunBeat Bonusrunbeatbonus.comSales target, quota, and bonus management for sales teams
RunBeat Contractsrunbeatcontracts.comContract lifecycle management (CLM), electronic document signing with AI assistance, negotiation, approvals, obligation tracking, and forms & surveys
RunBeat Calendarrunbeatcalendar.comTeam scheduling, resource booking, find-a-time, public booking pages, and two-way sync with Microsoft 365 and Google Calendar

Platform Capabilities

In addition to the standalone products, the platform provides cross-product capabilities that work across all RunBeat products:

CapabilityDescription
Workflow AutomationEvent-driven automation engine that connects products — when something happens in one product (e.g. a deal is won in CRM), it can automatically trigger actions in another (e.g. create a contract, schedule a meeting, send an email). Managed via Platform Admin or each product's settings page.
Cross-Product AnalyticsUnified analytics dashboard in Platform Admin that aggregates data from all products — listener metrics, pipeline value, compliance health, contract status, bonus achievement — with derived metrics like revenue per listener and sales conversion rate.
Support / HelpdeskMulti-channel ticket management system integrated into CRM. Stations use it for listener and advertiser support; RunBeat uses it internally for product support. Includes SLA tracking, knowledge base, automation rules, customer portal, and an embeddable widget.
Forms & SurveysGeneral-purpose form builder in Contracts for listener surveys, competition entries, feedback forms, and event registrations. Public form renderer with multi-page support, conditional logic, response analytics, and CRM contact creation.

RunBeat All-Access

RunBeat All-Access is a single subscription that includes every product and platform capability. Three tiers are available — Starter (£149/mo), Professional (£299/mo), and Enterprise (£549/mo) — offering significant savings compared to purchasing products individually. See the pricing page for details.

Each product is independently deployable and can be used on its own, but they are designed to work together as an integrated suite when a station uses multiple products.

Architecture Overview

All RunBeat products follow a consistent three-tier architecture:

  1. Frontend — Single-page applications built with React 18 and Vite, served as static assets via a content delivery network (CDN).
  2. Backend API — Node.js/Express REST APIs that handle business logic, data access, and integrations with external services.
  3. Data layer — PostgreSQL relational databases for structured data, object storage for media files and documents.

The platform is hosted in the cloud using AWS infrastructure. Application services, databases, and file storage run on AWS in the UK, keeping your data within the UK. Audio streaming is delivered via EU-based datacentres for optimal listener coverage and reliability. Each product runs its own backend API service, and products communicate with each other through well-defined internal APIs where integration is needed.

Multi-Tenancy & Data Isolation

RunBeat is a multi-tenant platform. Each customer (typically a radio station or organisation) operates within their own isolated tenant. The tenancy model varies by product:

  • Pulse, Compliance, CRM, Bonus, Calendar — Tenancy is scoped by station. Each radio station is a separate tenant with its own data, users, and configuration.
  • Controller — Tenancy is scoped by multiplex. Each DAB multiplex is a separate tenant.
  • Contracts — Tenancy is scoped by organisation. Each organisation has its own document workspace, forms, and contract data.

Data isolation is enforced at every layer:

  • Every database query is scoped to the active tenant identifier — a station, multiplex, or account can never access another tenant's data.
  • API middleware validates the tenant context on every request before any data is accessed.
  • Media files and documents are stored in tenant-scoped paths, preventing cross-tenant access.
Key principle

Tenant isolation is not optional — it is enforced at the database, API, and storage layers simultaneously. There is no configuration that allows one tenant to see another tenant's data.

Authentication & User Roles

All RunBeat products use AWS Cognito for user authentication. Cognito provides:

  • Secure username/password authentication with enforced password policies.
  • Federated login via Microsoft 365 (Azure AD), allowing users to sign in with their existing organisational Microsoft accounts.
  • Multi-factor authentication (MFA) support.
  • Secure token-based sessions with automatic refresh.

Cross-App Single Sign-On (SSO)

When users navigate between RunBeat products (e.g. clicking "Open in Pulse" from the CRM), they are automatically authenticated in the target application using their existing Microsoft 365 browser session. No additional login is required — the authentication happens silently via Cognito's OAuth2 flow with the M365 identity provider pre-selected.

If a user does not have access to the target product, they are redirected back to the source application with a clear message explaining that they need to speak to their station admin for access.

Logging out of any RunBeat application terminates the Cognito session, which effectively logs the user out of all RunBeat products. They will need to re-authenticate to access any product.

User Roles

Each product defines role-based access control appropriate to its domain. Common roles across the platform include:

RoleScopeDescription
Platform AdminPlatform-wideManages the platform itself — creating stations/multiplexes, managing subscriptions, and platform settings.
Station Admin / Mux AdminPer tenantFull administrative access within their station or multiplex — users, settings, configuration.
ProducerPer tenantManages schedules, media, logs, and content within their assigned station(s).
PresenterPer tenantLive assist, cartwall, and voice tracking within their assigned station(s).
Sales ManagerPer tenantViews all sales data, enters progress, runs reports (CRM/Bonus).
SalespersonPer tenantViews only their own targets, progress, and bonus calculations (Bonus).
Support AgentPer tenantHandles support tickets in assigned queues, uses canned responses, views knowledge base (CRM Support).
Support AdminPer tenantAll agent permissions plus queue management, knowledge base editing, automation rules, and support reporting (CRM Support).

Users can be assigned to multiple stations with different roles per station, enabling multi-station groups to manage access flexibly.

How Products Integrate

While each product works independently, several integration points connect them:

  • Pulse ↔ Compliance — When music is uploaded to Pulse, it is automatically submitted to the Compliance service for lyric analysis. Compliance results flow back to Pulse, determining whether tracks are approved, held for review, or rejected.
  • Pulse ↔ Controller — Pulse stations can serve as audio input sources for DAB services managed in Controller. Controller can pull audio streams directly from Pulse stations.
  • CRM ↔ Pulse — Campaign data from CRM can feed into Pulse's Ad Manager for scheduling and proof-of-play reporting.
  • CRM ↔ Contracts — Contracts generated in CRM can be sent for electronic signature via the Contracts platform.
  • CRM ↔ Calendar — Calendar events can be linked to CRM contacts, accounts, and opportunities. Meetings created from CRM deals appear in Calendar automatically.
  • CRM ↔ Support — Support tickets are automatically linked to CRM contacts by email address. Agents can view the customer's CRM profile directly from a ticket.
  • Bonus ↔ CRM — Sales progress data from CRM can feed into Bonus for automated target tracking.
  • Contracts ↔ CRM (Forms) — Form responses in Contracts can automatically create or update CRM contacts, with field mapping configured per form.

Workflow Automation (Event Bus)

The platform includes a cross-product event bus powered by Redis pub/sub. Every product publishes events when significant actions occur (e.g. "deal won", "contract signed", "compliance hold raised", "form submitted"). The Workflow Automation engine subscribes to these events and executes user-defined action chains.

This enables automations like:

  • "When a deal is won in CRM → create a contract in Contracts → schedule an onboarding meeting in Calendar → send a notification email"
  • "When a compliance hold is raised in Pulse → email the station manager"
  • "When a form is submitted in Contracts → create a CRM contact → trigger a workflow"

Workflows are configured per station via each product's settings page, or platform-wide via Platform Admin. The engine supports conditions, variable substitution, retries, and execution logging.

Cross-Product Analytics

The Platform Gateway aggregates data from all product APIs into a unified analytics layer. Station admins see a single dashboard with KPIs from every product — listeners, pipeline value, compliance health, contract status, bonus achievement — plus derived metrics like revenue per listener and sales conversion rate. Data is cached for performance and can be exported as CSV or delivered as scheduled email reports.

All integrations use authenticated internal APIs. No product has direct database access to another product's data.

Frontend Technology

All RunBeat frontends are built with:

  • React 18 — Component-based UI framework.
  • Vite — Fast build tooling with hot module replacement during development.
  • Responsive design — All interfaces work on desktop (1024px+) and mobile (320px+) browsers.
  • Light/dark theme — User-selectable themes with system preference detection (Pulse).

Frontends are built as static assets and served via CloudFront CDN, providing fast load times globally. The CDN serves assets from edge locations closest to the user.

Backend Services

Each product runs one or more Node.js/Express API services. These handle:

  • Request authentication and authorisation (validating Cognito tokens and checking role permissions).
  • Tenant context resolution (determining which station/multiplex the request relates to).
  • Business logic and data validation.
  • Database queries (always scoped to the active tenant).
  • Integration with external services (email, transcription, payment processing).

Backend services are deployed as containerised applications, managed by process supervisors that automatically restart services if they encounter issues. Health checks run continuously to detect and recover from failures.

Data Storage

Relational Data

All structured data (users, schedules, media metadata, compliance records, sales data, contracts) is stored in PostgreSQL relational databases. PostgreSQL provides:

  • ACID-compliant transactions for data integrity.
  • Encryption at rest for all stored data.
  • Automated backups with point-in-time recovery.
  • High availability with automatic failover.

Object Storage

Media files (audio tracks, images, documents) are stored in AWS S3 object storage with:

  • Server-side encryption (AES-256) for all stored files.
  • Tenant-scoped storage paths preventing cross-tenant access.
  • Lifecycle policies for automatic cleanup of temporary files.
  • Versioning for critical documents (Contracts).

Media Handling

RunBeat Pulse handles audio media throughout its lifecycle:

  • Upload — Audio files (MP3, WAV, FLAC) are uploaded via the browser and stored securely in object storage.
  • Processing — On upload, tracks are automatically analysed for BPM (beats per minute), normalised to broadcast loudness standards (EBU R128 / -14 LUFS), and submitted for compliance checking.
  • Waveform generation — Visual waveforms are generated for each track, enabling precise editing of intro points, outro points, cue points, and hook markers.
  • Metadata — Album art, artist information, and release year are automatically populated where available.
  • Playback — The audio engine retrieves tracks from storage and plays them according to the schedule, applying crossfades, volume envelopes, and backtiming as configured.

Audio Engine & Streaming

RunBeat Pulse uses a professional-grade audio engine for broadcast output:

  • The engine processes the play log in real time, handling crossfades between tracks, voice track overlays, and live input switching.
  • Audio output is delivered to streaming servers that distribute the signal to DAB+ transmitters and online listeners.
  • A failsafe system monitors the audio output continuously. If the primary playout stops producing audio, the system automatically switches to backup audio within seconds and sends alert notifications.
  • When normal playout resumes, the system automatically switches back without manual intervention.

Playout Modes

Pulse supports three playout modes per scheduled hour:

  • Live — Full manual control for live presenters.
  • Live Assisted — Automatic playout with presenter-designated stop points for live links.
  • Automated — Fully unattended playout with voice-tracked content.

Security Practices

Security is built into every layer of the platform:

  • Encryption in transit — All data is transmitted over TLS 1.2+ (HTTPS). No unencrypted connections are accepted.
  • Encryption at rest — All databases and file storage use server-side encryption.
  • Authentication — Industry-standard OAuth 2.0 / OpenID Connect via AWS Cognito, with support for federated identity providers.
  • Authorisation — Role-based access control enforced at the API layer on every request.
  • Tenant isolation — Enforced at database, API, and storage layers simultaneously.
  • Secrets management — All credentials and sensitive configuration are stored in a dedicated secrets management service, never in code or configuration files.
  • Audit trails — Critical actions (compliance decisions, payout approvals, contract signatures, configuration changes) are logged with timestamps and user identifiers, retained for a minimum of two years.
  • Data residency — All application data is stored on AWS in the UK. Audio streaming is delivered via EU-based datacentres.

Subscriptions & Billing

RunBeat uses Stripe for subscription management and payment processing. Each product offers tiered subscription plans, and the RunBeat All-Access bundle provides all products in a single subscription at a significant discount.

  • Monthly and annual billing options (annual plans include a ~17% discount).
  • Self-service plan management — upgrade, downgrade, and manage billing via the Stripe customer portal.
  • Optional add-ons for additional features, storage, users, or compliance checks.
  • Feature gating based on the active subscription tier — the platform enforces limits on users, tracks, storage, workflows, forms, and feature access according to the subscribed plan.
  • Platform admin overrides — platform administrators can override feature flags and limits per station, enabling custom deals, beta testing, and internal stations without changing the subscription tier.

Subscription lifecycle events (payments, renewals, cancellations) are handled automatically via webhooks, keeping the platform synchronised with billing state without manual intervention.

Support

All support is provided via the RunBeat Support application — a built-in helpdesk accessible from every product. Response times are tiered by subscription:

  • Entry/Starter tiers — 72-hour response time
  • Mid/Professional tiers — 48-hour response time
  • Top/Enterprise tiers — 24-hour response time

There is no phone support. All support requests are managed as tickets with SLA tracking, ensuring consistent and auditable service delivery.

Desktop & Mobile Applications

All RunBeat products are available as dedicated desktop applications for macOS (13+) and Windows (10+). These are lightweight native shells that connect to the live web application, providing:

  • Native OS notifications for alerts and events.
  • System tray / dock presence for always-on access.
  • Offline-resilient caching — the app loads cached assets instantly and reconnects automatically when connectivity is restored.
  • Automatic background updates.

Mobile Apps

RunBeat Pulse, CRM, Compliance, and Calendar are available as native iOS and Android apps. These are hybrid native shells with WebView rendering, providing:

  • Push notifications via APNs (iOS) and FCM (Android).
  • Background audio playback for stream monitoring.
  • Deep linking between products.
  • OAuth 2.0 authentication (Cognito + Azure AD).

Desktop and mobile apps use the same account and data as the web application — no separate login or data duplication. They are included at no additional cost with any RunBeat subscription.

UK Focus & Regulatory Compliance

RunBeat is built specifically for UK broadcasters:

  • UK English throughout all interfaces, documentation, and communications.
  • Ofcom Broadcasting Code — Compliance checking is a framework built around Ofcom's rules and the Broadcasting Code. There is no single compliance policy — the Broadcasting Code sets out a series of rules and expectations for UK broadcasters, and RunBeat Compliance helps stations demonstrate due diligence through automated content screening and regulatory-ready reporting.
  • DAB+ support — Controller is built around the UK DAB ecosystem, supporting the ODR-mmbTools transmission chain used by UK small-scale DAB multiplexes.
  • UK/EU data residency — Application data stored on AWS in the UK; audio streaming delivered via EU datacentres.
  • GBP pricing — All plans priced in pounds sterling.