This guide shows how to combine Kubernetes, the HotROD demo app, and Signadot Sandboxes to preview backend changes safely through a SwiftUI iOS frontend. You’ll learn to deploy the HotROD services, create isolated sandboxes for new features (like second-level ETAs and SD-prefixed license plates), and integrate them into a mobile app that can switch seamlessly between production and sandbox environments. The result is a practical workflow for testing backend features without disrupting teammates or shared systems.
This comprehensive guide demonstrates how to use Signadot Sandboxes to preview and test backend changes through a mobile frontend without affecting other developers using shared environments.
You’ll learn to set up isolated testing environments that allow your mobile app to interact with experimental backend features while maintaining complete separation from the baseline system.
By the end of this tutorial, you’ll have:
This section is to demonstrate deploying main infrastructure components, including Hotrod backend services and Signadot operators.
The Signadot CLI is your primary interface for managing sandboxes and routing configurations. It bridges your local development environment with Signadot’s cloud platform.
You can follow the instructions to install Signadot CLI from this guide.
HotROD is a sophisticated microservices demonstration application that simulates a ride-sharing platform. It consists of multiple interconnected services that communicate through both HTTP APIs and message queues.
To deploy hotrod backend services, you can follow the steps in this guide.
In this demo, hotrod backend services are deployed in “hotrod” namespace.
Expected services:
Wait for all pods to show running status before proceeding.

Expected ports:

The Signadot Operator runs within your Kubernetes cluster and manages the lifecycle of sandboxes, routing rules, and traffic isolation.
You can follow the instructions here to install and configure Signadot operator.
Expected components:
Wait for all pods to reach running status.

Signadot sandboxes create isolated environments by forking specific services while maintaining connections to baseline services. This allows you to test individual components without affecting the entire system.
In order to test out the sandbox feature of Signadot, you will use existing branches that contain two features. After applying the changes, we will test it out on the current iOS application.
ETA in Seconds Feature
This feature branch modifies the route service to calculate ETA in seconds instead of minutes, simulating a “fast route calculation” feature that provides more granular timing.
In the ETA calculation function, the time unit is changed from time.Minute to time.Second. So Instead of ETAs like “8 minutes” or “15 minutes,” you’ll see “480 seconds” or “900 seconds”
Pull the existing branch with route service changes and push the image.
Driver License Format Feature
This feature branch modifies the driver service to add an “SD-” prefix to all license plates..
In the license plate generation function, an “SD-” prefix is added. So instead of license plates like “ABC-T7-12345-XYZ,” you’ll see “ABC-**SD-**T7-12345-XYZ.”
Pull the existing branch with driver service changes and push the image.
Create a directory for sandbox configurations:
These YAML files tell Signadot which services to fork and which enhanced images to use in each sandbox. Signadot will automatically deploy the base HotROD services if they don’t exist, then create forks with your enhancements.
Create signadot-config/route-fast-eta.yaml:
Create signadot-config/driver-sd-license.yaml:
Create signadot-config/combined-features.yaml
Make sure to replace YOUR_REGISTRY with your Docker registry name.
Key Concepts:
Make sure sandboxes are in Ready status.
Set up port forwarding to access services locally. To do that, we will use the `local connect` command. `local connect` basically establishes a secure tunnel between your local development machine and the Kubernetes cluster where Signadot sandboxes are running. This connection enables proper DevMesh traffic routing for testing sandbox environments locally.
Make sure that `$HOME/.signadot/config.yaml` file exists and is configured.

The HotROD iOS app is a SwiftUI-based ride-booking application that showcases Signadot’s microservice isolation capabilities. It allows users to seamlessly switch between different service environments through a developer mode interface. The app connects to HotROD’s microservices architecture and uses Signadot routing headers to direct API calls to specific sandbox versions, enabling real-time validation of features like fast ETA calculations and branded license plates. Users can book rides by selecting pickup and dropoff locations, choosing from available drivers, and tracking trip status, while developers can toggle between the production baseline and various sandbox configurations to test individual or combined microservice enhancements in isolation.
The HotROD iOS app includes:
Environment selector - Switch between baseline and sandbox.
Location picker - Location selector.
Driver List - Shows drivers list.
In order to access the app code base, run the following commands:
API Service with Routing:
This code creates HTTP headers that tell Signadot where to route API requests.
Environment Management:
Basically, what we are doing here is simply adding a new header in the request with signadot-routing-key that tells the router to route to the forked sandbox service.

Purpose: Validate that only the route service is modified, showing ETA in seconds instead of showing ETA in minutes as in Production basline.
Setup:

Test Steps:

Expected Results:
Key Validation Points:
Screenshot Checklist:
Production Baseline Screenshot showing ETA in mins:

Custom Sandbox Screenshot showing ETA in seconds:

Purpose: Validate that only the driver service is modified, showing SD- license plates.
Setup:

Test Steps:
Expected Results:
Key Validation Points:
You’ve successfully implemented a complete mobile app testing pipeline using Signadot sandboxes. This setup enables:
For advanced use cases and enterprise features, consult the Signadot documentation and consider reaching out to the Signadot team for specialized support.
Get the latest updates from Signadot