Sahyadri Mission Control: Cloud mission control for small satellites
From a Figma Make prototype to a multi-tenant, role-based operations platform
My Role
Concept, interaction design & development
Status
Working platform with a simulator; all planned phases delivered
Tools & Tech



The Problem
Small-satellite teams run missions with a patchwork of scripts, spreadsheets and desktop tools, and many cannot afford their own ground stations. Mission control is also a safety-critical interface: operators work under time pressure, a wrong command is costly, and different people (directors, operators, engineers, station providers) need different levels of access.
The Idea
Sahyadri MCS is mission control as a cloud service. A team gets one console for fleet status, live telemetry, alarms, contact prediction, command queues and a mission log, and can book time on partner ground stations through a marketplace instead of owning every antenna.
I started from a Figma Make prototype with hard-coded screens and rebuilt it into a real system. The design question throughout was how to keep a dense, expert interface understandable and how to make risky actions deliberate, which connects directly to my human-factors work.
How It Works
- STEP 1
Model the fleet
Organisations, satellites and ground stations, with orbit propagation and pass (contact) prediction.
- STEP 2
Ingest and watch
A spacecraft and ground-link simulator feeds telemetry that is stored, checked against limits and streamed live to the console.
- STEP 3
Command safely
Commands go into a queue with approval, scheduling and sequences, with full history of who did what.
- STEP 4
Share ground capacity
Own stations (for example Nashik) are auto-confirmed. Partner stations in Bengaluru, Tromsø, Punta Arenas and Awarua are booked through the marketplace.
Design Decisions
Roles that shape the interface
Five roles (Org Admin, Mission Director, Operator, read-only Engineer and Ground Station Provider) map to one permission matrix. A test fails the build if any route is left unprotected.
Deliberate commanding
Approval and scheduling steps separate intent from execution, which reduces the chance of a slip becoming an irreversible action.
Tenancy enforced in the database
Every table carries an org id and Postgres row-level security isolates customers from each other.
Typed contract between front and back end
The API client is generated from the OpenAPI spec, and CI fails if it is stale.
Scope kept honest
Billing was deliberately deferred: bookings are free for now, so effort went into operations, not invoicing.
Where It Stands
- Seven build phases completed: foundation and auth, orbit and contacts, simulator and live telemetry, commanding, marketplace, automation and dashboards
- A demo organisation with three satellites, five ground stations and one account per role
- A public marketing website, live on GitHub Pages