Real-Time SaaS Platform: Building a Scalable Web Application for Satellite Mission Control

The Challenge

As small satellites become more capable, the software used to operate them has not kept pace. Off-the-shelf mission control tools are rigid and generic, unable to accommodate custom hardware setups or non-standard communication configurations. For our client's two satellite programs (RADCUBE and VIREO), each satellite was purpose-built with bespoke components, meaning no existing software product could handle their specific operational workflows, testing pipelines, or data integration needs. In short, this was a classic software problem: the client needed a platform that did not exist yet.

The requirements read like a complex SaaS product brief. The client needed a single, browser-based platform to manage the entire lifecycle of a satellite mission, from early hardware testing through to live operations in orbit. It had to integrate with their proprietary ground station (the physical antenna and radio equipment on Earth that communicates with satellites in space), handling real-time antenna positioning, signal processing, and live data visualisation. All data protocols had to comply with CCSDS and ECSS; these are international standards for space data systems, comparable to how HTTP and REST define web communication, but for spacecraft data exchange. On top of that, the system architecture had to be modular enough to support multiple satellites and ground stations simultaneously, with room to scale further in the future.

The Solution

We designed and built a fully custom, web-based Mission Control platform from the ground up, using a modern SaaS-style architecture. The platform serves as a single interface for everything operators need: controlling satellites, processing incoming data streams, automating ground station equipment, and running test simulations. Rather than adapting an off-the-shelf tool, we built a purpose-fit product that could evolve alongside the client's mission portfolio.

The technology choices reflected the demands of a real-time, data-intensive web application. On the frontend, we used React and Gatsby to build a responsive, component-driven interface. On the backend, Node.js handled the core application logic, with C++ modules for performance-critical signal processing tasks. For real-time communication, we implemented Deepstream.io, enabling low-latency, bi-directional data streaming between the server and operator dashboards (essential when satellite status updates need to appear the instant they arrive). We chose MongoDB for storing mission configurations and operational records, and InfluxDB (a time-series database optimised for high-throughput sequential data) for ingesting the continuous stream of satellite telemetry, the health and sensor readings that satellites transmit back to Earth. Large binary payloads such as raw signal recordings were stored using GridFS. The entire system was containerised with Docker, enabling consistent deployments and straightforward scaling.

For data visualisation, we integrated Grafana to give operators rich, real-time dashboards covering satellite health metrics, communication link status, and mission timeline progress. We also incorporated Cesium, a 3D globe-rendering engine, to display satellite orbital positions and ground station coverage zones on an interactive map. Beyond live operations, the platform supported full simulation environments, allowing engineering teams to run tests against hardware prototypes and qualification models before a satellite ever left the ground. This meant the same software served both development and production, reducing context-switching and eliminating the need for separate toolchains.

Image courtesy of C3S LLC.

The Result

The platform successfully powered both the RADCUBE and VIREO satellite missions from start to finish. It was validated across every stage of satellite hardware development, from early breadboard prototypes through engineering and qualification models to the final flight-ready units. This end-to-end coverage proved that a single web platform could reliably serve the full product lifecycle, not just the final deployment.

Real-time data streaming and automated workflows dramatically reduced the manual effort required to run a satellite mission. Operators could monitor live telemetry (the health and sensor data streamed from a satellite), send commands to satellites, and manage ground station antennas, all from a single browser-based interface. This cut operator workload significantly and made mission control accessible to smaller, leaner teams.

The platform's modular, containerised architecture meant that onboarding a new satellite mission required minimal additional engineering. New missions could be configured and integrated without re-architecting the core system, turning the platform into a reusable product foundation rather than a one-off project delivery.

This project proved that modern web technologies and cloud-native design patterns (React, Node.js, Docker, time-series databases, real-time streaming) can meet the demanding requirements of safety-critical, real-time systems, even in a domain as specialised as satellite operations. The client gained not just a working product, but a long-term technology platform that continues to support their expanding mission portfolio.

Image courtesy of C3S LLC.

Project tech stack

Node.js JavaScript runtime

Node.js

C++ programming language

C++

React JavaScript library

React

Cesium 3D mapping platform

Cesium

Docker containerization platform

Docker

MongoDB database

MongoDB

InfluxDB time series database

InfluxDB

Deepstream real-time server

Deepstream

Gatsby static site generator

Gatsby

Grafana analytics platform

Grafana

Long-term wins

Modular, containerised architecture ready to scale across future satellite missions
Reduced operator workload through real-time automation and a unified browser-based interface
Demonstrated that modern web and cloud-native technologies can power mission-critical systems